DUNE-FEM (unstable)

Dune::Fem::LocalAnalyticalFunctionBinder< DiscreteFunctionSpaceImpl > Class Template Reference

LocalAnalyticalFunctionBinder binds a C++ local analytical function (and also its Jacobian and Hessian) to an object which provides all the methods and types needed by the LocalFunctionAdapter. It stores a copy as a std::function. More...

#include <dune/fem/function/common/localfunctionadapter.hh>

Public Types

typedef EntityType::Geometry Geometry
 type of geometry
 
typedef Geometry::ctype ctype
 type of coordinate field
 
typedef std::decay_t< decltype(Dune::ReferenceElements< ctype, Geometry::coorddimension >::general(std::declval< const Dune::GeometryType & >())) > ReferenceElementType
 type of reference element
 

Public Member Functions

 LocalAnalyticalFunctionBinder (const AnalyticalFunctionType &f=[](const auto &, auto, const auto &){return RangeType(0.0);}, const AnalyticalJacobianType &j=[](const auto &, auto, const auto &){return JacobianRangeType(0.0);}, const AnalyticalHessianType &h=[](const auto &, auto, const auto &){return HessianRangeType(0.0);}, double t=0.0)
 constructor
 
AnalyticalFunctionType & function ()
 get local function
 
const AnalyticalFunctionType & function () const
 get local function
 
AnalyticalJacobianType & jacobian ()
 get jacobian local function
 
const AnalyticalJacobianType & jacobian () const
 get jacobian local function
 
AnalyticalHessianType & hessian ()
 get hessian local function
 
const AnalyticalHessianType & hessian () const
 get hessian local function
 
template<class PointType >
void evaluate (const PointType &x, RangeType &ret) const
 evaluate local function
 
template<class PointType >
void jacobian (const PointType &x, JacobianRangeType &ret) const
 evaluate jacobian local function
 
template<class PointType >
void hessian (const PointType &x, HessianRangeType &ret) const
 evaluate hessian local function
 
void init (const EntityType &entity)
 initialize entity
 
template<typename Arg >
void initialize (Arg &&, double time)
 initialize time
 
double time () const
 get time
 
const Entityentity () const
 return entity
 
bool valid () const
 return true if entity pointer is set
 
const Geometrygeometry () const
 return geometry
 
Dune::GeometryType type () const
 return geometry type
 
const ReferenceElementTypereferenceElement () const
 return reference element
 
void bind (const EntityType &entity)
 set new entity object and geometry if enabled
 
void unbind ()
 release entity and geometry object
 

Detailed Description

template<class DiscreteFunctionSpaceImpl>
class Dune::Fem::LocalAnalyticalFunctionBinder< DiscreteFunctionSpaceImpl >

LocalAnalyticalFunctionBinder binds a C++ local analytical function (and also its Jacobian and Hessian) to an object which provides all the methods and types needed by the LocalFunctionAdapter. It stores a copy as a std::function.

Therefore, in order to transform the function

RangeType f(const DomainType& x,double t,const EntityType& entity) { // do stuff }

into a grid function, it is sufficient to pass it to the LocalAnalyticalFucntionBinder

typedef LocalAnalyticalFunctionBinder<DiscreteFunctionSpaceType> LocalAnalyticalFunctionType; LocalAnalyticalFunctionType localAnalyticalFunction(f);

and create the LocalFunctionAdapter

typedef LocalFunctionAdapter<LocalAnalyticalFunctionType> AdaptedFunctionType; AdaptedFunctionType fAdapted("adapted function",localAnalyticalFunction,gridPart);


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 (Nov 23, 23:29, 2024)