DUNE-ACFEM (2.5.1)

Convenience classes in order to form Fem::Function objects for analytical functions. More...

Modules

 Building Blocks
 A couple of elementary grid functions which can be combined using GridFunctionExpressions.
 
 BoundaryFunctions
 Combine ordinary GridFunctions with BoundaryIndicators in order to support "complicated" boundary conditions.
 
 GridFunctionWrapper
 Augment global functions by a HasLocalFunction property.
 
 GridFunctionTests
 

Classes

class  Dune::ACFem::ConstantFunction< FunctionSpace >
 A class describing a constant function. More...
 
class  Dune::ACFem::ConstantGridFunction< FunctionSpace, GridPart >
 ConstantGridFunction implements a constant function. More...
 
class  Dune::ACFem::ZeroGridFunction< FunctionSpace, GridPart >
 A grid-function always returning 0. More...
 
struct  Dune::ACFem::ZeroGridFunctionTraits< FunctionSpace, GridPart >
 A grid-function tight to zero. More...
 
class  Dune::ACFem::FractionGridFunction< FunctionSpace, GridPart, numerator, denominator >
 A grid-function which is constant with a scalar fractional value. More...
 
struct  Dune::ACFem::FractionGridFunctionTraits< FunctionSpace, GridPart, numerator, denominator >
 A grid-function which is constant with a fractional value. More...
 
class  Dune::ACFem::IdentityFunction< Field, dim >
 A function which returns its argument. More...
 
class  Dune::ACFem::CoordinateFunction< Field, dim, N >
 Coordinate function returns a specific component of the world point, x_N, so to say. More...
 
class  Dune::ACFem::LocalMaxAdapter< GridFunction1, GridFunction2 >
 An adapter class to compute the (pointwise) maximum of two scalar GridFunctions. More...
 
class  Dune::ACFem::LocalNormAdapter< GridFunction, 2 >
 An adapter class to represent the pointwise euclidean norm of a (usually vector-valued) GridFunction. More...
 
class  Dune::ACFem::ParameterFunction< Parameter, FunctionSpace >
 A class describing a constant function. More...
 
class  Dune::ACFem::ParameterGridFunction< Parameter, FunctionSpace, GridPart >
 ParameterGridFunction implements a constant function where the value is defined by something which fulfills the ParameterInterface. More...
 

Typedefs

typedef F::EntityType Dune::ACFem::BoundaryFunctionTraits< F, false >::EntityType
 Type of Entity.
 
typedef GridPartType::IntersectionType Dune::ACFem::BoundaryFunctionTraits< F, false >::IntersectionType
 Type of Intersection.
 
typedef LocalFunction Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunctionType
 Type of local function to export.
 
typedef std::decay< decltype(*std::declval< Indicator >()&&*std::declval< InnerIndicatorType >())>::type Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::IndicatorType
 Resulting Boundary indicator type.
 
typedef GridFunction Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::GridFunctionType
 Type of wrapped grid-function.
 
typedef DiscreteFunctionSpaceType::GridType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::GridType
 type of grid
 
typedef DiscreteFunctionSpaceType::DomainFieldType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::DomainFieldType
 domain type (from function space)
 
typedef DiscreteFunctionSpaceType::RangeFieldType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::RangeFieldType
 range type (from function space)
 
typedef DiscreteFunctionSpaceType::DomainType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::DomainType
 domain type (from function space)
 
typedef DiscreteFunctionSpaceType::RangeType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::RangeType
 range type (from function space)
 
typedef DiscreteFunctionSpaceType::JacobianRangeType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::JacobianRangeType
 jacobian type (from function space)
 
typedef DiscreteFunctionSpaceType::HessianRangeType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::HessianRangeType
 hessian type (from function space)
 
typedef DiscreteFunctionSpaceType::DomainFieldType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::DomainFieldType
 domain type (from function space)
 
typedef DiscreteFunctionSpaceType::RangeFieldType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::RangeFieldType
 range type (from function space)
 
typedef DiscreteFunctionSpaceType::DomainType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::DomainType
 domain type (from function space)
 
typedef DiscreteFunctionSpaceType::RangeType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::RangeType
 range type (from function space)
 
typedef DiscreteFunctionSpaceType::JacobianRangeType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::JacobianRangeType
 jacobian type (from function space)
 
typedef DiscreteFunctionSpaceType::HessianRangeType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::HessianRangeType
 hessian type (from function space)
 

Enumerations

enum  { Dune::ACFem::BoundaryFunctionTraits< F, true >::hasBoundarySupport = true }
 
