1 #ifndef DUNE_FEM_FUNCTION_LOCALFUNCTION_BINDABLE_HH
2 #define DUNE_FEM_FUNCTION_LOCALFUNCTION_BINDABLE_HH
16 template <
class Gr
idPart,
class Range>
20 typedef typename GridPart::template Codim<0>::EntityType
EntityType;
22 typedef typename EntityType::Geometry
Geometry;
26 typedef typename FunctionSpaceType::RangeType
RangeType;
49 intersection.inside(): intersection.outside() );
53 template <
class Po
int>
60 template <
class Po
int>
63 template <
class Quadrature,
class RangeArray>
66 const unsigned int nop = quadrature.
nop();
68 for(
unsigned int qp=0; qp<nop; ++qp)
70 evaluate( quadrature[ qp ], values[ qp ]);
84 template <
class Gr
idPart,
class Range>
89 typedef typename GridPart::template Codim<0>::EntityType
EntityType;
90 typedef typename EntityType::Geometry::GlobalCoordinate
DomainType;
93 typedef typename FunctionSpaceType::RangeType
RangeType;
107 const std::string &
name()
const
117 const std::string name_;
122 template <
class,
class,
class>
124 : std::false_type {};
125 template <
class GP,
class LF>
126 struct canBind<GP,LF,
127 std::void_t< decltype( std::declval<LF>().
128 bind(std::declval<const typename GP::template Codim<0>::EntityType&>())) >>
130 template <
class GP,
class LF>
131 using canBind_t = canBind<GP,LF,void>;
134 template <
class GP,
class LF>
Definition: bindguard.hh:11
static const Point & coordinate(const Point &x)
Definition: coordinate.hh:14
typename Impl::GridFunctionSpace< GridPart, T >::Type GridFunctionSpace
Definition: functionspace.hh:317
IntersectionSide
Definition: intersectionside.hh:10
constexpr detail::canBind_t< GP, LF > checkGridPartValid()
Definition: bindable.hh:135
base class for determing whether a function has local functions or not
Definition: common/discretefunction.hh:57
Definition: bindable.hh:14
Definition: bindable.hh:18
FunctionSpaceType::JacobianRangeType JacobianRangeType
Definition: bindable.hh:27
GridPart::template Codim< 0 >::EntityType EntityType
Definition: bindable.hh:20
bool continuous() const
Definition: bindable.hh:52
void bind(const IntersectionType &intersection, IntersectionSide side)
Definition: bindable.hh:46
void unbind()
Definition: bindable.hh:40
FunctionSpaceType::RangeFieldType RangeFieldType
Definition: bindable.hh:25
const Geometry & geometry() const
Definition: bindable.hh:76
const GridPart & gridPart() const
Definition: bindable.hh:74
GridPart GridPartType
Definition: bindable.hh:19
FunctionSpaceType::HessianRangeType HessianRangeType
Definition: bindable.hh:28
void bind(const EntityType &entity)
Definition: bindable.hh:32
Dune::Fem::GridFunctionSpace< GridPartType, Range > FunctionSpaceType
Definition: bindable.hh:24
BindableGridFunction(const GridPart &gridPart)
Definition: bindable.hh:29
EntityType::Geometry Geometry
Definition: bindable.hh:22
std::optional< Geometry > geometry_
Definition: bindable.hh:80
GridPart::IntersectionType IntersectionType
Definition: bindable.hh:21
void evaluate(const Point &x, RangeType &ret) const
std::optional< EntityType > entity_
Definition: bindable.hh:79
DomainType global(const Point &x) const
Definition: bindable.hh:54
void evaluate(const Quadrature &quadrature, RangeArray &values) const
Definition: bindable.hh:64
Geometry::GlobalCoordinate DomainType
Definition: bindable.hh:23
FunctionSpaceType::RangeType RangeType
Definition: bindable.hh:26
const EntityType & entity() const
Definition: bindable.hh:75
const GridPart & gridPart_
Definition: bindable.hh:81
Definition: bindable.hh:86
EntityType::Geometry::GlobalCoordinate DomainType
Definition: bindable.hh:90
FunctionSpaceType::HessianRangeType HessianRangeType
Definition: bindable.hh:95
BindableGridFunctionWithSpace(const GridPart &gridPart, const std::string &name, int order)
Definition: bindable.hh:97
const DiscreteFunctionSpaceType & space() const
Definition: bindable.hh:111
FunctionSpaceType::RangeType RangeType
Definition: bindable.hh:93
BindableGridFunction< GridPart, Range > Base
Definition: bindable.hh:87
Dune::Fem::GridFunctionSpace< GridPartType, Range > FunctionSpaceType
Definition: bindable.hh:91
FunctionSpaceType::RangeFieldType RangeFieldType
Definition: bindable.hh:92
DiscreteFunctionSpaceAdapter< FunctionSpaceType, GridPartType > DiscreteFunctionSpaceType
Definition: bindable.hh:96
const std::string & name() const
Definition: bindable.hh:107
GridPart::template Codim< 0 >::EntityType EntityType
Definition: bindable.hh:89
FunctionSpaceType::JacobianRangeType JacobianRangeType
Definition: bindable.hh:94
unsigned int order() const
return the order of the space
Definition: bindable.hh:103
GridPart GridPartType
Definition: bindable.hh:88
int nop() const
obtain the number of integration points
Definition: quadrature.hh:295
actual interface class for quadratures
Definition: quadrature.hh:405
int order() const
get global order of space
Definition: discretefunctionspace.hh:1063