dune-fem 2.8-git
Classes | Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Related Functions | List of all members
Dune::Fem::BasicGridFunctionAdapter< FunctionImp, GridPartImp > Class Template Reference

BasicGridFunctionAdapter provides local functions for a Function. More...

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

Inheritance diagram for Dune::Fem::BasicGridFunctionAdapter< FunctionImp, GridPartImp >:
Inheritance graph

Classes

class  LocalFunction
 

Public Types

typedef BasicGridFunctionAdapterTraits< FunctionImp, GridPartImp > Traits
 type of traits More...
 
typedef std::decay_t< FunctionImp > FunctionType
 type of function More...
 
typedef GridPartImp GridPartType
 type of grid part More...
 
typedef Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 type of discrete function space More...
 
typedef Traits::FunctionSpaceType FunctionSpaceType
 
typedef DiscreteFunctionSpaceType::GridType GridType
 type of grid More...
 
typedef DiscreteFunctionSpaceType::DomainFieldType DomainFieldType
 domain type (from function space) More...
 
typedef DiscreteFunctionSpaceType::RangeFieldType RangeFieldType
 range type (from function space) More...
 
typedef DiscreteFunctionSpaceType::DomainType DomainType
 domain type (from function space) More...
 
typedef DiscreteFunctionSpaceType::RangeType RangeType
 range type (from function space) More...
 
typedef DiscreteFunctionSpaceType::JacobianRangeType JacobianRangeType
 jacobian type (from function space) More...
 
typedef Traits::EntityType EntityType
 type of codim 0 entity More...
 
typedef Traits::IntersectionType IntersectionType
 
typedef LocalFunction LocalFunctionType
 type of local function to export More...
 
typedef FunctionSpaceType::HessianRangeType HessianRangeType
 hessian type More...
 
typedef Mapping< DomainFieldType, RangeFieldType, DomainType, RangeTypeMappingType
 type of mapping base class More...
 

Public Member Functions

 BasicGridFunctionAdapter (std::string name, FunctionImp f, const GridPartType &gridPart, unsigned int order=DiscreteFunctionSpaceType::polynomialOrder)
 
 BasicGridFunctionAdapter (const ThisType &other)
 
void evaluate (const DomainType &global, RangeType &result) const
 evaluate function on local coordinate local More...
 
void jacobian (const DomainType &global, JacobianRangeType &result) const
 evaluate function on local coordinate local More...
 
LocalFunctionType localFunction (const EntityType &entity)
 obtain a local function for an entity (read-write) More...
 
const LocalFunctionType localFunction (const EntityType &entity) const
 obtain a local function for an entity (read-write) More...
 
const std::string & name () const
 obtain the name of the discrete function More...
 
const DiscreteFunctionSpaceTypespace () const
 obtain a reference to the corresponding DiscreteFunctionSpace More...
 
const GridPartTypegridPart () const
 
int order () const
 return true, probably More...
 
bool continuous () const
 return true, probably More...
 
virtual void operator() (const DomainType &arg, RangeType &dest) const
 application operator call evaluate More...
 
void operator() (const DomainType &arg, RangeType &dest) const
 Application operator that applies all operators in the linear combination stack. More...
 
void evaluate (const DomainType &x, RangeType &value) const
 evaluate the function More...
 
void jacobian (const DomainType &x, JacobianRangeType &jacobian) const
 evaluate the Jacobian of the function More...
 
void hessian (const DomainType &x, HessianRangeType &hessian) const
 evaluate the hessian of the function More...
 

Protected Member Functions

const Implementation & asImp () const
 
Implementation & asImp ()
 

Static Protected Member Functions

static const Implementation & asImp (const ThisType &other)
 
static Implementation & asImp (ThisType &other)
 
static const BasicGridFunctionAdapter< FunctionImp, GridPartImp > & asImp (const ThisType &other)
 
static BasicGridFunctionAdapter< FunctionImp, GridPartImp > & asImp (ThisType &other)
 

Protected Attributes

DiscreteFunctionSpaceType space_
 
FunctionImp function_
 
const std::string name_
 

Related Functions

(Note that these are not member functions.)

static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeTypeoperator+ (const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &a, const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &b)
 add two mappings More...
 
static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeTypeoperator- (const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &a, const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &b)
 substract two mappings More...
 
static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeTypeoperator* (const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &mapping, const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType &factor)
 scale mapping with factor More...
 
static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeTypeoperator* (const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType &factor, const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &mapping)
 scale mapping with factor More...
 
static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeTypeoperator/ (const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &mapping, const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType &factor)
 operator / for mappings More...
 
static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeTypeoperator/ (const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType &factor, const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType, std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType, std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &mapping)
 operator / for mappings More...
 

Detailed Description

template<class FunctionImp, class GridPartImp>
class Dune::Fem::BasicGridFunctionAdapter< FunctionImp, GridPartImp >