enum  { Dune::ACFem::BoundaryFunctionTraits< F, false >::hasBoundarySupport = false }
 
enum  { Dune::ACFem::BoundaryFunctionTraits< F, false >::emptySupport = false , Dune::ACFem::BoundaryFunctionTraits< F, false >::globalSupport = true }
 

Functions

static void Dune::ACFem::BoundaryFunctionTraits< F, true >::init (LocalFunctionType &lf, const EntityType &entity, const IntersectionType &intersection)
 For BoundarySupportedFunction's we pass the intersection as well as the bulk entity on to the local function's init-method. More...
 
static bool Dune::ACFem::BoundaryFunctionTraits< F, true >::supported (const LocalFunctionType &lf)
 Decide if we are supported on this IntersectionType. More...
 
static F::IndicatorType Dune::ACFem::BoundaryFunctionTraits< F, true >::indicator (const F &f)
 Return the underlying BoundarySupportedFunction's indicator.
 
static void Dune::ACFem::BoundaryFunctionTraits< F, false >::init (LocalFunctionType &lf, const EntityType &entity, const IntersectionType &intersection)
 Call the ordinary init-method for not BoundarySupportedFunction's.
 
static bool Dune::ACFem::BoundaryFunctionTraits< F, false >::supported (const LocalFunctionType &lf)
 Not boundary-supported: implicity everywhere supported.
 
static IndicatorType Dune::ACFem::BoundaryFunctionTraits< F, false >::indicator (const F &ignored)
 Not boundary-supported: implicity everywhere supported.
 
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::evaluate (const DomainType &global, RangeType &result) const
 evaluate function on local coordinate local
 
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::jacobian (const DomainType &global, JacobianRangeType &result) const
 evaluate function on local coordinate local
 
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::hessian (const DomainType &global, HessianRangeType &result) const
 evaluate function on local coordinate local
 
const LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction (const EntityType &entity) const
 Generate an ordinary local-function object which is ignorant of the value of the boundary-indicator, but supplies an init() method which can be used to make it indicator aware. More...
 
LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction (const EntityType &entity)
 Generate an ordinary local-function object which is ignorant of the value of the boundary-indicator, but supplies an init() method which can be used to make it indicator aware. More...
 
const LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction (const EntityType &entity, const IntersectionType &intersection) const
 Initialize a wrapped local function object for the given intersection. More...
 
LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction (const EntityType &entity, const IntersectionType &intersection)
 Initialize a wrapped local function object for the given intersection. More...
 
 Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::LocalFunction (const EntityType &entity, const DiscreteFunctionType &df)
 Bulk entity constructor.
 
 Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::LocalFunction (const DiscreteFunctionType &df)
 Bulk entity constructor.
 
 Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::LocalFunction (const EntityType &entity, const IntersectionType &intersection, const DiscreteFunctionType &df)
 Boundary intersection constructor.
 
template<class PointType >
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::evaluate (const PointType &x, RangeType &ret) const
 Evaluate local function. More...
 
template<class PointType >
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::jacobian (const PointType &x, JacobianRangeType &ret) const
 Evaluate Jacobian of local function. More...
 
template<class PointType >
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::hessian (const PointType &x, HessianRangeType &ret) const
 Evaluate Hessian of local function. More...
 
template<class QuadratureType , class VectorType >
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::evaluateQuadrature (const QuadratureType &quadrature, VectorType &values) const
 evaluate function or jacobian of function for given quadrature
 
int Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::order () const
 Return a bound on or suggestion for the piece-wise polynomial order.
 
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::init (const EntityType &entity)
 Bulk-entity initialization.
 
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::init (const EntityType &entity, const IntersectionType &isect)
 Intersection initialization.
 
bool Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::supported () const
 Return true if potentially non-zero. More...
 
template<class GridFunction1 , class GridFunction2 >
LocalFunctionWrapper< LocalMaxAdapter< GridFunction1, GridFunction2 >, typename GridFunction1::GridPartType > Dune::ACFem::max (const Fem::Function< typename GridFunction1::FunctionSpaceType, GridFunction1 > &f1, const Fem::Function< typename GridFunction2::FunctionSpaceType, GridFunction2 > &f2, const std::string &name="")
 Pointwise maximum of two given functions.
 
