DUNE-ACFEM (2.5.1)
A function with potentially partial support on the boundary. More...
#include <dune/acfem/functions/boundarysupportedfunction.hh>
Classes | |
class | LocalFunction |
LocalFunction object which takes the value of a indicator into account. More... | |
Public Types | |
typedef LocalFunction | LocalFunctionType |
Type of local function to export. | |
typedef std::decay< decltype(*std::declval< Indicator >()&&*std::declval< InnerIndicatorType >())>::type | IndicatorType |
Resulting Boundary indicator type. | |
typedef GridFunction | GridFunctionType |
Type of wrapped grid-function. | |
typedef DiscreteFunctionSpaceType::GridType | GridType |
type of grid | |
typedef DiscreteFunctionSpaceType::DomainFieldType | DomainFieldType |
domain type (from function space) | |
typedef DiscreteFunctionSpaceType::RangeFieldType | RangeFieldType |
range type (from function space) | |
typedef DiscreteFunctionSpaceType::DomainType | DomainType |
domain type (from function space) | |
typedef DiscreteFunctionSpaceType::RangeType | RangeType |
range type (from function space) | |
typedef DiscreteFunctionSpaceType::JacobianRangeType | JacobianRangeType |
jacobian type (from function space) | |
typedef DiscreteFunctionSpaceType::HessianRangeType | HessianRangeType |
hessian type (from function space) | |
Public Member Functions | |
void | evaluate (const DomainType &global, RangeType &result) const |
evaluate function on local coordinate local | |
void | jacobian (const DomainType &global, JacobianRangeType &result) const |
evaluate function on local coordinate local | |
void | hessian (const DomainType &global, HessianRangeType &result) const |
evaluate function on local coordinate local | |
const LocalFunctionType | 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 | 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 | localFunction (const EntityType &entity, const IntersectionType &intersection) const |
Initialize a wrapped local function object for the given intersection. More... | |
LocalFunctionType | localFunction (const EntityType &entity, const IntersectionType &intersection) |
Initialize a wrapped local function object for the given intersection. More... | |
Detailed Description
class Dune::ACFem::BoundarySupportedFunction< GridFunction, Indicator >
A function with potentially partial support on the boundary.
A boundary-supported function models a function with potentially partial support on the boundary of the discrete domain. Normally it only wraps an existing grid-function (that is a Fem::Function with additional Fem::LocalFunction property) and augments it with a boundary indicator. The global evaluate() and jacobian() methods remain unchanged, but the associated LocalFunction object is instrumented with additional constructors in order to be constructed from a Dune::Intersection object. The thus generated LocalFunction object evaluates to zero where BoundaryIndicatorInterface<Indicator>::applies() returns false
. In principle this is the ExpressionTemplate for the product of the indicator function for a part of the boundary with some existing function. Consequently wrapping a function which already implements a BoundarySupportedFunction again results into restricting the support of that function further.
- Note
- This is somewhat inefficient, as it potentially implies if-clauses at every quadrature point. OTOH, this is a lower-dimensional issue. Also, the EntireBoundaryIndicatorType and EmptyBoundaryIndicatorType cases are handled efficiently. Problems which need differing kinds of boundary conditions on different parts of the boundary will need some overhead anyway (but please FIXME).
The documentation for this class was generated from the following file:
- dune/acfem/functions/boundarysupportedfunction.hh