3#ifndef DUNE_GEOGRID_COORDFUNCTION_HH
4#define DUNE_GEOGRID_COORDFUNCTION_HH
6#include <dune/common/fvector.hh>
14 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
15 class AnalyticalCoordFunction;
17 template<
class ct,
unsigned int dimR,
class Impl >
18 class DiscreteCoordFunction;
37 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
66 This &operator= (
const This & ) =
default;
67 This &operator= (
This && ) =
default;
73 return asImp().evaluate( x, y );
95 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
137 template<
class ct,
unsigned int dimR,
class Impl >
162 This &operator= (
const This & ) =
default;
163 This &operator= (
This && ) =
default;
171 template<
class HostEntity >
172 void evaluate (
const HostEntity &hostEntity,
unsigned int corner,
175 asImp().evaluate( hostEntity, corner, y );
206 template<
class ct,
unsigned int dimR,
class Impl >
228 template<
class HostEntity >
229 void evaluate (
const HostEntity &hostEntity,
unsigned int corner,
241 template<
class CoordFunctionInterface >
242 struct isCoordFunctionInterface
244 static const bool value =
false;
247 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
248 struct isCoordFunctionInterface
249 < AnalyticalCoordFunctionInterface< ct, dimD, dimR, Impl > >
251 static const bool value =
true;
254 template<
class ct,
unsigned int dimR,
class Impl >
255 struct isCoordFunctionInterface
256 < DiscreteCoordFunctionInterface< ct, dimR, Impl > >
258 static const bool value =
true;
266 template<
class CoordFunctionInterface >
267 struct isDiscreteCoordFunctionInterface
269 static const bool value =
false;
272 template<
class ct,
unsigned int dimR,
class Impl >
273 struct isDiscreteCoordFunctionInterface
274 < DiscreteCoordFunctionInterface< ct, dimR, Impl > >
276 static const bool value =
true;
284 template<
class CoordFunctionInterface >
285 struct AdaptCoordFunction
287 static void adapt ( CoordFunctionInterface &coordFunction )
291 template<
class ct,
unsigned int dimR,
class Impl >
292 struct AdaptCoordFunction< DiscreteCoordFunctionInterface< ct, dimR, Impl > >
294 typedef DiscreteCoordFunctionInterface< ct, dimR, Impl > CoordFunctionInterface;
296 static void adapt ( CoordFunctionInterface &coordFunction )
298 coordFunction.adapt();
Include standard header files.
Definition agrid.hh:60
Derive an implementation of an analytical coordinate function from this class.
Definition coordfunction.hh:98
Base::DomainVector DomainVector
Definition coordfunction.hh:103
AnalyticalCoordFunction()=default
~AnalyticalCoordFunction()=default
AnalyticalCoordFunction(This &&)=default
Base::RangeVector RangeVector
Definition coordfunction.hh:104
This & operator=(const This &)=default
AnalyticalCoordFunction(const This &)=default
Derive an implementation of a discrete coordinate function from this class.
Definition coordfunction.hh:209
This & operator=(const This &)=default
void adapt()
Definition coordfunction.hh:224
DiscreteCoordFunction()=default
DiscreteCoordFunction(This &&)=default
~DiscreteCoordFunction()=default
DiscreteCoordFunction(const This &)=default
Base::RangeVector RangeVector
Definition coordfunction.hh:214
Interface class for using an analytical function to define the geometry of a Dune::GeometryGrid....
Definition coordfunction.hh:39
Impl Implementation
Definition coordfunction.hh:46
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition coordfunction.hh:59
void evaluate(const DomainVector &x, RangeVector &y) const
evaluate method for global mapping
Definition coordfunction.hh:71
static const unsigned int dimRange
dimension of the range vector
Definition coordfunction.hh:54
ct ctype
field type of the coordinate vector
Definition coordfunction.hh:49
static const unsigned int dimDomain
dimension of the range vector (dimensionworld of host grid)
Definition coordfunction.hh:52
const Implementation & asImp() const
Definition coordfunction.hh:77
This Interface
Definition coordfunction.hh:45
Implementation & asImp()
Definition coordfunction.hh:82
FieldVector< ctype, dimDomain > DomainVector
domain vector for the evaluate method
Definition coordfunction.hh:57
Interface class for using a discrete function to define the geometry of a Dune::GeometryGrid....
Definition coordfunction.hh:139
static const unsigned int dimRange
dimension of the range vector
Definition coordfunction.hh:152
void evaluate(const HostEntity &hostEntity, unsigned int corner, RangeVector &y) const
evaluate method
Definition coordfunction.hh:172
Implementation & asImp()
Definition coordfunction.hh:192
ct ctype
field type of the coordinate vector
Definition coordfunction.hh:149
void adapt()
method called from grid.adapt() method to allow adaptation of the discrete coordinate function
Definition coordfunction.hh:181
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition coordfunction.hh:155
const Implementation & asImp() const
Definition coordfunction.hh:187
Impl Implementation
Definition coordfunction.hh:146
This Interface
Definition coordfunction.hh:145