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;
42 std::cout <<
"wrong thread number\n";
48 std::cout <<
"BindableGF: bind called on object before unbind was called\n";
64 std::cout <<
"wrong thread number\n";
76 intersection.inside(): intersection.outside() );
80 template <
class Po
int>
87 template <
class Po
int>
90 template <
class Quadrature,
class RangeArray>
93 const unsigned int nop = quadrature.
nop();
95 for(
unsigned int qp=0; qp<nop; ++qp)
97 evaluate( quadrature[ qp ], values[ qp ]);
114 template <
class Gr
idPart,
class Range>
119 typedef typename GridPart::template Codim<0>::EntityType
EntityType;
120 typedef typename EntityType::Geometry::GlobalCoordinate
DomainType;
123 typedef typename FunctionSpaceType::RangeType
RangeType;
137 const std::string &
name()
const
147 const std::string name_;
152 template <
class,
class,
class>
154 : std::false_type {};
155 template <
class GP,
class LF>
156 struct canBind<GP,LF,
157 std::void_t< decltype( std::declval<LF>().
158 bind(std::declval<const typename GP::template Codim<0>::EntityType&>())) >>
160 template <
class GP,
class LF>
161 using canBind_t = canBind<GP,LF,void>;
164 template <
class GP,
class LF>
Definition: bindguard.hh:11
constexpr detail::canBind_t< GP, LF > checkGridPartValid()
Definition: bindable.hh:165
typename Impl::GridFunctionSpace< GridPart, T >::Type GridFunctionSpace
Definition: functionspace.hh:317
static const Point & coordinate(const Point &x)
Definition: coordinate.hh:14
IntersectionSide
Definition: intersectionside.hh:10
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:79
void bind(const IntersectionType &intersection, IntersectionSide side)
Definition: bindable.hh:73
void unbind()
Definition: bindable.hh:59
FunctionSpaceType::RangeFieldType RangeFieldType
Definition: bindable.hh:25
const EntityType & entity() const
Definition: bindable.hh:102
const GridPart & gridPart() const
Definition: bindable.hh:101
GridPart GridPartType
Definition: bindable.hh:19
FunctionSpaceType::HessianRangeType HessianRangeType
Definition: bindable.hh:28
void bind(const EntityType &entity)
Definition: bindable.hh:36
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:107
GridPart::IntersectionType IntersectionType
Definition: bindable.hh:21
void evaluate(const Point &x, RangeType &ret) const
std::optional< EntityType > entity_
Definition: bindable.hh:106
DomainType global(const Point &x) const
Definition: bindable.hh:81
void evaluate(const Quadrature &quadrature, RangeArray &values) const
Definition: bindable.hh:91
Geometry::GlobalCoordinate DomainType
Definition: bindable.hh:23
FunctionSpaceType::RangeType RangeType
Definition: bindable.hh:26
const Geometry & geometry() const
Definition: bindable.hh:103
const GridPart & gridPart_
Definition: bindable.hh:108
Definition: bindable.hh:116
EntityType::Geometry::GlobalCoordinate DomainType
Definition: bindable.hh:120
const DiscreteFunctionSpaceType & space() const
Definition: bindable.hh:141
FunctionSpaceType::HessianRangeType HessianRangeType
Definition: bindable.hh:125
BindableGridFunctionWithSpace(const GridPart &gridPart, const std::string &name, int order)
Definition: bindable.hh:127
FunctionSpaceType::RangeType RangeType
Definition: bindable.hh:123
BindableGridFunction< GridPart, Range > Base
Definition: bindable.hh:117
Dune::Fem::GridFunctionSpace< GridPartType, Range > FunctionSpaceType
Definition: bindable.hh:121
FunctionSpaceType::RangeFieldType RangeFieldType
Definition: bindable.hh:122
DiscreteFunctionSpaceAdapter< FunctionSpaceType, GridPartType > DiscreteFunctionSpaceType
Definition: bindable.hh:126
GridPart::template Codim< 0 >::EntityType EntityType
Definition: bindable.hh:119
FunctionSpaceType::JacobianRangeType JacobianRangeType
Definition: bindable.hh:124
const std::string & name() const
Definition: bindable.hh:137
unsigned int order() const
return the order of the space
Definition: bindable.hh:133
GridPart GridPartType
Definition: bindable.hh:118
static int thread()
return thread number
Definition: mpimanager.hh:424
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