dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Related Functions | List of all members
Dune::Fem::Function< FunctionSpaceImp, FunctionImp > Class Template Reference

Abstract class representing a function. More...

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

Inheritance diagram for Dune::Fem::Function< FunctionSpaceImp, FunctionImp >:
Inheritance graph

Public Types

typedef FunctionSpaceImp FunctionSpaceType
 type of function space this function belongs to
 
typedef FunctionImp FunctionType
 type of the implementation (Barton-Nackman)
 
typedef FunctionSpaceType::DomainFieldType DomainFieldType
 field type of domain
 
typedef FunctionSpaceType::RangeFieldType RangeFieldType
 field type of range
 
typedef FunctionSpaceType::DomainType DomainType
 domain type
 
typedef FunctionSpaceType::RangeType RangeType
 range type
 
typedef FunctionSpaceType::JacobianRangeType JacobianRangeType
 jacobian type
 
typedef FunctionSpaceType::HessianRangeType HessianRangeType
 hessian type
 
typedef Mapping< DomainFieldType, RangeFieldType, DomainType, RangeTypeMappingType
 type of mapping base class
 

Public Member Functions

ThisTypeoperator= (const ThisType &)=delete
 
virtual ~Function ()
 destructor
 
virtual void operator() (const DomainType &arg, RangeType &dest) const
 application operator call evaluate
 
void evaluate (const DomainType &x, RangeType &value) const
 evaluate the function
 
void jacobian (const DomainType &x, JacobianRangeType &jacobian) const
 evaluate the Jacobian of the function
 
void hessian (const DomainType &x, HessianRangeType &hessian) const
 evaluate the hessian of the function
 
void operator() (const DomainType &arg, RangeType &dest) const
 Application operator that applies all operators in the linear combination stack.
 

Protected Member Functions

 Function ()=default
 default constructor
 
 Function (const ThisType &)=default
 
const Implementation & asImp () const
 
Implementation & asImp ()
 

Static Protected Member Functions

static const Implementation & asImp (const ThisType &other)
 
static Implementation & asImp (ThisType &other)
 
static const FunctionImp & asImp (const ThisType &other)
 
static FunctionImp & asImp (ThisType &other)
 

Related Functions

(Note that these are not member functions.)

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

Detailed Description

template<class FunctionSpaceImp, class FunctionImp>
class Dune::Fem::Function< FunctionSpaceImp, FunctionImp >

Abstract class representing a function.

Template parameters are:

Member Typedef Documentation

◆ DomainFieldType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionSpaceType::DomainFieldType Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::DomainFieldType

field type of domain

◆ DomainType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionSpaceType::DomainType Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::DomainType

domain type

◆ FunctionSpaceType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionSpaceImp Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::FunctionSpaceType

type of function space this function belongs to

◆ FunctionType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionImp Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::FunctionType

type of the implementation (Barton-Nackman)

◆ HessianRangeType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionSpaceType::HessianRangeType Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::HessianRangeType

hessian type

◆ JacobianRangeType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionSpaceType::JacobianRangeType Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::JacobianRangeType

jacobian type

◆ MappingType

template<class FunctionSpaceImp , class FunctionImp >
typedef Mapping< DomainFieldType, RangeFieldType, DomainType, RangeType > Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::MappingType

type of mapping base class

◆ RangeFieldType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionSpaceType::RangeFieldType Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::RangeFieldType

field type of range

◆ RangeType

template<class FunctionSpaceImp , class FunctionImp >
typedef FunctionSpaceType::RangeType Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::RangeType

range type

Constructor & Destructor Documentation

◆ Function() [1/2]

template<class FunctionSpaceImp , class FunctionImp >
Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::Function ( )
protecteddefault

default constructor

◆ Function() [2/2]

template<class FunctionSpaceImp , class FunctionImp >
Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::Function ( const ThisType )
protecteddefault

◆ ~Function()

template<class FunctionSpaceImp , class FunctionImp >
virtual Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::~Function ( )
inlinevirtual

destructor

Member Function Documentation

◆ asImp() [1/6]

template<class FunctionSpaceImp , class FunctionImp >
Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( )
inlineprotected

◆ asImp() [2/6]

template<class FunctionSpaceImp , class FunctionImp >
const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ) const
inlineprotected

◆ asImp() [3/6]

template<class FunctionSpaceImp , class FunctionImp >
static const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( const ThisType other)
inlinestaticprotected

◆ asImp() [4/6]

static const FunctionImp & Dune::Fem::BartonNackmanInterface< Function< FunctionSpaceImp, FunctionImp > , FunctionImp >::asImp ( const ThisType other)
inlinestaticprotectedinherited

◆ asImp() [5/6]

template<class FunctionSpaceImp , class FunctionImp >
static Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ThisType other)
inlinestaticprotected

◆ asImp() [6/6]

static FunctionImp & Dune::Fem::BartonNackmanInterface< Function< FunctionSpaceImp, FunctionImp > , FunctionImp >::asImp ( ThisType other)
inlinestaticprotectedinherited

◆ evaluate()

template<class FunctionSpaceImp , class FunctionImp >
void Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::evaluate ( const DomainType x,
RangeType value 
) const
inline

evaluate the function

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

◆ hessian()

template<class FunctionSpaceImp , class FunctionImp >
void Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::hessian ( const DomainType x,
HessianRangeType hessian 
) const
inline

evaluate the hessian of the function

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

◆ jacobian()

template<class FunctionSpaceImp , class FunctionImp >
void Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::jacobian ( const DomainType x,
JacobianRangeType jacobian 
) const
inline

evaluate the Jacobian of the function

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

◆ operator()() [1/2]

template<class FunctionSpaceImp , class FunctionImp >
virtual void Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::operator() ( const DomainType arg,
RangeType dest 
) const
inlinevirtual

application operator call evaluate

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

◆ operator()() [2/2]

void Dune::Fem::Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::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

◆ operator=()

template<class FunctionSpaceImp , class FunctionImp >
ThisType & Dune::Fem::Function< FunctionSpaceImp, FunctionImp >::operator= ( const ThisType )
delete

Friends And Related Function Documentation

◆ operator*() [1/2]

static Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > operator* ( const FunctionSpaceImp ::RangeFieldType &  factor,
const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::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*() [2/2]

static Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > operator* ( const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > &  mapping,
const FunctionSpaceImp ::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+()

static Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > operator+ ( const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > &  a,
const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > &  b 
)
related

add two mappings

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

◆ operator-()

static Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > operator- ( const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > &  a,
const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > &  b 
)
related

substract two mappings

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

◆ operator/() [1/2]

static Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > operator/ ( const FunctionSpaceImp ::RangeFieldType &  factor,
const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > &  mapping 
)
related

operator / for mappings

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

◆ operator/() [2/2]

static Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > operator/ ( const Mapping< FunctionSpaceImp ::DomainFieldType , FunctionSpaceImp ::RangeFieldType , FunctionSpaceImp ::DomainType , FunctionSpaceImp ::RangeType > &  mapping,
const FunctionSpaceImp ::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

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