dune-fem
2.4.1-rc
|
interface for local functions More...
#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/function/localfunction/localfunction.hh>
Public Types | |
typedef BasisFunctionSet | BasisFunctionSetType |
type of basis function set More... | |
typedef LocalDofVector | LocalDofVectorType |
type of local Dof Vector More... | |
typedef LocalDofVectorType::value_type | DofType |
type of DoF use with the discrete function More... | |
typedef LocalDofVectorType::size_type | SizeType |
type of index More... | |
typedef BasisFunctionSetType::EntityType | EntityType |
type of the entity, the local function lives on is given by the space More... | |
typedef BasisFunctionSetType::FunctionSpaceType | FunctionSpaceType |
type of functionspace More... | |
typedef FunctionSpaceType::DomainFieldType | DomainFieldType |
field type of the domain More... | |
typedef FunctionSpaceType::RangeFieldType | RangeFieldType |
field type of the range More... | |
typedef FunctionSpaceType::DomainType | DomainType |
type of domain vectors, i.e., type of coordinates More... | |
typedef FunctionSpaceType::RangeType | RangeType |
type of range vectors, i.e., type of function values More... | |
typedef FunctionSpaceType::JacobianRangeType | JacobianRangeType |
type of the Jacobian, i.e., type of evaluated Jacobian matrix More... | |
typedef FunctionSpaceType::HessianRangeType | HessianRangeType |
type of the Hessian More... | |
typedef EntityType::Geometry::LocalCoordinate | LocalCoordinateType |
type of local coordinates More... | |
Public Member Functions | |
LocalFunction () | |
default constructor, calls default ctor of BasisFunctionSetType and LocalDofVectorType More... | |
LocalFunction (const BasisFunctionSetType &basisFunctionSet) | |
ctor taking a basisFunctionSet, calling default ctor for LocalDofVectorType, and resize More... | |
LocalFunction (const LocalDofVectorType &localDofVector) | |
ctor taking a localDofVector, calling default ctor for BasisFunctionSetType More... | |
LocalFunction (const BasisFunctionSetType &basisFunctionSet, const LocalDofVector &localDofVector) | |
copy given agruments More... | |
LocalFunction (LocalDofVectorType &&localDofVector) | |
half move ctor More... | |
LocalFunction (const BasisFunctionSetType &basisFunctionSet, LocalDofVector &&localDofVector) | |
half move ctor More... | |
LocalFunction (ThisType &&other) | |
move constructor More... | |
LocalFunction (const ThisType &other) | |
copy constructor More... | |
const DofType & | operator[] (SizeType num) const |
access to local dofs (read-only) More... | |
DofType & | operator[] (SizeType num) |
access to local dofs (read-write) More... | |
template<class T > | |
ThisType & | operator+= (const LocalFunction< BasisFunctionSet, T > &other) |
add another local function to this one More... | |
template<class T > | |
void | assign (const LocalFunction< BasisFunctionSet, T > &other) |
assign all DoFs of this local function More... | |
void | clear () |
set all DoFs to zero More... | |
template<class T > | |
ThisType & | operator-= (const LocalFunction< BasisFunctionSet, T > &other) |
subtract another local function to this one More... | |
template<class T > | |
ThisType & | axpy (const RangeFieldType s, const LocalFunction< BasisFunctionSet, T > &other) |
add a multiple of another local function to this one More... | |
template<class PointType > | |
void | axpy (const PointType &x, const RangeType &factor) |
axpy operation for local function More... | |
template<class PointType > | |
void | axpy (const PointType &x, const JacobianRangeType &factor) |
axpy operation for local function More... | |
template<class PointType > | |
void | axpy (const PointType &x, const RangeType &factor1, const JacobianRangeType &factor2) |
axpy operation for local function More... | |
int | order () const |
obtain the order of this local function More... | |
const BasisFunctionSetType & | basisFunctionSet () const |
obtain the basis function set for this local function More... | |
const EntityType & | entity () const |
obtain the entity, this local function lives on More... | |
void | init (const BasisFunctionSetType &basisFunctionSet) |
template<class PointType > | |
void | evaluate (const PointType &x, RangeType &ret) const |
evaluate the local function More... | |
template<class PointType > | |
void | jacobian (const PointType &x, JacobianRangeType &ret) const |
evaluate Jacobian of the local function More... | |
template<class PointType > | |
void | hessian (const PointType &x, HessianRangeType &ret) const |
evaluate Hessian of the local function More... | |
int | numDofs () const |
obtain the number of local DoFs More... | |
SizeType | size () const |
int | numScalarDofs () const |
obtain the number of local DoFs in the scalar case More... | |
template<class QuadratureType , class VectorType > | |
void | axpyQuadrature (const QuadratureType &quad, const VectorType &values) |
evaluate all basisfunctions for all quadrature points, multiply with the given factor and add the result to the local coefficients More... | |
template<class QuadratureType , class RangeVectorType , class JacobianRangeVectorType > | |
void | axpyQuadrature (const QuadratureType &quad, const RangeVectorType &rangeVector, const JacobianRangeVectorType &jacobianVector) |
evaluate all basisfunctions for all quadrature points, multiply with the given factor and add the result to the local coefficients More... | |
template<class QuadratureType , class VectorType > | |
void | evaluateQuadrature (const QuadratureType &quad, VectorType &result) const |
evaluate all basisfunctions for all quadrature points and store the results in the result vector More... | |
const LocalDofVectorType & | localDofVector () const |
return const reference to local Dof Vector More... | |
LocalDofVectorType & | localDofVector () |
return mutable reference to local Dof Vector More... | |
Static Public Attributes | |
static const int | dimDomain = FunctionSpaceType::dimDomain |
dimension of the domain More... | |
static const int | dimRange = FunctionSpaceType::dimRange |
dimension of the range More... | |
Protected Member Functions | |
template<class QuadratureType , class VectorType > | |
void | evaluateQuadrature (const QuadratureType &quad, VectorType &result, const RangeType &) const |
template<class QuadratureType , class VectorType > | |
void | evaluateQuadrature (const QuadratureType &quad, VectorType &result, const JacobianRangeType &) const |
Protected Attributes | |
BasisFunctionSetType | basisFunctionSet_ |
LocalDofVectorType | localDofVector_ |
interface for local functions
Local functions are used to represend a discrete function on one entity. The LocalFunctionInterface defines the functionality that can be expected from such a local function.
typedef BasisFunctionSet Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::BasisFunctionSetType |
type of basis function set
typedef LocalDofVectorType::value_type Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::DofType |
type of DoF use with the discrete function
typedef FunctionSpaceType::DomainFieldType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::DomainFieldType |
field type of the domain
typedef FunctionSpaceType::DomainType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::DomainType |
type of domain vectors, i.e., type of coordinates
typedef BasisFunctionSetType::EntityType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::EntityType |
type of the entity, the local function lives on is given by the space
typedef BasisFunctionSetType::FunctionSpaceType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::FunctionSpaceType |
type of functionspace
typedef FunctionSpaceType::HessianRangeType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::HessianRangeType |
type of the Hessian
typedef FunctionSpaceType::JacobianRangeType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::JacobianRangeType |
type of the Jacobian, i.e., type of evaluated Jacobian matrix
typedef EntityType::Geometry::LocalCoordinate Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::LocalCoordinateType |
type of local coordinates
typedef LocalDofVector Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::LocalDofVectorType |
type of local Dof Vector
typedef FunctionSpaceType::RangeFieldType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::RangeFieldType |
field type of the range
typedef FunctionSpaceType::RangeType Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::RangeType |
type of range vectors, i.e., type of function values
typedef LocalDofVectorType::size_type Dune::Fem::LocalFunction< BasisFunctionSet, LocalDofVector >::SizeType |
type of index
|
inline |
default constructor, calls default ctor of BasisFunctionSetType and LocalDofVectorType
|
inlineexplicit |
ctor taking a basisFunctionSet, calling default ctor for LocalDofVectorType, and resize
|
inlineexplicit |
ctor taking a localDofVector, calling default ctor for BasisFunctionSetType
|
inline |
copy given agruments
|
inlineexplicit |
half move ctor
|
inline |
half move ctor
|
inline |
move constructor
|
inline |
copy constructor
|
inline |
assign all DoFs of this local function
[in] | lf | local function to assign DoFs from |
|
inline |
add a multiple of another local function to this one
[in] | s | scalar factor to scale lf with |
[in] | lf | local function to add |
Referenced by Dune::Fem::BasicConstLocalFunction< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DofType, DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::LocalDofVectorAllocatorType::template rebind< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DofType >::other > >::operator[](), and Dune::Fem::DiscontinuousGalerkinLocalRestrictProlong< HierarchicLegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp >, false >::restrictLocal().
|
inline |
axpy operation for local function
Denoting the DoFs of the local function by and the basis functions by
, this function performs the following operation:
[in] | x | point to evaluate basis functions in |
[in] | factor | axpy factor |
|
inline |
axpy operation for local function
Denoting the DoFs of the local function by and the basis functions by
, this function performs the following operation:
[in] | x | point to evaluate jacobian of basis functions in |
[in] | factor | axpy factor |
|
inline |
axpy operation for local function
Denoting the DoFs of the local function by and the basis functions by
, this function performs the following operation:
[in] | x | point to evaluate basis functions in |
[in] | factor1 | axpy factor for ![]() |
[in] | factor2 | axpy factor for ![]() |
|
inline |
evaluate all basisfunctions for all quadrature points, multiply with the given factor and add the result to the local coefficients
Referenced by Dune::Fem::LocalDGPass< DiscreteModelImp, PreviousPassImp >::applyLocal().
|
inline |
evaluate all basisfunctions for all quadrature points, multiply with the given factor and add the result to the local coefficients
|
inline |
obtain the basis function set for this local function
Referenced by Dune::Fem::LocalMassMatrixImplementation< DiscreteFunctionSpaceType, QuadratureType >::applyInverseDefault(), Dune::Fem::LocalMassMatrixImplementation< DiscreteFunctionSpaceType, QuadratureType >::applyInverseDgOrthoNormalBasis(), Dune::Fem::LocalMassMatrixImplementation< DiscreteFunctionSpaceType, QuadratureType >::applyInverseLocally(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::axpy(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::axpyQuadrature(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::entity(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::evaluate(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::evaluateQuadrature(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::hessian(), Dune::Fem::ConstLocalFunction< DiscreteFunction >::init(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::init(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::jacobian(), and Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::order().
|
inline |
set all DoFs to zero
Referenced by Dune::Fem::BasicConstLocalFunction< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DofType, DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::LocalDofVectorAllocatorType::template rebind< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DofType >::other > >::operator[](), and Dune::Fem::DiscontinuousGalerkinLocalRestrictProlong< HierarchicLegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp >, false >::restrictLocal().
|
inline |
obtain the entity, this local function lives on
Referenced by Dune::Fem::LocalAverageImpl< LocalFunction, GridPart, DiscreteFunctionSpace >::apply(), Dune::Fem::LocalAverageImpl< LocalFunction, GridPart, DiscontinuousGalerkinSpace< FunctionSpace, GridPart, order, Storage > >::apply(), Dune::Fem::LocalMassMatrixImplementation< DiscreteFunctionSpaceType, QuadratureType >::applyInverse(), Dune::Fem::LocalMassMatrixImplementationDgOrthoNormal< HierarchicLegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, BaseFunctionStorageImp >, VolumeQuadratureImp >::applyInverse(), Dune::Fem::GenericDiscontinuousGalerkinSpace< DiscontinuousGalerkinSpaceTraits< FunctionSpace, GridPart, polOrder, Storage > >::interpolate(), Dune::Fem::LagrangeDiscreteFunctionSpace< FunctionSpaceType, GridPartType, 1 >::interpolate(), and Dune::Fem::DiscontinuousGalerkinLocalInterpolation< DiscreteFunctionSpace, Quadrature >::operator()().
|
inline |
evaluate the local function
[in] | x | evaluation point in local coordinates |
[out] | ret | value of the function in the given point |
Referenced by Dune::Fem::LagrangeLocalInterpolation< GridPart, order, BasisFunctionSet >::apply(), Dune::Fem::LocalAverageImpl< LocalFunction, GridPart, FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >::apply(), Dune::Fem::DefaultLocalL2Projection< LocalRieszProjectionType, Quadrature >::apply(), Dune::Fem::LocalAverageHelper::applyQuadrature(), Dune::Fem::RannacherTurekLocalInterpolation< BasisFunctionSet, LocalInterpolation >::localInterpolation(), and Dune::Fem::DiscontinuousGalerkinLocalInterpolation< DiscreteFunctionSpace, Quadrature >::operator()().
|
inline |
evaluate all basisfunctions for all quadrature points and store the results in the result vector
|
inlineprotected |
|
inlineprotected |
|
inline |
evaluate Hessian of the local function
[in] | x | evaluation point in local coordinates |
[out] | ret | Hessian of the function in the evaluation point |
|
inline |
Referenced by Dune::Fem::MutableLocalFunction< DiscreteFunction >::init(), Dune::Fem::BasicTemporaryLocalFunction< DiscreteFunctionSpace, Dune::DynamicVector< typename DiscreteFunctionSpace::RangeFieldType > >::init(), and Dune::Fem::ConstLocalFunction< DiscreteFunction >::init().
|
inline |
evaluate Jacobian of the local function
[in] | x | evaluation point in local coordinates |
[out] | ret | Jacobian of the function in the evaluation point |
|
inline |
return const reference to local Dof Vector
Referenced by Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::assign(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::axpy(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::axpyQuadrature(), Dune::Fem::BasicConstLocalFunction< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DofType, DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::LocalDofVectorAllocatorType::template rebind< DiscreteFunctionTraits< std::remove_const< DiscreteFunction >::type >::DofType >::other > >::BasicConstLocalFunction(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::clear(), Dune::Fem::ConstLocalFunction< DiscreteFunction >::ConstLocalFunction(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::evaluate(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::evaluateQuadrature(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::hessian(), Dune::Fem::ConstLocalFunction< DiscreteFunction >::init(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::jacobian(), Dune::Fem::MutableLocalFunction< DiscreteFunction >::MutableLocalFunction(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::numDofs(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::operator+=(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::operator-=(), and Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::size().
|
inline |
return mutable reference to local Dof Vector
|
inline |
obtain the number of local DoFs
Obtain the number of local DoFs of this local function. The value is identical to the number of basis functons on the entity.
Referenced by Dune::Fem::LocalMassMatrixImplementation< DiscreteFunctionSpaceType, QuadratureType >::applyInverseDefault(), Dune::Fem::LocalMassMatrixImplementation< DiscreteFunctionSpaceType, QuadratureType >::applyInverseDgOrthoNormalBasis(), Dune::Fem::LocalMassMatrixImplementation< DiscreteFunctionSpaceType, QuadratureType >::applyInverseLocally(), and Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::numScalarDofs().
|
inline |
obtain the number of local DoFs in the scalar case
Obtain the number of local DoFs of the scalar case of this local function. The value is identical to the number of basis functons on the entity.
|
inline |
add another local function to this one
[in] | lf | local function to add |
|
inline |
subtract another local function to this one
[in] | lf | local function to subtract |
|
inline |
access to local dofs (read-only)
[in] | num | local dof number |
|
inline |
access to local dofs (read-write)
[in] | num | local DoF number |
|
inline |
obtain the order of this local function
The order of a local function refers to the polynomial order required to integrate it exactly.
Referenced by Dune::Fem::LocalAverageImpl< LocalFunction, GridPart, DiscreteFunctionSpace >::apply(), Dune::Fem::LocalAverageImpl< LocalFunction, GridPart, DiscontinuousGalerkinSpace< FunctionSpace, GridPart, order, Storage > >::apply(), Dune::Fem::DefaultLocalL2Projection< LocalRieszProjectionType, Quadrature >::apply(), and Dune::Fem::DiscontinuousGalerkinLocalInterpolation< DiscreteFunctionSpace, Quadrature >::operator()().
|
inline |
|
protected |
Referenced by Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::basisFunctionSet(), and Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::init().
|
static |
dimension of the domain
|
static |
|
protected |
Referenced by Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::init(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::localDofVector(), Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::LocalFunction(), and Dune::Fem::LocalFunction< DiscreteFunctionSpaceType::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpaceType::RangeFieldType > >::operator[]().