3#ifndef DUNE_DGFGEOGRID_HH
4#define DUNE_DGFGEOGRID_HH
6#include <dune/common/typetraits.hh>
32 template<
class Gr
idImp,
class IntersectionImp >
40 template<
int dimD,
int dimR >
54 : expression_( expression )
59 std::vector< double > vx( dimD );
60 std::vector< double > vy;
61 for(
int i = 0; i < dimD; ++i )
64 assert( vy.size() ==
size_t( dimR ) );
65 for(
int i = 0; i < dimR; ++i )
78 template<
class HostGrid,
class CoordFunction,
79 bool discrete = GeoGrid::isDiscreteCoordFunctionInterface< typename CoordFunction::Interface >::value >
83 template<
class HostGr
id,
class CoordFunction >
86 static CoordFunction *
create ( std::istream &input,
const HostGrid &hostGrid )
88 return new CoordFunction;
93 template<
class HostGr
id,
class CoordFunction >
96 static CoordFunction *
create ( std::istream &input,
const HostGrid &hostGrid )
98 return new CoordFunction( hostGrid );
103 template<
class HostGr
id,
int dimD,
int dimR >
112 if( expression == 0 )
113 DUNE_THROW(
DGFException,
"no coordfunction specified in DGF file." );
123 template<
class HostGr
id,
class CoordFunction,
class Allocator >
130 typedef typename Grid::template Codim<0>::Entity
Element;
131 typedef typename Grid::template Codim<dimension>::Entity
Vertex;
137 : dgfHostFactory_( input, comm ),
140 HostGrid *hostGrid = dgfHostFactory_.grid();
141 assert( hostGrid != 0 );
142 CoordFunction *coordFunction = CoordFunctionFactory::create( input, *hostGrid );
143 grid_ =
new Grid( hostGrid, coordFunction );
148 : dgfHostFactory_( filename, comm ),
151 HostGrid *hostGrid = dgfHostFactory_.grid();
152 assert( hostGrid != 0 );
153 std::ifstream input( filename.c_str() );
154 CoordFunction *coordFunction = CoordFunctionFactory::create( input, *hostGrid );
155 grid_ =
new Grid( hostGrid, coordFunction );
163 template<
class Intersection >
169 template<
class Intersection >
175 template<
int codim >
178 return dgfHostFactory_.template numParameters< codim >();
184 return dgfHostFactory_.haveBoundaryParameters();
187 template<
class GG,
class II >
194 template<
class Entity >
210 template<
class HostGr
id,
class CoordFunction,
class Allocator >
Include standard header files.
Definition agrid.hh:60
Definition dgfgridfactory.hh:36
G Grid
Definition dgfgridfactory.hh:37
static const int dimension
Definition dgfgridfactory.hh:38
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition common/intersection.hh:162
Wrapper class for entities.
Definition common/entity.hh:62
Grid abstract base class.
Definition common/grid.hh:373
@ dimension
The dimension of the grid.
Definition common/grid.hh:387
Derive an implementation of an analytical coordinate function from this class.
Definition coordfunction.hh:98
Base::DomainVector DomainVector
Definition coordfunction.hh:103
Base::RangeVector RangeVector
Definition coordfunction.hh:104
grid wrapper replacing the geometries
Definition geometrygrid/grid.hh:82
provides access to host grid objects from GeometryGrid
Definition identitygrid.hh:37
Definition io/file/dgfparser/blocks/projection.hh:22
const Expression * function(const std::string &name) const
Definition io/file/dgfparser/blocks/projection.hh:90
Definition io/file/dgfparser/blocks/projection.hh:132
virtual void evaluate(const Vector &argument, Vector &result) const =0
exception class for IO errors in the DGF parser
Definition dgfexception.hh:14
Definition dgfgeogrid.hh:43
Base::DomainVector DomainVector
Definition dgfgeogrid.hh:48
void evaluate(const DomainVector &x, RangeVector &y) const
Definition dgfgeogrid.hh:57
dgf::ProjectionBlock::Expression Expression
Definition dgfgeogrid.hh:51
DGFCoordFunction(const Expression *expression)
Definition dgfgeogrid.hh:53
Base::RangeVector RangeVector
Definition dgfgeogrid.hh:49
Definition dgfgeogrid.hh:80
static CoordFunction * create(std::istream &input, const HostGrid &hostGrid)
Definition dgfgeogrid.hh:86
static CoordFunction * create(std::istream &input, const HostGrid &hostGrid)
Definition dgfgeogrid.hh:96
static CoordFunction * create(std::istream &input, const HostGrid &hostGrid)
Definition dgfgeogrid.hh:108
DGFCoordFunction< dimD, dimR > CoordFunction
Definition dgfgeogrid.hh:106
Grid::template Codim< dimension >::Entity Vertex
Definition dgfgeogrid.hh:131
int boundaryId(const Intersection &intersection) const
Definition dgfgeogrid.hh:170
MPIHelper::MPICommunicator MPICommunicator
Definition dgfgeogrid.hh:129
const DGFBoundaryParameter::type & boundaryParameter(const Dune::Intersection< GG, II > &intersection) const
Definition dgfgeogrid.hh:189
DGFGridFactory(std::istream &input, MPICommunicator comm=MPIHelper::getCommunicator())
Definition dgfgeogrid.hh:135
Grid::template Codim< 0 >::Entity Element
Definition dgfgeogrid.hh:130
Grid * grid() const
Definition dgfgeogrid.hh:158
DGFCoordFunctionFactory< HostGrid, CoordFunction > CoordFunctionFactory
Definition dgfgeogrid.hh:133
GeometryGrid< HostGrid, CoordFunction, Allocator > Grid
Definition dgfgeogrid.hh:126
int numParameters() const
Definition dgfgeogrid.hh:176
std::vector< double > & parameter(const Entity &entity)
Definition dgfgeogrid.hh:195
DGFGridFactory(const std::string &filename, MPICommunicator comm=MPIHelper::getCommunicator())
Definition dgfgeogrid.hh:146
bool wasInserted(const Intersection &intersection) const
Definition dgfgeogrid.hh:164
bool haveBoundaryParameters() const
Definition dgfgeogrid.hh:182
static double refineWeight()
Definition dgfgeogrid.hh:218
static int refineStepsForHalf()
Definition dgfgeogrid.hh:213
Some simple static information for a given GridType.
Definition io/file/dgfparser/dgfparser.hh:55
static int refineStepsForHalf()
number of globalRefine steps needed to refuce h by 0.5
std::string type
type of additional boundary parameters
Definition parser.hh:23