|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
space/shapefunctionset/tuple.hh
Go to the documentation of this file.
38 static constexpr std::integer_sequence< int, size< j >() ... > sizes ( std::integer_sequence< int, j ... > )
68 static const std::size_t dimRange = Std::sum( static_cast< int >( ShapeFunctionSets::FunctionSpaceType::dimRange ) ... );
74 typedef typename ToNewDimRangeFunctionSpace< typename SubShapeFunctionSetType< 0 >::FunctionSpaceType, dimRange >::Type FunctionSpaceType;
85 : shapeFunctionSetTuple_( makeGeometryTypeTuple( type, std::index_sequence_for< ShapeFunctionSets ... >() ) )
88 Fem::ForLoop< Offsets, 0, sizeof ... ( ShapeFunctionSets ) -1 >::apply( shapeFunctionSetTuple_, offset_ );
96 Fem::ForLoop< Offsets, 0, sizeof ... ( ShapeFunctionSets ) -1 >::apply( shapeFunctionSetTuple_, offset_ );
99 explicit TupleShapeFunctionSet ( const std::tuple< ShapeFunctionSets... > &shapeFunctionSetTuple )
103 Fem::ForLoop< Offsets, 0, sizeof ... ( ShapeFunctionSets ) -1 >::apply( shapeFunctionSetTuple_, offset_ );
108 std::size_t size () const { return size( std::index_sequence_for< ShapeFunctionSets ... >() ); }
113 Fem::ForLoop< EvaluateEach, 0, sizeof ... ( ShapeFunctionSets ) -1 >::apply( shapeFunctionSetTuple_, offset_, x, functor );
119 Fem::ForLoop< JacobianEach, 0, sizeof ... ( ShapeFunctionSets ) -1 >::apply( shapeFunctionSetTuple_, offset_, x, functor );
125 Fem::ForLoop< HessianEach, 0, sizeof ... ( ShapeFunctionSets ) -1 >::apply( shapeFunctionSetTuple_, offset_, x, functor );
129 const SubShapeFunctionSetType< i > &subShapeFunctionSet ( std::integral_constant< std::size_t, i > = {} ) const
189 static const int rangeOffset = RangeOffsets< ShapeFunctionSets::FunctionSpaceType::dimRange ... >::template offset< I >();
205 MakeVectorialExpression< Dune::FieldVector< K, 1 >, Value > value( rangeOffset, subValue[ 0 ] );
212 MakeVectorialExpression< Dune::FieldMatrix< K, 1, n >, Value > value( rangeOffset, subValue[ 0 ] );
217 void operator() ( const std::size_t i, const MakeVectorialExpression< Scalar, Vectorial > &subValue )
219 MakeVectorialExpression< Scalar, Value > value( subValue.component() + rangeOffset, subValue.scalar() );
static Type apply(T &t)
virtual void operator()()=0
typename Overloads::ScalarType< std::decay_t< V > >::type Scalar
STL namespace.
T field_type
Definition forloop.hh:17
convert functions space to space with new dim range
Definition functionspace.hh:250
interface class representing a family of shape function sets
Definition shapefunctionsets.hh:33
Definition space/shapefunctionset/tuple.hh:26
int order() const
Definition space/shapefunctionset/tuple.hh:106
std::tuple< ShapeFunctionSets... > shapeFunctionSetTuple_
Definition space/shapefunctionset/tuple.hh:160
static std::tuple< decltype(makeGeometryType< I >(std::declval< GeometryType >())) ... > makeGeometryTypeTuple(GeometryType type, std::index_sequence< I ... >)
Definition space/shapefunctionset/tuple.hh:155
TupleShapeFunctionSet(GeometryType type)
Definition space/shapefunctionset/tuple.hh:84
const SubShapeFunctionSetType< i > & subShapeFunctionSet(std::integral_constant< std::size_t, i >={}) const
Definition space/shapefunctionset/tuple.hh:129
FunctionSpaceType::JacobianRangeType JacobianRangeType
Definition space/shapefunctionset/tuple.hh:78
FunctionSpaceType::RangeType RangeType
Definition space/shapefunctionset/tuple.hh:77
TupleShapeFunctionSet()
Definition space/shapefunctionset/tuple.hh:81
Offset offset_
Definition space/shapefunctionset/tuple.hh:161
void evaluateEach(const Point &x, Functor functor) const
Definition space/shapefunctionset/tuple.hh:111
FunctionSpaceType::DomainType DomainType
Definition space/shapefunctionset/tuple.hh:76
static GeometryType makeGeometryType(GeometryType type)
Definition space/shapefunctionset/tuple.hh:148
ToNewDimRangeFunctionSpace< typenameSubShapeFunctionSetType< 0 >::FunctionSpaceType, dimRange >::Type FunctionSpaceType
Definition space/shapefunctionset/tuple.hh:74
TupleShapeFunctionSet(const std::tuple< ShapeFunctionSets... > &shapeFunctionSetTuple)
Definition space/shapefunctionset/tuple.hh:99
std::size_t size() const
Definition space/shapefunctionset/tuple.hh:108
FunctionSpaceType::HessianRangeType HessianRangeType
Definition space/shapefunctionset/tuple.hh:79
void hessianEach(const Point &x, Functor functor) const
Definition space/shapefunctionset/tuple.hh:123
std::tuple_element_t< i, std::tuple< ShapeFunctionSets... > > SubShapeFunctionSetType
Definition space/shapefunctionset/tuple.hh:72
TupleShapeFunctionSet(Args &&... args)
Definition space/shapefunctionset/tuple.hh:92
int order(std::index_sequence< I ... >) const
Definition space/shapefunctionset/tuple.hh:136
std::size_t size(std::index_sequence< I ... >) const
Definition space/shapefunctionset/tuple.hh:142
void jacobianEach(const Point &x, Functor functor) const
Definition space/shapefunctionset/tuple.hh:117
T copy(T... args)
T forward(T... args)
T make_tuple(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8