1 #ifndef DUNE_FEM_SPACE_BASISFUNCTIONSET_SIMPLE_HH 2 #define DUNE_FEM_SPACE_BASISFUNCTIONSET_SIMPLE_HH 7 #include <dune/geometry/referenceelements.hh> 8 #include <dune/geometry/type.hh> 27 template<
class LocalFunctionSet >
49 typedef Dune::ReferenceElement< typename EntityType::Geometry::ctype, EntityType::Geometry::coorddimension >
ReferenceElementType;
63 : localFunctionSet_( localFunctionSet )
75 return Dune::ReferenceElements< typename EntityType::Geometry::ctype, EntityType::Geometry::coorddimension >::general(
entity().type() );
81 template<
class Quadrature,
class Vector,
class DofVector >
82 void axpy (
const Quadrature &quad,
const Vector &values, DofVector &dofs )
const 84 const unsigned int nop = quad.
nop();
85 for(
unsigned int qp = 0; qp < nop; ++qp )
86 axpy( quad[ qp ], values[ qp ], dofs );
95 template<
class Quadrature,
class VectorA,
class VectorB,
class DofVector >
96 void axpy (
const Quadrature &quad,
const VectorA &valuesA,
const VectorB &valuesB, DofVector &dofs )
const 98 const unsigned int nop = quad.
nop();
99 for(
unsigned int qp = 0; qp < nop; ++qp )
101 axpy( quad[ qp ], valuesA[ qp ], dofs );
102 axpy( quad[ qp ], valuesB[ qp ], dofs );
109 template<
class Po
int,
class DofVector >
110 void axpy (
const Point &x,
const RangeType &valueFactor, DofVector &dofs )
const 119 template<
class Po
int,
class DofVector >
120 void axpy (
const Point &x,
const JacobianRangeType &jacobianFactor, DofVector &dofs )
const 129 template<
class Po
int,
class DofVector >
130 void axpy (
const Point &x,
const RangeType &valueFactor,
131 const JacobianRangeType &jacobianFactor,
132 DofVector &dofs )
const 134 axpy( x, valueFactor, dofs );
135 axpy( x, jacobianFactor, dofs );
141 template<
class Quadrature,
class DofVector,
class RangeArray >
144 const unsigned int nop = quad.
nop();
145 for(
unsigned int qp = 0; qp < nop; ++qp )
146 evaulateAll( quad[ qp ], dofs, ranges[ qp ] );
150 template<
class Po
int,
class DofVector >
151 void evaluateAll (
const Point &x,
const DofVector &dofs, RangeType &value )
const 159 template<
class Po
int,
class RangeArray >
167 template<
class Quadrature,
class DofVector,
class JacobianRangeArray >
170 const unsigned int nop = quad.
nop();
171 for(
unsigned int qp = 0; qp < nop; ++qp )
176 template<
class Po
int,
class DofVector >
177 void jacobianAll (
const Point &x,
const DofVector &dofs, JacobianRangeType &jacobian )
const 185 template<
class Po
int,
class JacobianRangeArray >
186 void jacobianAll (
const Point &x, JacobianRangeArray &jacobians )
const 193 template<
class Po
int,
class DofVector >
194 void hessianAll (
const Point &x,
const DofVector &dofs, HessianRangeType &hessian )
const 196 hessian =
HessianRangeType(
typename HessianRangeType::value_type(
typename RangeType::value_type( 0 ) ) );
202 template<
class Po
int,
class HessianRangeArray >
203 void hessianAll (
const Point &x, HessianRangeArray &hessians )
const 220 LocalFunctionSetType localFunctionSet_;
227 #endif // #ifndef DUNE_FEM_SPACE_BASISFUNCTIONSET_SIMPLE_HH FunctionSpaceType::RangeType RangeType
range type
Definition: basisfunctionset/simple.hh:42
LocalFunctionSet LocalFunctionSetType
Definition: basisfunctionset/simple.hh:33
void jacobianAll(const Point &x, JacobianRangeArray &jacobians) const
please doc me
Definition: basisfunctionset/simple.hh:186
void jacobianEach(const Point &x, Functor functor) const
evalute jacobian of each basis function
const LocalFunctionSetType localFunctionSet() const
return local function set
Definition: basisfunctionset/simple.hh:217
int nop() const
obtain the number of integration points
Definition: quadrature.hh:226
LocalFunctionSetType::EntityType EntityType
entity type
Definition: basisfunctionset/simple.hh:36
A vector valued function space.
Definition: functionspace.hh:16
int order() const
return order of basis functions
void axpy(const Point &x, const RangeType &valueFactor, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
evaluate all basis function and multiply with given values and add to dofs
Definition: basisfunctionset/simple.hh:130
VectorSpaceTraits< DomainField, RangeField, dimD, dimR >::LinearMappingType JacobianRangeType
Intrinsic type used for the jacobian values has a Dune::FieldMatrix type interface.
Definition: functionspaceinterface.hh:74
FunctionSpaceType::HessianRangeType HessianRangeType
hessian range type
Definition: basisfunctionset/simple.hh:46
FieldVector< FieldMatrix< RangeFieldType, dimDomain, dimDomain >, dimRange > HessianRangeType
Intrinsic type used for the hessian values has a Dune::FieldMatrix type interface.
Definition: functionspaceinterface.hh:78
Local basis functions.
Definition: localfunctionset.hh:29
void jacobianAll(const Point &x, const DofVector &dofs, JacobianRangeType &jacobian) const
please doc me
Definition: basisfunctionset/simple.hh:177
const EntityType & entity() const
please doc me
Definition: basisfunctionset/simple.hh:210
void hessianAll(const Point &x, HessianRangeArray &hessians) const
please doc me
Definition: basisfunctionset/simple.hh:203
Definition: space/basisfunctionset/functor.hh:87
void evaluateAll(const Point &x, const DofVector &dofs, RangeType &value) const
please doc me
Definition: basisfunctionset/simple.hh:151
FunctionSpaceType::DomainType DomainType
range type
Definition: basisfunctionset/simple.hh:40
void jacobianAll(const Quadrature &quad, const DofVector &dofs, JacobianRangeArray &jacobians) const
please doc me
Definition: basisfunctionset/simple.hh:168
void axpy(const Quadrature &quad, const Vector &values, DofVector &dofs) const
evaluate all basis function and multiply with given values and add to dofs
Definition: basisfunctionset/simple.hh:82
Definition: misc/functor.hh:30
Definition: coordinate.hh:4
const ReferenceElementType & referenceElement() const
return reference element
Definition: basisfunctionset/simple.hh:73
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
void hessianEach(const Point &x, Functor functor) const
evalute hessian of each basis function
Definition: space/basisfunctionset/functor.hh:111
void axpy(const Quadrature &quad, const VectorA &valuesA, const VectorB &valuesB, DofVector &dofs) const
evaluate all basis function and multiply with given values and add to dofs
Definition: basisfunctionset/simple.hh:96
FunctionSpaceType::JacobianRangeType JacobianRangeType
jacobian range type
Definition: basisfunctionset/simple.hh:44
const EntityType & entity() const
return entity
void evaluateAll(const Point &x, RangeArray &values) const
please doc me
Definition: basisfunctionset/simple.hh:160
std::size_t size() const
return number of basis functions
void axpy(const Point &x, const RangeType &valueFactor, DofVector &dofs) const
evaluate all basis function and multiply with given values and add to dofs
Definition: basisfunctionset/simple.hh:110
Dune::ReferenceElement< typename EntityType::Geometry::ctype, EntityType::Geometry::coorddimension > ReferenceElementType
type of reference element
Definition: basisfunctionset/simple.hh:49
LocalFunctionSetType::FunctionSpaceType FunctionSpaceType
Definition: basisfunctionset/simple.hh:37
void hessianAll(const Point &x, const DofVector &dofs, HessianRangeType &hessian) const
please doc me
Definition: basisfunctionset/simple.hh:194
int order() const
return order of basis function set
Definition: basisfunctionset/simple.hh:67
SimpleBasisFunctionSet(const LocalFunctionSetType &localFunctionSet)
constructor
Definition: basisfunctionset/simple.hh:62
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
void evaluateAll(const Quadrature &quad, const DofVector &dofs, RangeArray &ranges) const
evaluate all basis functions and store the result in the ranges array
Definition: basisfunctionset/simple.hh:142
Entity EntityType
entity type
Definition: localfunctionset.hh:32
Please doc me.
Definition: basisfunctionset/simple.hh:28
void evaluateEach(const Point &x, Functor functor) const
evalute each basis function
SimpleBasisFunctionSet()
Definition: basisfunctionset/simple.hh:56
void axpy(const Point &x, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
evaluate all basis function and multiply with given values and add to dofs
Definition: basisfunctionset/simple.hh:120
actual interface class for quadratures
Definition: quadrature.hh:320
std::size_t size() const
return size of basis function set
Definition: basisfunctionset/simple.hh:70