5 #ifndef DUNE_DGFGEOGRID_HH 6 #define DUNE_DGFGEOGRID_HH 8 #include <dune/common/typetraits.hh> 34 template<
class Gr
idImp,
class IntersectionImp >
42 template<
int dimD,
int dimR >
56 : expression_( expression )
61 std::vector< double > vx( dimD );
62 std::vector< double > vy;
63 for(
int i = 0; i < dimD; ++i )
66 assert( vy.size() == size_t( dimR ) );
67 for(
int i = 0; i < dimR; ++i )
80 template<
class HostGrid,
class CoordFunction,
85 template<
class HostGr
id,
class CoordFunction >
88 static CoordFunction *
create ( std::istream &,
const HostGrid & )
90 return new CoordFunction;
95 template<
class HostGr
id,
class CoordFunction >
98 static CoordFunction *
create ( std::istream &,
const HostGrid &hostGrid )
100 return new CoordFunction( hostGrid );
105 template<
class HostGr
id,
int dimD,
int dimR >
114 if( expression == 0 )
115 DUNE_THROW(
DGFException,
"no coordfunction specified in DGF file." );
125 template<
class HostGr
id,
class CoordFunction,
class Allocator >
139 : dgfHostFactory_( input, comm ),
142 auto hostGrid = std::shared_ptr<HostGrid>(dgfHostFactory_.grid());
143 assert( hostGrid != 0 );
144 auto coordFunction = std::shared_ptr<CoordFunction>(CoordFunctionFactory::create( input, *hostGrid ));
145 grid_ =
new Grid( hostGrid, coordFunction );
150 : dgfHostFactory_( filename, comm ),
153 auto hostGrid = std::shared_ptr<HostGrid>(dgfHostFactory_.grid());
154 assert( hostGrid != 0 );
155 std::ifstream input( filename.c_str() );
156 auto coordFunction = std::shared_ptr<CoordFunction>(CoordFunctionFactory::create( input, *hostGrid ));
157 grid_ =
new Grid( hostGrid, coordFunction );
165 template<
class Intersection >
171 template<
class Intersection >
177 template<
int codim >
180 return dgfHostFactory_.template numParameters< codim >();
186 return dgfHostFactory_.haveBoundaryParameters();
189 template<
class GG,
class II >
196 template<
class Entity >
212 template<
class HostGr
id,
class CoordFunction,
class Allocator >
228 #endif // #ifndef DUNE_DGFGEOGRID_HH concept Entity
Model of a grid entity.
Definition: concepts/entity.hh:119
Definition: dgfgeogrid.hh:82
GeometryGrid< HostGrid, CoordFunction, Allocator > Grid
Definition: dgfgeogrid.hh:128
DGFCoordFunction< dimD, dimR > CoordFunction
Definition: dgfgeogrid.hh:108
bool wasInserted(const Intersection &intersection) const
Definition: dgfgeogrid.hh:166
Base ::DomainVector DomainVector
Definition: coordfunction.hh:139
DGFCoordFunction(const Expression *expression)
Definition: dgfgeogrid.hh:55
static CoordFunction * create(std::istream &input, const HostGrid &hostGrid)
Definition: dgfgeogrid.hh:110
Grid abstract base classThis class is the base class for all grid implementations. Although no virtual functions are used we call it abstract since its methods do not contain an implementation but forward to the methods of the derived class via the Barton-Nackman trick.
Definition: common/grid.hh:375
virtual void evaluate(const Vector &argument, Vector &result) const =0
void evaluate(const DomainVector &x, RangeVector &y) const
Definition: dgfgeogrid.hh:59
static int refineStepsForHalf()
Definition: dgfgeogrid.hh:215
Base ::RangeVector RangeVector
Definition: coordfunction.hh:140
concept Intersection
Model of an intersection.
Definition: concepts/intersection.hh:23
Some simple static information for a given GridType.
Definition: io/file/dgfparser/dgfparser.hh:55
const DGFBoundaryParameter::type & boundaryParameter(const Dune::Intersection< GG, II > &intersection) const
Definition: dgfgeogrid.hh:191
static const bool value
Definition: coordfunction.hh:308
static CoordFunction * create(std::istream &, const HostGrid &)
Definition: dgfgeogrid.hh:88
int numParameters() const
Definition: dgfgeogrid.hh:178
Grid * grid() const
Definition: dgfgeogrid.hh:160
MPIHelper::MPICommunicator MPICommunicator
Definition: dgfgeogrid.hh:131
ExpressionPointer function(const std::string &name) const
Definition: io/file/dgfparser/blocks/projection.hh:100
int boundaryId(const Intersection &intersection) const
Definition: dgfgeogrid.hh:172
DGFGridFactory(const std::string &filename, MPICommunicator comm=MPIHelper::getCommunicator())
Definition: dgfgeogrid.hh:148
G Grid
Definition: dgfgridfactory.hh:39
dgf::ProjectionBlock::Expression Expression
Definition: dgfgeogrid.hh:53
std::string type
type of additional boundary parameters
Definition: parser.hh:25
DGFCoordFunctionFactory< HostGrid, CoordFunction > CoordFunctionFactory
Definition: dgfgeogrid.hh:135
static int refineStepsForHalf()
number of globalRefine steps needed to refuce h by 0.5
Include standard header files.
Definition: agrid.hh:59
Base::DomainVector DomainVector
Definition: dgfgeogrid.hh:50
static CoordFunction * create(std::istream &, const HostGrid &hostGrid)
Definition: dgfgeogrid.hh:98
DGFGridFactory(std::istream &input, MPICommunicator comm=MPIHelper::getCommunicator())
Definition: dgfgeogrid.hh:137
grid wrapper replacing the geometriesGeometryGrid wraps another DUNE grid and replaces its geometry b...
Definition: declaration.hh:12
Definition: io/file/dgfparser/blocks/projection.hh:159
Definition: io/file/dgfparser/blocks/projection.hh:22
provides access to host grid objects from GeometryGrid
Definition: identitygrid.hh:37
static constexpr int dimension
The dimension of the grid.
Definition: common/grid.hh:387
static double refineWeight()
Definition: dgfgeogrid.hh:220
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: albertagrid/dgfparser.hh:28
Derive an implementation of an analytical coordinate function from this class.
Definition: coordfunction.hh:20
Definition: dgfgeogrid.hh:43
Wrapper class for entities.
Definition: common/entity.hh:65
std::vector< double > & parameter(const Entity &entity)
Definition: dgfgeogrid.hh:197
Grid::template Codim< 0 >::Entity Element
Definition: dgfgeogrid.hh:132
Grid::template Codim< dimension >::Entity Vertex
Definition: dgfgeogrid.hh:133
static const int dimension
Definition: dgfgridfactory.hh:40
Base::RangeVector RangeVector
Definition: dgfgeogrid.hh:51
exception class for IO errors in the DGF parser
Definition: dgfexception.hh:14
bool haveBoundaryParameters() const
Definition: dgfgeogrid.hh:184