1 #ifndef DUNE_FEM_SPACE_BASISFUNCTIONSET_PROXY_HH 2 #define DUNE_FEM_SPACE_BASISFUNCTIONSET_PROXY_HH 9 #include <dune/common/nullptr.hh> 12 #include <dune/geometry/type.hh> 38 template<
class BasisFunctionSet >
45 const ImplementationType &
impl ()
const 47 assert( basisFunctionSet_ );
48 return *basisFunctionSet_;
63 : basisFunctionSet_( nullptr )
67 : basisFunctionSet_( basisFunctionSet )
77 Dune::GeometryType
type ()
const {
return impl().type(); }
86 template<
class QuadratureType,
class Vector,
class DofVector >
87 void axpy (
const QuadratureType &quad,
const Vector &values, DofVector &dofs )
const 93 template<
class QuadratureType,
class VectorA,
class VectorB,
class DofVector >
94 void axpy (
const QuadratureType &quad,
const VectorA &valuesA,
const VectorB &valuesB, DofVector &dofs )
const 96 impl().
axpy( quad, valuesA, valuesB, dofs );
100 template<
class Po
int,
class DofVector >
101 void axpy (
const Point &x,
const RangeType &valueFactor, DofVector &dofs )
const 103 impl().
axpy( x, valueFactor, dofs );
107 template<
class Po
int,
class DofVector >
108 void axpy (
const Point &x,
const JacobianRangeType &jacobianFactor, DofVector &dofs )
const 110 axpy( x, jacobianFactor, dofs );
114 template<
class Po
int,
class DofVector >
115 void axpy (
const Point &x,
const RangeType &valueFactor,
const JacobianRangeType &jacobianFactor,
116 DofVector &dofs )
const 118 impl().
axpy( x, valueFactor, jacobianFactor, dofs );
122 template<
class Po
int,
class DofVector,
class RangeArray >
123 void evaluateAll (
const Point &x,
const DofVector &dofs, RangeArray& ranges )
const 129 template<
class Po
int,
class DofVector >
130 void evaluateAll (
const Point &x,
const DofVector &dofs, RangeType &value )
const 136 template<
class Po
int,
class RangeArray >
143 template<
class Po
int,
class DofVector,
class JacobianArray >
144 void jacobianAll (
const Point &x,
const DofVector &dofs, JacobianArray &jacobians )
const 150 template<
class Po
int,
class DofVector >
151 void jacobianAll (
const Point &x,
const DofVector &dofs, JacobianRangeType &jacobian )
const 157 template<
class Po
int,
class JacobianRangeArray >
158 void jacobianAll (
const Point &x, JacobianRangeArray &jacobians )
const 164 template<
class Po
int,
class DofVector >
165 void hessianAll (
const Point &x,
const DofVector &dofs, HessianRangeType &hessian )
const 171 template<
class Po
int,
class HessianRangeArray >
172 void hessianAll (
const Point &x, HessianRangeArray &hessians )
const 188 #endif // #ifndef DUNE_FEM_SPACE_BASISFUNCTIONSET_PROXY_HH void evaluateAll(const Point &x, const DofVector &dofs, RangeArray &ranges) const
Definition: basisfunctionset/proxy.hh:123
FunctionSpaceType::RangeType RangeType
range type
Definition: basisfunctionset/basisfunctionset.hh:45
void axpy(const Point &x, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
Definition: basisfunctionset/proxy.hh:108
BasisFunctionSetProxy()
Definition: basisfunctionset/proxy.hh:62
void jacobianAll(const Point &x, const DofVector &dofs, JacobianArray &jacobians) const
Definition: basisfunctionset/proxy.hh:144
A vector valued function space.
Definition: functionspace.hh:16
BasisFunctionSet::FunctionSpaceType FunctionSpaceType
Definition: basisfunctionset/proxy.hh:53
void hessianAll(const Point &x, const DofVector &dofs, HessianRangeType &hessian) const
Definition: basisfunctionset/proxy.hh:165
BasisFunctionSet::ReferenceElementType ReferenceElementType
Definition: basisfunctionset/proxy.hh:60
void jacobianAll(const QuadratureType &quad, const DofVector &dofs, JacobianArray &jacobians) const
evaluate the jacobian of all basis functions and store the result in the jacobians array ...
void axpy(const Quadrature &quad, const Vector &values, DofVector &dofs) const
evaluate all basis function and multiply with given values and add to dofs
Dune::ReferenceElement< typename DomainType::value_type, DomainType::dimension > ReferenceElementType
type of reference element
Definition: basisfunctionset/basisfunctionset.hh:53
int order() const
return order of basis function set
Definition: basisfunctionset/proxy.hh:71
void axpy(const QuadratureType &quad, const Vector &values, DofVector &dofs) const
Definition: basisfunctionset/proxy.hh:87
BasisFunctionSetProxy(const BasisFunctionSet *basisFunctionSet)
Definition: basisfunctionset/proxy.hh:66
BasisFunctionSet::RangeType RangeType
Definition: basisfunctionset/proxy.hh:56
FunctionSpaceType::DomainType DomainType
range type
Definition: basisfunctionset/basisfunctionset.hh:43
FunctionSpaceType::JacobianRangeType JacobianRangeType
jacobian range type
Definition: basisfunctionset/basisfunctionset.hh:47
void evaluateAll(const Point &x, const DofVector &dofs, RangeType &value) const
Definition: basisfunctionset/proxy.hh:130
std::size_t size() const
return size of basis function set
Definition: basisfunctionset/proxy.hh:74
void axpy(const Point &x, const RangeType &valueFactor, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
Definition: basisfunctionset/proxy.hh:115
int order() const
return order of basis function set
Definition: coordinate.hh:4
void evaluateAll(const Quadrature &quad, const DofVector &dofs, RangeArray &ranges) const
evaluate all basis functions and store the result in the ranges array
void evaluateAll(const Point &x, RangeArray &values) const
Definition: basisfunctionset/proxy.hh:137
void axpy(const Point &x, const RangeType &valueFactor, DofVector &dofs) const
Definition: basisfunctionset/proxy.hh:101
void axpy(const QuadratureType &quad, const VectorA &valuesA, const VectorB &valuesB, DofVector &dofs) const
Definition: basisfunctionset/proxy.hh:94
Dune::GeometryType type() const
Definition: basisfunctionset/proxy.hh:77
void hessianAll(const Point &x, HessianRangeArray &hessians) const
Definition: basisfunctionset/proxy.hh:172
const ReferenceElementType & referenceElement() const
return reference element
Definition: basisfunctionset/proxy.hh:80
const EntityType & entity() const
return entity
Definition: basisfunctionset/proxy.hh:178
BasisFunctionSet::HessianRangeType HessianRangeType
Definition: basisfunctionset/proxy.hh:58
BasisFunctionSet ImplementationType
Definition: basisfunctionset/proxy.hh:44
void jacobianAll(const Point &x, const DofVector &dofs, JacobianRangeType &jacobian) const
Definition: basisfunctionset/proxy.hh:151
Definition: basisfunctionset/proxy.hh:39
const ReferenceElementType & referenceElement() const
return reference element
void hessianAll(const Point &x, const DofVector &dofs, HessianRangeType &hessian) const
BasisFunctionSet::EntityType EntityType
Definition: basisfunctionset/proxy.hh:51
BasisFunctionSet::DomainType DomainType
Definition: basisfunctionset/proxy.hh:55
Entity EntityType
entity type
Definition: basisfunctionset/basisfunctionset.hh:35
const EntityType & entity() const
return entity
void jacobianAll(const Point &x, JacobianRangeArray &jacobians) const
Definition: basisfunctionset/proxy.hh:158
BasisFunctionSet::JacobianRangeType JacobianRangeType
Definition: basisfunctionset/proxy.hh:57
Definition: basisfunctionset/basisfunctionset.hh:31
const ImplementationType & impl() const
Definition: basisfunctionset/proxy.hh:45
FunctionSpaceType::HessianRangeType HessianRangeType
hessian range type
Definition: basisfunctionset/basisfunctionset.hh:49
std::size_t size() const
return size of basis function set