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
friend class AnalyticalCoordFunction< ct, dimD, dimR, Impl >
Definition: coordfunction.hh:42
ct ctype
field type of the coordinate vector
Definition: coordfunction.hh:147
Base::RangeVector RangeVector
Definition: coordfunction.hh:212
void evaluate(const HostEntity &hostEntity, unsigned int corner, RangeVector &y) const
evaluate method
Definition: coordfunction.hh:170
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:239
DiscreteCoordFunctionInterface< ct, dimR, Impl > CoordFunctionInterface
Definition: coordfunction.hh:291
static void adapt(CoordFunctionInterface &coordFunction)
Definition: coordfunction.hh:284
static const bool value
Definition: coordfunction.hh:266
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition: coordfunction.hh:59
This Interface
Definition: coordfunction.hh:45
This Interface
Definition: coordfunction.hh:143
Impl Implementation
Definition: coordfunction.hh:144
Definition: cachedcoordfunction.hh:24
Implementation & asImp()
Definition: coordfunction.hh:81
friend class DiscreteCoordFunction< ct, dimR, Impl >
Definition: coordfunction.hh:140
static const unsigned int dimRange
dimension of the range vector
Definition: coordfunction.hh:150
static const unsigned int dimRange
dimension of the range vector
Definition: coordfunction.hh:54
Derive an implementation of an analytical coordinate function from this class.
Definition: coordfunction.hh:15
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
void adapt()
Definition: coordfunction.hh:218
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
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition: coordfunction.hh:153
Base::RangeVector RangeVector
Definition: coordfunction.hh:103
Base::DomainVector DomainVector
Definition: coordfunction.hh:102
const Implementation & asImp() const
Definition: coordfunction.hh:76
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:185
Derive an implementation of a discrete coordinate function from this class.
Definition: coordfunction.hh:18
static void adapt(CoordFunctionInterface &coordFunction)
Definition: coordfunction.hh:293
Implementation & asImp()
Definition: coordfunction.hh:190
Definition: dgfgeogrid.hh:41
DiscreteCoordFunction()
Definition: coordfunction.hh:215
AnalyticalCoordFunction()
Definition: coordfunction.hh:106
void adapt()
method called from grid.adapt() method to allow adaptation of the discrete coordinate function ...
Definition: coordfunction.hh:179
ct ctype
field type of the coordinate vector
Definition: coordfunction.hh:49
Definition: coordfunction.hh:264
Definition: coordfunction.hh:282
static const bool value
Definition: coordfunction.hh:241