BasicGridFunctionAdapter provides local functions for a Function.

Member Typedef Documentation

◆ HessianRangeType

typedef FunctionSpaceType::HessianRangeType Dune::Fem::Function< std::decay_t< FunctionImp >::FunctionSpaceType , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::HessianRangeType
inherited

hessian type

◆ MappingType

typedef Mapping< DomainFieldType, RangeFieldType, DomainType, RangeType > Dune::Fem::Function< std::decay_t< FunctionImp >::FunctionSpaceType , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::MappingType
inherited

type of mapping base class

Member Function Documentation

◆ asImp() [1/6]

Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( )
inlineprotectedinherited

◆ asImp() [2/6]

const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ) const
inlineprotectedinherited

◆ asImp() [3/6]

static const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( const ThisType other)
inlinestaticprotectedinherited

◆ asImp() [4/6]

static const BasicGridFunctionAdapter< FunctionImp, GridPartImp > & Dune::Fem::BartonNackmanInterface< Function< std::decay_t< FunctionImp >::FunctionSpaceType, BasicGridFunctionAdapter< FunctionImp, GridPartImp > > , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::asImp ( const ThisType other)
inlinestaticprotectedinherited

◆ asImp() [5/6]

static Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ThisType other)
inlinestaticprotectedinherited

◆ asImp() [6/6]

static BasicGridFunctionAdapter< FunctionImp, GridPartImp > & Dune::Fem::BartonNackmanInterface< Function< std::decay_t< FunctionImp >::FunctionSpaceType, BasicGridFunctionAdapter< FunctionImp, GridPartImp > > , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::asImp ( ThisType other)
inlinestaticprotectedinherited

◆ evaluate()

void Dune::Fem::Function< std::decay_t< FunctionImp >::FunctionSpaceType , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::evaluate ( const DomainType x,
RangeType value 
) const
inlineinherited

evaluate the function

Parameters
[in]xevaluation point
[out]valuevalue of the function in x

◆ hessian()

void Dune::Fem::Function< std::decay_t< FunctionImp >::FunctionSpaceType , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::hessian ( const DomainType x,
HessianRangeType hessian 
) const
inlineinherited

evaluate the hessian of the function

Parameters
[in]xevaluation point
[out]hessianvalue of the hessian in x

◆ jacobian()

void Dune::Fem::Function< std::decay_t< FunctionImp >::FunctionSpaceType , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::jacobian ( const DomainType x,
JacobianRangeType jacobian 
) const
inlineinherited

evaluate the Jacobian of the function

Parameters
[in]xevaluation point
[out]jacobianvalue of the Jacobian in x

◆ operator()() [1/2]

virtual void Dune::Fem::Function< std::decay_t< FunctionImp >::FunctionSpaceType , BasicGridFunctionAdapter< FunctionImp, GridPartImp > >::operator() ( const DomainType arg,
RangeType dest 
) const
inlinevirtualinherited

application operator call evaluate

Parameters
[in]argargument
[out]destdestination, i.e. f(arg)

◆ operator()() [2/2]

void Dune::Fem::Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType >::operator() ( const DomainType arg,
RangeType dest 
) const
inlineinherited

Application operator that applies all operators in the linear combination stack.

Parameters
[in]argargument
[out]destdestination

Friends And Related Function Documentation

◆ operator*() [1/2]

static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > operator* ( const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  mapping,
const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType factor 
)
related

scale mapping with factor

Parameters
[in]mappingMapping which is scaled
[in]factorfactor with which mapping is scaled
Returns
new object mapping

◆ operator*() [2/2]

static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > operator* ( const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType factor,
const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  mapping 
)
related

scale mapping with factor

Parameters
[in]factorfactor with which mapping is scaled
[in]mappingMapping which is scaled
Returns
new object mapping

◆ operator+()

static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > operator+ ( const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  a,
const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  b 
)
related

add two mappings

Parameters
[in]amapping 1
[in]bmapping 2
Returns
new object mapping

◆ operator-()

static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > operator- ( const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  a,
const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  b 
)
related

substract two mappings

Parameters
[in]amapping 1
[in]bmapping 2
Returns
new object mapping

◆ operator/() [1/2]

static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > operator/ ( const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  mapping,
const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType factor 
)
related

operator / for mappings

Parameters
[in]mappingmapping which is divided
[in]factorf factor by which result of mapping is divided
Returns
new object mapping

◆ operator/() [2/2]

static Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > operator/ ( const std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType factor,
const Mapping< std::decay_t< FunctionImp >::FunctionSpaceType ::DomainFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeFieldType , std::decay_t< FunctionImp >::FunctionSpaceType ::DomainType , std::decay_t< FunctionImp >::FunctionSpaceType ::RangeType > &  mapping 
)
related

operator / for mappings

Parameters
[in]factorby which result of mapping is divided
[in]mappingwhich is divided
Returns
new object mapping

The documentation for this class was generated from the following file: