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>
30 template<
class LocalFunctionSet >
81 return Dune::referenceElement< typename EntityType::Geometry::ctype, EntityType::Geometry::coorddimension >(
entity().type() );
87 template<
class Quadrature,
class Vector,
class DofVector >
90 const unsigned int nop = quad.
nop();
91 for(
unsigned int qp = 0; qp < nop; ++qp )
92 axpy( quad[ qp ], values[ qp ],
dofs );
101 template<
class Quadrature,
class VectorA,
class VectorB,
class DofVector >
102 void axpy (
const Quadrature &quad,
const VectorA &valuesA,
const VectorB &valuesB, DofVector &
dofs )
const
104 const unsigned int nop = quad.
nop();
105 for(
unsigned int qp = 0; qp < nop; ++qp )
107 axpy( quad[ qp ], valuesA[ qp ],
dofs );
108 axpy( quad[ qp ], valuesB[ qp ],
dofs );
115 template<
class Po
int,
class DofVector >
125 template<
class Po
int,
class DofVector >
133 template<
class Po
int,
class DofVector >
143 template<
class Po
int,
class DofVector >
146 DofVector &
dofs )
const
155 template<
class Quadrature,
class DofVector,
class RangeArray >
158 const unsigned int nop = quad.
nop();
159 for(
unsigned int qp = 0; qp < nop; ++qp )
164 template<
class Po
int,
class DofVector >
173 template<
class Po
int,
class RangeArray >
181 template<
class Quadrature,
class DofVector,
class JacobianRangeArray >
184 const unsigned int nop = quad.
nop();
185 for(
unsigned int qp = 0; qp < nop; ++qp )
190 template<
class Po
int,
class DofVector >
199 template<
class Po
int,
class JacobianRangeArray >
200 void jacobianAll (
const Point &x, JacobianRangeArray &jacobians )
const
207 template<
class Po
int,
class DofVector >
210 hessian =
HessianRangeType(
typename HessianRangeType::value_type(
typename RangeType::value_type( 0 ) ) );
216 template<
class Po
int,
class HessianRangeArray >
217 void hessianAll (
const Point &x, HessianRangeArray &hessians )
const
Definition: bindguard.hh:11
IteratorRange< typename DF::DofIteratorType > dofs(DF &df)
Iterates over all DOFs.
Definition: rangegenerators.hh:76
Definition: explicitfieldvector.hh:75
Local basis functions.
Definition: localfunctionset.hh:28
Entity EntityType
entity type
Definition: localfunctionset.hh:30
const EntityType & entity() const
return entity
void jacobianEach(const Point &x, Functor functor) const
void evaluateEach(const Point &x, Functor functor) const
void hessianEach(const Point &x, Functor functor) const
int order() const
return order of basis functions
std::size_t size() const
return number of basis functions
Definition: misc/functor.hh:31
int nop() const
obtain the number of integration points
Definition: quadrature.hh:295
actual interface class for quadratures
Definition: quadrature.hh:405
Definition: space/basisfunctionset/functor.hh:108
Definition: space/basisfunctionset/functor.hh:132
This class is a simple basis function set which is needed for global basis functions sets (Fourier sp...
Definition: space/basisfunctionset/simple.hh:32
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: space/basisfunctionset/simple.hh:88
void jacobianAll(const Point &x, JacobianRangeArray &jacobians) const
please doc me
Definition: space/basisfunctionset/simple.hh:200
FunctionSpaceType::HessianRangeType HessianRangeType
hessian range type
Definition: space/basisfunctionset/simple.hh:49
FunctionSpaceType::JacobianRangeType JacobianRangeType
jacobian range type
Definition: space/basisfunctionset/simple.hh:47
void jacobianAll(const Point &x, const DofVector &dofs, JacobianRangeType &jacobian) const
please doc me
Definition: space/basisfunctionset/simple.hh:191
void hessianAll(const Point &x, const DofVector &dofs, HessianRangeType &hessian) const
please doc me
Definition: space/basisfunctionset/simple.hh:208
SimpleBasisFunctionSet()
Definition: space/basisfunctionset/simple.hh:62
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: space/basisfunctionset/simple.hh:144
const LocalFunctionSetType localFunctionSet() const
return local function set
Definition: space/basisfunctionset/simple.hh:231
void jacobianAll(const Quadrature &quad, const DofVector &dofs, JacobianRangeArray &jacobians) const
please doc me
Definition: space/basisfunctionset/simple.hh:182
FunctionSpaceType::RangeType RangeType
range type
Definition: space/basisfunctionset/simple.hh:45
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: space/basisfunctionset/simple.hh:126
LocalFunctionSetType::FunctionSpaceType FunctionSpaceType
Definition: space/basisfunctionset/simple.hh:40
const EntityType & entity() const
please doc me
Definition: space/basisfunctionset/simple.hh:224
FunctionSpaceType::DomainFieldType DomainFieldType
Definition: space/basisfunctionset/simple.hh:52
void evaluateAll(const Point &x, const DofVector &dofs, RangeType &value) const
please doc me
Definition: space/basisfunctionset/simple.hh:165
void hessianAll(const Point &x, HessianRangeArray &hessians) const
please doc me
Definition: space/basisfunctionset/simple.hh:217
std::size_t size() const
return size of basis function set
Definition: space/basisfunctionset/simple.hh:76
LocalFunctionSetType::EntityType EntityType
entity type
Definition: space/basisfunctionset/simple.hh:39
void evaluateAll(const Quadrature &quad, const DofVector &dofs, RangeArray &ranges) const
evaluate all basis functions and store the result in the ranges array
Definition: space/basisfunctionset/simple.hh:156
Dune::ReferenceElement< typename EntityType::Geometry > ReferenceElementType
type of reference element
Definition: space/basisfunctionset/simple.hh:55
void axpy(const Point &x, const HessianRangeType &hessianFactor, DofVector &dofs) const
Add H:D^2phi to each dof.
Definition: space/basisfunctionset/simple.hh:134
decltype(auto) referenceElement() const
return reference element
Definition: space/basisfunctionset/simple.hh:79
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: space/basisfunctionset/simple.hh:102
SimpleBasisFunctionSet(const LocalFunctionSetType &localFunctionSet)
constructor
Definition: space/basisfunctionset/simple.hh:68
FunctionSpaceType::DomainType DomainType
range type
Definition: space/basisfunctionset/simple.hh:43
LocalFunctionSet LocalFunctionSetType
Definition: space/basisfunctionset/simple.hh:36
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: space/basisfunctionset/simple.hh:116
void evaluateAll(const Point &x, RangeArray &values) const
please doc me
Definition: space/basisfunctionset/simple.hh:174
FunctionSpaceType::RangeFieldType RangeFieldType
Definition: space/basisfunctionset/simple.hh:51
int order() const
return order of basis function set
Definition: space/basisfunctionset/simple.hh:73
A vector valued function space.
Definition: functionspace.hh:60
FunctionSpaceTraits::DomainFieldType DomainFieldType
Intrinsic type used for values in the domain field (usually a double)
Definition: functionspaceinterface.hh:60
FunctionSpaceTraits::RangeType RangeType
Type of range vector (using type of range field) has a Dune::FieldVector type interface.
Definition: functionspaceinterface.hh:71
FunctionSpaceTraits::LinearMappingType JacobianRangeType
Intrinsic type used for the jacobian values has a Dune::FieldMatrix type interface.
Definition: functionspaceinterface.hh:75
FunctionSpaceTraits::DomainType DomainType
Type of domain vector (using type of domain field) has a Dune::FieldVector type interface.
Definition: functionspaceinterface.hh:67
FunctionSpaceTraits::RangeFieldType RangeFieldType
Intrinsic type used for values in the range field (usually a double)
Definition: functionspaceinterface.hh:63