DUNE-ACFEM (unstable)

Dune::ACFem::GridFunction::ModelDirichletValues< Model, GridPart > Class Template Reference

An adapter class which takes any ACFem-PDE model and extracts its Dirichlet values as a BoundarySupportedFunction. More...

#include <dune/acfem/functions/modules/modeldirichletvalues.hh>

+ Collaboration diagram for Dune::ACFem::GridFunction::ModelDirichletValues< Model, GridPart >:

Public Member Functions

 ModelDirichletValues (Model &&model, const GridPartType &gridPart, const std::string &name="")
 Extract the Dirichlet values from the given model. More...
 
template<class Intersection >
auto classifyIntersection (const Intersection &intersection)
 Bind to the given intersection and classify the components w.r.t. More...
 
template<class Point , std::enable_if_t<(IsQuadraturePoint< Point >::value||IsFieldVector< Point >::value), int > = 0>
auto evaluate (Point &x) const
 evaluate local function evaluate local function
 
template<class Point , std::enable_if_t<(IsQuadraturePoint< Point >::value||IsFieldVector< Point >::value), int > = 0>
void evaluate (const Point &point, RangeType &result) const
 evaluate local function
 
template<class Point , std::enable_if_t<(IsQuadraturePoint< Point >::value||IsFieldVector< Point >::value), int > = 0>
auto jacobian (const Point &x) const
 jacobian of local function
 
template<class Point , std::enable_if_t<(IsQuadraturePoint< Point >::value||IsFieldVector< Point >::value), int > = 0>
void jacobian (const Point &x, JacobianRangeType &result) const
 jacobian of local function
 

Detailed Description

template<class Model, class GridPart>
class Dune::ACFem::GridFunction::ModelDirichletValues< Model, GridPart >

An adapter class which takes any ACFem-PDE model and extracts its Dirichlet values as a BoundarySupportedFunction.

from its

Constructor & Destructor Documentation

◆ ModelDirichletValues()

template<class Model , class GridPart >
Dune::ACFem::GridFunction::ModelDirichletValues< Model, GridPart >::ModelDirichletValues ( Model &&  model,
const GridPartType &  gridPart,
const std::string &  name = "" 
)
inline

Extract the Dirichlet values from the given model.

Parameters
[in]modelThe model to extract the values from. Note that only a reference is stored in order to allow interaction with the ModelDirichletIndicator.
[in]nameFancy name for debugging. If empty the name of the model is used to construct some name.

Member Function Documentation

◆ classifyIntersection()

template<class Model , class GridPart >
template<class Intersection >
auto Dune::ACFem::GridFunction::ModelDirichletValues< Model, GridPart >::classifyIntersection ( const Intersection &  intersection)
inline

Bind to the given intersection and classify the components w.r.t.

to the kind of applicable boundary conditions.

Warning
Note that prior to calling this function the model has to be bound to the inside entity of the given intersection. Failing to do so generates undefined behaviour.
The result of calling the other boundary related methods without binding to an intersection is undefined.
If RESULT.first is false, then the result of calling any of the other boundary related functions is undefined. Philosophically, they should return 0 in this case, but in order to have decent performance they give a damn and just don't care.
If RESULT.first is true, then still you cannot rely on user-friendly behaviour:
  • only if the respective bit of RESULT.second is set to 1, then the Dirichlet value in this compoment is well-defined.
  • only if the respective bit of RESULT.second is set to 0, then the Robin value in this component is well defined.
Parameters
[in]intersectionThe intersection to bind to.
Returns
A tuple. First component is a bool which is true iff any of the boundary related data functions would result in non trivial results. Second component is a bitset of size dimRange which is true if the given component of the system is subject to Dirichlet boundary conditions and false if it is subject to Robin or Neumann boundary conditions. If first is false then the contents of the bitset is undefined.

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jul 15, 22:36, 2024)