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 & ) =
default;
67 This &operator= ( This && ) =
default;
71 void evaluate (
const DomainVector &x, RangeVector &y )
const 73 return asImp().evaluate( x, y );
77 const Implementation &
asImp ()
const 79 return static_cast< const Implementation &
>( *this );
84 return static_cast< Implementation &
>( *this );
95 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
111 This &operator= (
const This & ) =
default;
112 This &operator= ( This && ) =
default;
115 void evaluate (
const DomainVector &x, RangeVector &y )
const;
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,
173 RangeVector &y )
const 175 asImp().evaluate( hostEntity, corner, y );
187 const Implementation &
asImp ()
const 189 return static_cast< const Implementation &
>( *this );
194 return static_cast< Implementation &
>( *this );
206 template<
class ct,
unsigned int dimR,
class Impl >
221 This &operator= (
const This & ) =
default;
222 This &operator= ( This && ) =
default;
228 template<
class HostEntity >
229 void evaluate (
const HostEntity &hostEntity,
unsigned int corner,
230 RangeVector &y )
const;
241 template<
class CoordFunctionInterface >
244 static const bool value =
false;
247 template<
class ct,
unsigned int dimD,
unsigned int dimR,
class Impl >
251 static const bool value =
true;
254 template<
class ct,
unsigned int dimR,
class Impl >
258 static const bool value =
true;
266 template<
class CoordFunctionInterface >
269 static const bool value =
false;
272 template<
class ct,
unsigned int dimR,
class Impl >
276 static const bool value =
true;
284 template<
class CoordFunctionInterface >
287 static void adapt ( CoordFunctionInterface &coordFunction )
291 template<
class ct,
unsigned int dimR,
class Impl >
296 static void adapt ( CoordFunctionInterface &coordFunction )
298 coordFunction.
adapt();
306 #endif // #ifndef DUNE_GEOGRID_COORDFUNCTION_HH void adapt()
Definition: coordfunction.hh:224
Derive an implementation of an analytical coordinate function from this class.
Definition: coordfunction.hh:15
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition: coordfunction.hh:59
ct ctype
field type of the coordinate vector
Definition: coordfunction.hh:149
Base ::RangeVector RangeVector
Definition: coordfunction.hh:214
static const unsigned int dimDomain
dimension of the range vector (dimensionworld of host grid)
Definition: coordfunction.hh:52
FieldVector< ctype, dimRange > RangeVector
range vector for the evaluate method
Definition: coordfunction.hh:155
Derive an implementation of a discrete coordinate function from this class.
Definition: coordfunction.hh:18
FieldVector< ctype, dimDomain > DomainVector
domain vector for the evaluate method
Definition: coordfunction.hh:57
Impl Implementation
Definition: coordfunction.hh:46
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:138
static void adapt(CoordFunctionInterface &coordFunction)
Definition: coordfunction.hh:287
Implementation & asImp()
Definition: coordfunction.hh:192
Implementation & asImp()
Definition: coordfunction.hh:82
Include standard header files.
Definition: agrid.hh:59
ct ctype
field type of the coordinate vector
Definition: coordfunction.hh:49
This Interface
Definition: coordfunction.hh:145
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
void evaluate(const DomainVector &x, RangeVector &y) const
evaluate method for global mapping
Definition: coordfunction.hh:71
static void adapt(CoordFunctionInterface &coordFunction)
Definition: coordfunction.hh:296
Impl Implementation
Definition: coordfunction.hh:146
const Implementation & asImp() const
Definition: coordfunction.hh:77
Definition: coordfunction.hh:267
void evaluate(const HostEntity &hostEntity, unsigned int corner, RangeVector &y) const
evaluate method
Definition: coordfunction.hh:172
Definition: coordfunction.hh:242
Base ::RangeVector RangeVector
Definition: coordfunction.hh:104
This Interface
Definition: coordfunction.hh:45
Definition: coordfunction.hh:285
DiscreteCoordFunctionInterface< ct, dimR, Impl > CoordFunctionInterface
Definition: coordfunction.hh:294
void adapt()
method called from grid.adapt() method to allow adaptation of the discrete coordinate function ...
Definition: coordfunction.hh:181
static const unsigned int dimRange
dimension of the range vector
Definition: coordfunction.hh:54
const Implementation & asImp() const
Definition: coordfunction.hh:187
Base ::DomainVector DomainVector
Definition: coordfunction.hh:103