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 >
17 template<
class ct,
unsigned int dimR,
class Impl >
37 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
66 This &operator= (
const This & );
72 return asImp().evaluate( x, y );
94 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
95 class AnalyticalCoordFunction
96 :
public AnalyticalCoordFunctionInterface< ct, dimD, dimR, Impl >
99 typedef AnalyticalCoordFunctionInterface< ct, dimD, dimR, Impl > Base;
111 This &operator= (
const This & );
135 template<
class ct,
unsigned int dimR,
class Impl >
161 This &operator= (
const This & );
169 template<
class HostEntity >
170 void evaluate (
const HostEntity &hostEntity,
unsigned int corner,
173 asImp().evaluate( hostEntity, corner, y );
204 template<
class ct,
unsigned int dimR,
class Impl >
205 class DiscreteCoordFunction
206 :
public DiscreteCoordFunctionInterface< ct, dimR, Impl >
209 typedef DiscreteCoordFunctionInterface< ct, dimR, Impl > Base;
223 This &operator= (
const This & );
225 template<
class HostEntity >
226 void evaluate (
const HostEntity &hostEntity,
unsigned int corner,
238 template<
class CoordFunctionInterface >
244 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
251 template<
class ct,
unsigned int dimR,
class Impl >
263 template<
class CoordFunctionInterface >
269 template<
class ct,
unsigned int dimR,
class Impl >
281 template<
class CoordFunctionInterface >
284 static void adapt ( CoordFunctionInterface &coordFunction )
288 template<
class ct,
unsigned int dimR,
class Impl >
295 coordFunction.
adapt();
303 #endif // #ifndef DUNE_GEOGRID_COORDFUNCTION_HH
Base::RangeVector RangeVector
Definition: coordfunction.hh:212
This Interface
Definition: coordfunction.hh:143
ct ctype
field type of the coordinate vector
Definition: coordfunction.hh:49
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition: coordfunction.hh:59
Definition: coordfunction.hh:282
void evaluate(const HostEntity &hostEntity, unsigned int corner, RangeVector &y) const
evaluate method
Definition: coordfunction.hh:170
This Interface
Definition: coordfunction.hh:45
Base::RangeVector RangeVector
Definition: coordfunction.hh:103
void adapt()
method called from grid.adapt() method to allow adaptation of the discrete coordinate function ...
Definition: coordfunction.hh:179
Implementation & asImp()
Definition: coordfunction.hh:81
static const unsigned int dimRange
dimension of the range vector
Definition: coordfunction.hh:54
DiscreteCoordFunctionInterface< ct, dimR, Impl > CoordFunctionInterface
Definition: coordfunction.hh:291
Interface class for using a discrete function to define the geometry of a Dune::GeometryGrid. An implementation should be derived from Dune::DiscreteCoordinateFunction and the evaluate method taking an entity of the host grid together with the number of a vertex returns the coordinate in of that corner. The user must ensure continuity of this mapping. In addition an adapt method is provided which is called whenever adapt() is called on the Dune::GeometryGrid.
Definition: coordfunction.hh:136
friend class DiscreteCoordFunction< ct, dimR, Impl >
Definition: coordfunction.hh:140
static void adapt(CoordFunctionInterface &coordFunction)
Definition: coordfunction.hh:293
void evaluate(const DomainVector &x, RangeVector &y) const
evaluate method for global mapping
Definition: coordfunction.hh:70
FieldVector< ctype, dimDomain > DomainVector
domain vector for the evaluate method
Definition: coordfunction.hh:57
Impl Implementation
Definition: coordfunction.hh:46
static void adapt(CoordFunctionInterface &coordFunction)
Definition: coordfunction.hh:284
Base::DomainVector DomainVector
Definition: coordfunction.hh:102
Definition: cachedcoordfunction.hh:24
static const bool value
Definition: coordfunction.hh:266
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition: coordfunction.hh:153
Derive an implementation of a discrete coordinate function from this class.
Definition: coordfunction.hh:18
void adapt()
Definition: coordfunction.hh:218
DiscreteCoordFunction()
Definition: coordfunction.hh:215
static const unsigned int dimRange
dimension of the range vector
Definition: coordfunction.hh:150
const Implementation & asImp() const
Definition: coordfunction.hh:76
Implementation & asImp()
Definition: coordfunction.hh:190
static const bool value
Definition: coordfunction.hh:241
Interface class for using an analytical function to define the geometry of a Dune::GeometryGrid. An implementation should be derived from Dune::AnalyticalCoordFunction and the evaluate method mapping has to be supplied.
Definition: coordfunction.hh:38
Definition: coordfunction.hh:264
static const unsigned int dimDomain
dimension of the range vector (dimensionworld of host grid)
Definition: coordfunction.hh:52
AnalyticalCoordFunction()
Definition: coordfunction.hh:106
friend class AnalyticalCoordFunction< ct, dimD, dimR, Impl >
Definition: coordfunction.hh:42
Definition: coordfunction.hh:239
ct ctype
field type of the coordinate vector
Definition: coordfunction.hh:147
Definition: dgfgeogrid.hh:41
Impl Implementation
Definition: coordfunction.hh:144
const Implementation & asImp() const
Definition: coordfunction.hh:185
Derive an implementation of an analytical coordinate function from this class.
Definition: coordfunction.hh:15