template<class GridFunction1 >
LocalFunctionWrapper< LocalMaxAdapter< GridFunction1, ConstantGridFunction< typename GridFunction1::FunctionSpaceType, typename GridFunction1::GridPartType > >, typename GridFunction1::GridPartType > Dune::ACFem::max (const Fem::Function< typename GridFunction1::FunctionSpaceType, GridFunction1 > &f1, const typename GridFunction1::FunctionSpaceType::RangeType value2, const std::string &name="")
 Pointwise maximum of two given functions where one is given by a RangeType value.
 
template<class GridFunction >
LocalFunctionWrapper< LocalNormAdapter< GridFunction, 2 >, typename GridFunction::GridPartType > Dune::ACFem::twoNorm (const Fem::Function< typename GridFunction::FunctionSpaceType, GridFunction > &f, const std::string &name="")
 Pointwise euclidean norm of a given function.
 

Detailed Description

Convenience classes in order to form Fem::Function objects for analytical functions.

This extends the Fem::GridFunctionAdapter and forms also copyable function objects which then can conveniently be inserted into expression templates. See GridFunctionExpressions.

Enumeration Type Documentation

◆ anonymous enum

template<class F >
anonymous enum
Enumerator
hasBoundarySupport 

Yes, we have!

◆ anonymous enum

template<class F >
anonymous enum
Enumerator
hasBoundarySupport 

Not exclusively boundary-supported.

◆ anonymous enum

template<class F >
anonymous enum
Enumerator
emptySupport 

Support is everywhere.

globalSupport 

Support is everywhere.

Function Documentation

◆ evaluate()

template<class GridFunction , class Indicator >
template<class PointType >
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::evaluate ( const PointType &  x,
RangeType ret 
) const
inline

Evaluate local function.

Evaluate to zero if the boundary indicator does not apply. If emptySupport == true then always evaluate to zero.

◆ hessian()

template<class GridFunction , class Indicator >
template<class PointType >
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::hessian ( const PointType &  x,
HessianRangeType ret 
) const
inline

Evaluate Hessian of local function.

Evaluate to zero if the boundary indicator does not apply. If emptySupport == true then always evaluate to zero.

◆ init()

template<class F >
static void Dune::ACFem::BoundaryFunctionTraits< F, true >::init ( LocalFunctionType &  lf,
const EntityType &  entity,
const IntersectionType &  intersection 
)
inlinestatic

For BoundarySupportedFunction's we pass the intersection as well as the bulk entity on to the local function's init-method.

Note that passing intersection.inside() is inherently dangerous as that is only a copy.

◆ jacobian()

template<class GridFunction , class Indicator >
template<class PointType >
void Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::jacobian ( const PointType &  x,
JacobianRangeType ret 
) const
inline

Evaluate Jacobian of local function.

Evaluate to zero if the boundary indicator does not apply. If emptySupport == true then always evaluate to zero.

◆ localFunction() [1/4]

template<class GridFunction , class Indicator >
LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction ( const EntityType &  entity)
inline

Generate an ordinary local-function object which is ignorant of the value of the boundary-indicator, but supplies an init() method which can be used to make it indicator aware.

better call localFunction(const IntersectionTyp&) directly.

◆ localFunction() [2/4]

template<class GridFunction , class Indicator >
const LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction ( const EntityType &  entity) const
inline

Generate an ordinary local-function object which is ignorant of the value of the boundary-indicator, but supplies an init() method which can be used to make it indicator aware.

better call localFunction(const IntersectionTyp&) directly.

Referenced by gridWalkTest().

◆ localFunction() [3/4]

template<class GridFunction , class Indicator >
LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction ( const EntityType &  entity,
const IntersectionType &  intersection 
)
inline

Initialize a wrapped local function object for the given intersection.

The resulting LocalFunction object will take the boundary indicator value into account.

◆ localFunction() [4/4]

template<class GridFunction , class Indicator >
const LocalFunctionType Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::localFunction ( const EntityType &  entity,
const IntersectionType &  intersection 
) const
inline

Initialize a wrapped local function object for the given intersection.

The resulting LocalFunction object will take the boundary indicator value into account.

◆ supported() [1/2]

template<class GridFunction , class Indicator >
bool Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >::LocalFunction::supported ( ) const
inline

Return true if potentially non-zero.

The state may be undefined unless init(const IntersectionType&) or the proper intersection initializer has been called. At any rate, if globalSupport == true then true is returned. If emptySupport == true then false is returned.

◆ supported() [2/2]

template<class F >
static bool Dune::ACFem::BoundaryFunctionTraits< F, true >::supported ( const LocalFunctionType &  lf)
inlinestatic

Decide if we are supported on this IntersectionType.

Optimized for global/empty support.

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 12, 23:30, 2024)