1 #ifndef DUNE_FEM_BASISFUNCTIONSET_BASISFUNCTIONSET_HH 2 #define DUNE_FEM_BASISFUNCTIONSET_BASISFUNCTIONSET_HH 6 #include <dune/geometry/referenceelements.hh> 7 #include <dune/geometry/type.hh> 30 template<
class Entity,
class Range >
38 typedef FunctionSpace<
typename Entity::Geometry::ctype,
typename Range::value_type,
39 Entity::Geometry::coorddimension, Range::dimension
52 typedef Dune::ReferenceElement<
typename DomainType::value_type,
59 std::size_t
size ()
const;
67 template<
class Quadrature,
class Vector,
class DofVector >
68 void axpy (
const Quadrature &quad,
const Vector &values, DofVector &dofs )
const;
73 template<
class Quadrature,
class VectorA,
class VectorB,
class DofVector >
74 void axpy (
const Quadrature &quad,
const VectorA &valuesA,
const VectorB &valuesB, DofVector &dofs )
const;
79 template<
class Po
int,
class DofVector >
80 void axpy (
const Point &x,
const RangeType &valueFactor, DofVector &dofs )
const;
85 template<
class Po
int,
class DofVector >
86 void axpy (
const Point &x,
const JacobianRangeType &jacobianFactor, DofVector &dofs )
const;
91 template<
class Po
int,
class DofVector >
92 void axpy (
const Point &x,
const RangeType &valueFactor,
const JacobianRangeType &jacobianFactor,
93 DofVector &dofs )
const;
98 template<
class Quadrature,
class DofVector,
class RangeArray >
102 template<
class Po
int,
class DofVector >
103 void evaluateAll (
const Point &x,
const DofVector &dofs, RangeType &value )
const;
106 template<
class Po
int,
class RangeArray >
107 void evaluateAll (
const Point &x, RangeArray &values )
const;
110 template<
class QuadratureType,
class DofVector,
class JacobianArray >
111 void jacobianAll (
const QuadratureType &quad,
const DofVector &dofs, JacobianArray &jacobians )
const;
114 template<
class Po
int,
class DofVector >
115 void jacobianAll (
const Point &x,
const DofVector &dofs, JacobianRangeType &jacobian )
const;
118 template<
class Po
int,
class JacobianRangeArray >
119 void jacobianAll (
const Point &x, JacobianRangeArray &jacobians )
const;
122 template<
class Po
int,
class DofVector >
123 void hessianAll (
const Point &x,
const DofVector &dofs, HessianRangeType &hessian )
const;
126 template<
class Po
int,
class HessianRangeArray >
127 void hessianAll (
const Point &x, HessianRangeArray &hessians )
const;
130 const EntityType &
entity ()
const;
137 #endif // #ifndef DUNE_FEM_BASISFUNCTIONSET_BASISFUNCTIONSET_HH FunctionSpaceType::RangeType RangeType
range type
Definition: basisfunctionset/basisfunctionset.hh:45
A vector valued function space.
Definition: functionspace.hh:16
VectorSpaceTraits< DomainField, RangeField, dimD, dimR >::LinearMappingType JacobianRangeType
Intrinsic type used for the jacobian values has a Dune::FieldMatrix type interface.
Definition: functionspaceinterface.hh:74
FieldVector< FieldMatrix< RangeFieldType, dimDomain, dimDomain >, dimRange > HessianRangeType
Intrinsic type used for the hessian values has a Dune::FieldMatrix type interface.
Definition: functionspaceinterface.hh:78
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
FunctionSpaceType::DomainType DomainType
range type
Definition: basisfunctionset/basisfunctionset.hh:43
FunctionSpaceType::JacobianRangeType JacobianRangeType
jacobian range type
Definition: basisfunctionset/basisfunctionset.hh:47
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
VectorSpaceTraits< DomainField, RangeField, dimD, dimR >::DomainType DomainType
Type of domain vector (using type of domain field) has a Dune::FieldVector type interface.
Definition: functionspaceinterface.hh:66
FunctionSpace< typename Entity::Geometry::ctype, typename Range::value_type, Entity::Geometry::coorddimension, Range::dimension > FunctionSpaceType
function space type
Definition: basisfunctionset/basisfunctionset.hh:40
const ReferenceElementType & referenceElement() const
return reference element
void hessianAll(const Point &x, const DofVector &dofs, HessianRangeType &hessian) const
VectorSpaceTraits< DomainField, RangeField, dimD, dimR >::RangeType RangeType
Type of range vector (using type of range field) has a Dune::FieldVector type interface.
Definition: functionspaceinterface.hh:70
Entity EntityType
entity type
Definition: basisfunctionset/basisfunctionset.hh:35
const EntityType & entity() const
return entity
Definition: basisfunctionset/basisfunctionset.hh:31
FunctionSpaceType::HessianRangeType HessianRangeType
hessian range type
Definition: basisfunctionset/basisfunctionset.hh:49
actual interface class for quadratures
Definition: quadrature.hh:320
std::size_t size() const
return size of basis function set