3#ifndef DUNE_GEOGRID_COORDFUNCTION_HH
4#define DUNE_GEOGRID_COORDFUNCTION_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 >
46 typedef Impl Implementation;
66 This &operator= (
const This & );
72 return asImp().evaluate( x, y );
76 const Implementation &asImp ()
const
78 return static_cast< const Implementation &
>( *this );
81 Implementation &asImp ()
83 return static_cast< Implementation &
>( *this );
94 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
135 template<
class ct,
unsigned int dimR,
class Impl >
144 typedef Impl Implementation;
161 This &operator= (
const This & );
169 template<
class HostEntity >
170 void evaluate (
const HostEntity &hostEntity,
unsigned int corner,
173 asImp().evaluate( hostEntity, corner, y );
185 const Implementation &asImp ()
const
187 return static_cast< const Implementation &
>( *this );
190 Implementation &asImp ()
192 return static_cast< Implementation &
>( *this );
204 template<
class ct,
unsigned int dimR,
class Impl >
225 template<
class HostEntity >
226 void evaluate (
const HostEntity &hostEntity,
unsigned int corner,
238 template<
class CoordFunctionInterface >
239 struct isCoordFunctionInterface
241 static const bool value =
false;
244 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
245 struct isCoordFunctionInterface
246 < AnalyticalCoordFunctionInterface< ct, dimD, dimR, Impl > >
248 static const bool value =
true;
251 template<
class ct,
unsigned int dimR,
class Impl >
252 struct isCoordFunctionInterface
253 < DiscreteCoordFunctionInterface< ct, dimR, Impl > >
255 static const bool value =
true;
263 template<
class CoordFunctionInterface >
264 struct isDiscreteCoordFunctionInterface
266 static const bool value =
false;
269 template<
class ct,
unsigned int dimR,
class Impl >
270 struct isDiscreteCoordFunctionInterface
271 < DiscreteCoordFunctionInterface< ct, dimR, Impl > >
273 static const bool value =
true;
281 template<
class CoordFunctionInterface >
282 struct AdaptCoordFunction
284 static void adapt ( CoordFunctionInterface &coordFunction )
288 template<
class ct,
unsigned int dimR,
class Impl >
289 struct AdaptCoordFunction< DiscreteCoordFunctionInterface< ct, dimR, Impl > >
291 typedef DiscreteCoordFunctionInterface< ct, dimR, Impl > CoordFunctionInterface;
293 static void adapt ( CoordFunctionInterface &coordFunction )
295 coordFunction.adapt();
Interface class for using an analytical function to define the geometry of a Dune::GeometryGrid....
Definition: coordfunction.hh:39
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:70
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
FieldVector< ctype, dimDomain > DomainVector
domain vector for the evaluate method
Definition: coordfunction.hh:57
Derive an implementation of an analytical coordinate function from this class.
Definition: coordfunction.hh:97
Interface class for using a discrete function to define the geometry of a Dune::GeometryGrid....
Definition: coordfunction.hh:137
static const unsigned int dimRange
dimension of the range vector
Definition: coordfunction.hh:150
void evaluate(const HostEntity &hostEntity, unsigned int corner, RangeVector &y) const
evaluate method
Definition: coordfunction.hh:170
ct ctype
field type of the coordinate vector
Definition: coordfunction.hh:147
void adapt()
method called from grid.adapt() method to allow adaptation of the discrete coordinate function
Definition: coordfunction.hh:179
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:207
vector space out of a tensor product of fields.
Definition: fvector.hh:94
Implements a vector constructed from a given type representing a field and a compile-time given size.
Dune namespace.
Definition: alignment.hh:10