|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
space/discontinuousgalerkin/tuple.hh
Go to the documentation of this file.
51 using SubRangeType = typename ShapeFunctionSetType::template SubShapeFunctionSetType< i >::RangeType;
65 FieldVector< T, SubRangeType< i >::dimension > operator() ( const FieldVector< T, dimRange > &in ) const
74 FieldMatrix< T, SubRangeType< i >::dimension, cols > operator() ( const FieldMatrix< T, dimRange, cols > &in ) const
97 std::get< i >( interpolations_ ) ( localFunctionConverter( lf, RangeConverter< i >() ), subLdv );
119 static_assert( sizeof...( DFS ) > 0, "TupleDiscontinuousGalerkinSpace requires at least on space." );
121 static_assert( Std::are_all_same< typename DFS::GridPartType... >::value, "TupleDiscontinuousGalerkinSpace only works on spaces with identical GridPart." );
133 static_assert( Std::And( IsDefaultBasisFunctionSet< typename DFS::BasisFunctionSetType >::value... ), "TupleDiscontinuousGalerkinSpace only works on spaces with DefaultBasisFunctionSets." );
141 typedef TupleShapeFunctionSet< typename DFS::BasisFunctionSetType::ShapeFunctionSetType... > ShapeFunctionSetType;
143 static const int codimension = GridPartType::dimension - ShapeFunctionSetType::DomainType::dimension;
148 TupleDiscontinuousGalerkinSpaceBasisFunctionSets ( GridPartType &gridPart, InterfaceType commInterface, CommunicationDirection commDirection )
153 int order ( const EntityType &entity ) const { return order( entity, std::index_sequence_for< DFS... >() ); }
155 BasisFunctionSetType basisFunctionSet ( const EntityType &entity ) const { return BasisFunctionSetType( entity, shapeFunctionSet( entity ) ); }
156 ShapeFunctionSetType shapeFunctionSet ( const EntityType &entity ) const { return shapeFunctionSet( entity, std::index_sequence_for< DFS... >() ); }
159 const SubDiscreteFunctionSpaceType< i > &subDiscreteFunctionSpace ( std::integral_constant< std::size_t, i > = {} ) const
166 static auto shapeFunctionSet ( const DefaultBasisFunctionSets< GridPartType, SFS > &basisFunctionSets, const EntityType &entity )
190 ShapeFunctionSetType shapeFunctionSet ( const EntityType &entity, std::index_sequence< i... > ) const
192 return ShapeFunctionSetType( shapeFunctionSet( subDiscreteFunctionSpace< i >().basisFunctionSets(), entity )... );
242 typedef GenericDiscontinuousGalerkinSpace< TupleDiscontinuousGalerkinSpaceTraits< DFS... > > BaseType;
253 using SubDiscreteFunctionSpaceType = typename BasisFunctionSetsType::template SubDiscreteFunctionSpaceType< i >;
255 typedef TupleLocalInterpolation< typename BasisFunctionSetsType::ShapeFunctionSetType, typename DFS::InterpolationImplType... > InterpolationImplType;
260 TupleDiscontinuousGalerkinSpace ( GridPartType &gridPart, InterfaceType commInterface = InteriorBorder_All_Interface, CommunicationDirection commDirection = ForwardCommunication )
261 : BaseType( gridPart, BasisFunctionSetsType( gridPart, commInterface, commDirection ), commInterface, commDirection )
267 InterpolationImplType interpolation ( const EntityType &entity ) const { return localInterpolation( entity ); }
269 InterpolationImplType localInterpolation ( const EntityType &entity ) const { return localInterpolation( entity, std::index_sequence_for< DFS... >() ); }
272 const SubDiscreteFunctionSpaceType< i > &subDiscreteFunctionSpace ( std::integral_constant< std::size_t, i > = {} ) const
274 return basisFunctionSets().subDiscreteFunctionSpace( std::integral_constant< std::size_t, i >() );
279 InterpolationImplType localInterpolation ( const EntityType &entity, std::index_sequence< i... > ) const
281 return InterpolationImplType( basisFunctionSets().shapeFunctionSet( entity ), subDiscreteFunctionSpace< i >().localInterpolation( entity )... );
291 struct DifferentDiscreteFunctionSpace< TupleDiscontinuousGalerkinSpace< DFS... >, NewFunctionSpace >
293 static_assert( NewFunctionSpace::dimRange % TupleDiscontinuousGalerkinSpace< DFS... >::dimRange == 0,
294 "DifferentDiscreteFunctionSpace can only be applied to TupleDiscontinuousGalerkinSpace, if new dimRange is a multiple of the original one." );
297 static const int factor = (NewFunctionSpace::dimRange / TupleDiscontinuousGalerkinSpace< DFS... >::dimRange);
300 using NewSubFunctionSpace = typename ToNewDimRangeFunctionSpace< NewFunctionSpace, factor*dimRange >::Type;
327 static std::tuple< const DFS &... > subDiscreteFunctionSpaces ( const DiscreteFunctionSpaceType &space, std::index_sequence< i... > )
329 return std::tie( space.subDiscreteFunctionSpace( std::integral_constant< std::size_t, i >() )... );
int size() const
constexpr void forEach(Range &&range, F &&f)
virtual void operator()()=0
CommunicationDirection
InterfaceType
ForwardCommunication
InteriorBorder_All_Interface
STL namespace.
LocalFunctionConverter< HostLocalFunction, Converter, __InstationaryFunction::HoldCopy > localFunctionConverter(const HostLocalFunction hostLocalFunction, const Converter &converter=Converter())
Definition converter.hh:202
Definition hybrid.hh:99
Definition utility.hh:147
Definition space/basisfunctionset/default.hh:124
ToNewDimDomainFunctionSpace< LocalFunctionSpaceType, Geometry::coorddimension >::Type FunctionSpaceType
type of function space
Definition space/basisfunctionset/default.hh:155
Definition tuplelocalrestrictprolong.hh:31
Default communication handler for discrete functions.
Definition defaultcommhandler.hh:38
Definition discretefunctionspace.hh:134
GridPartType & gridPart() const
Definition discretefunctionspace.hh:766
convert functions space to space with new dim range
Definition functionspace.hh:250
Definition common/localinterpolation.hh:75
Definition common/localrestrictprolong.hh:16
generate a set of default basis function sets from given set of shape function sets
Definition discontinuousgalerkin/basisfunctionsets.hh:83
const ShapeFunctionSetsType & shapeFunctionSets() const
Definition discontinuousgalerkin/basisfunctionsets.hh:153
generic implementation of a Discontinuous Galerkin space based on a fixed family of basis function se...
Definition discontinuousgalerkin/generic.hh:31
BaseType::GridPartType GridPartType
type of underlying grid part
Definition discontinuousgalerkin/generic.hh:40
const BasisFunctionSetsType & basisFunctionSets() const
Definition discontinuousgalerkin/generic.hh:128
BaseType::EntityType EntityType
type of entity of codimension 0
Definition discontinuousgalerkin/generic.hh:42
BaseType::BasisFunctionSetType BasisFunctionSetType
type of basis function set of this space
Definition discontinuousgalerkin/generic.hh:49
Traits::BasisFunctionSetsType BasisFunctionSetsType
basis function sets
Definition discontinuousgalerkin/generic.hh:47
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition space/discontinuousgalerkin/tuple.hh:240
TupleLocalInterpolation< typename BasisFunctionSetsType::ShapeFunctionSetType, typename DFS::InterpolationImplType... > InterpolationImplType
Definition space/discontinuousgalerkin/tuple.hh:255
BaseType::BasisFunctionSetType BasisFunctionSetType
Definition space/discontinuousgalerkin/tuple.hh:247
LocalInterpolationWrapper< ThisType > InterpolationType
Definition space/discontinuousgalerkin/tuple.hh:256
BaseType::GridPartType GridPartType
Definition space/discontinuousgalerkin/tuple.hh:250
typename BasisFunctionSetsType::template SubDiscreteFunctionSpaceType< i > SubDiscreteFunctionSpaceType
Definition space/discontinuousgalerkin/tuple.hh:253
BaseType::EntityType EntityType
Definition space/discontinuousgalerkin/tuple.hh:249
InterpolationImplType localInterpolation(const EntityType &entity) const
Definition space/discontinuousgalerkin/tuple.hh:269
InterpolationType interpolation() const
Definition space/discontinuousgalerkin/tuple.hh:264
const SubDiscreteFunctionSpaceType< i > & subDiscreteFunctionSpace(std::integral_constant< std::size_t, i >={}) const
Definition space/discontinuousgalerkin/tuple.hh:272
BaseType::BasisFunctionSetsType BasisFunctionSetsType
Definition space/discontinuousgalerkin/tuple.hh:248
TupleDiscontinuousGalerkinSpace(GridPartType &gridPart, InterfaceType commInterface=InteriorBorder_All_Interface, CommunicationDirection commDirection=ForwardCommunication)
Definition space/discontinuousgalerkin/tuple.hh:260
InterpolationImplType interpolation(const EntityType &entity) const
Definition space/discontinuousgalerkin/tuple.hh:267
TupleDiscontinuousGalerkinSpaceTraits< DFS... > Traits
Definition space/discontinuousgalerkin/tuple.hh:245
Definition space/discontinuousgalerkin/tuple.hh:41
ShapeFunctionSetType shapeFunctionSet_
Definition space/discontinuousgalerkin/tuple.hh:105
std::tuple< I... > interpolations_
Definition space/discontinuousgalerkin/tuple.hh:106
void unbind()
Definition space/discontinuousgalerkin/tuple.hh:102
TupleLocalInterpolation(ShapeFunctionSetType shapeFunctionSet, Args &&... args)
Definition space/discontinuousgalerkin/tuple.hh:85
SFS ShapeFunctionSetType
Definition space/discontinuousgalerkin/tuple.hh:45
static const int dimRange
Definition space/discontinuousgalerkin/tuple.hh:47
Definition space/discontinuousgalerkin/tuple.hh:116
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
Definition space/discontinuousgalerkin/tuple.hh:155
int order(const EntityType &entity) const
Definition space/discontinuousgalerkin/tuple.hh:153
const SubDiscreteFunctionSpaceType< i > & subDiscreteFunctionSpace(std::integral_constant< std::size_t, i >={}) const
Definition space/discontinuousgalerkin/tuple.hh:159
TupleShapeFunctionSet< typename DFS::BasisFunctionSetType::ShapeFunctionSetType... > ShapeFunctionSetType
Definition space/discontinuousgalerkin/tuple.hh:141
GridPartType::template Codim< codimension >::EntityType EntityType
Definition space/discontinuousgalerkin/tuple.hh:144
TupleDiscontinuousGalerkinSpaceBasisFunctionSets(GridPartType &gridPart, InterfaceType commInterface, CommunicationDirection commDirection)
Definition space/discontinuousgalerkin/tuple.hh:148
std::tuple_element_t< i, std::tuple< DFS... > > SubDiscreteFunctionSpaceType
Definition space/discontinuousgalerkin/tuple.hh:137
static auto shapeFunctionSet(const BFS &basisFunctionSets, const EntityType &entity)
Definition space/discontinuousgalerkin/tuple.hh:172
int order(std::index_sequence< i... >) const
Definition space/discontinuousgalerkin/tuple.hh:178
ShapeFunctionSetType shapeFunctionSet(const EntityType &entity, std::index_sequence< i... >) const
Definition space/discontinuousgalerkin/tuple.hh:190
int order() const
Definition space/discontinuousgalerkin/tuple.hh:152
static const int codimension
Definition space/discontinuousgalerkin/tuple.hh:143
ShapeFunctionSetType shapeFunctionSet(const EntityType &entity) const
Definition space/discontinuousgalerkin/tuple.hh:156
DefaultBasisFunctionSet< EntityType, ShapeFunctionSetType > BasisFunctionSetType
Definition space/discontinuousgalerkin/tuple.hh:146
static auto shapeFunctionSet(const DefaultBasisFunctionSets< GridPartType, SFS > &basisFunctionSets, const EntityType &entity)
Definition space/discontinuousgalerkin/tuple.hh:166
SubDiscreteFunctionSpaceType< 0 >::GridPartType GridPartType
Definition space/discontinuousgalerkin/tuple.hh:139
int order(const EntityType &entity, std::index_sequence< i... >) const
Definition space/discontinuousgalerkin/tuple.hh:184
Definition space/discontinuousgalerkin/tuple.hh:206
BasisFunctionSetsType::BasisFunctionSetType BasisFunctionSetType
Definition space/discontinuousgalerkin/tuple.hh:212
BasisFunctionSetType::FunctionSpaceType FunctionSpaceType
Definition space/discontinuousgalerkin/tuple.hh:214
TupleDiscontinuousGalerkinSpaceBasisFunctionSets< DFS... > BasisFunctionSetsType
Definition space/discontinuousgalerkin/tuple.hh:209
Hybrid::CompositeIndexRange< typename DFS::LocalBlockIndices... > LocalBlockIndices
Definition space/discontinuousgalerkin/tuple.hh:218
static const int codimension
Definition space/discontinuousgalerkin/tuple.hh:216
CodimensionMapper< GridPartType, codimension > BlockMapperType
Definition space/discontinuousgalerkin/tuple.hh:222
BasisFunctionSetsType::GridPartType GridPartType
Definition space/discontinuousgalerkin/tuple.hh:211
TupleDiscontinuousGalerkinSpace< DFS... > DiscreteFunctionSpaceType
Definition space/discontinuousgalerkin/tuple.hh:207
static const int polynomialOrder
Definition space/discontinuousgalerkin/tuple.hh:220
Definition space/discontinuousgalerkin/tuple.hh:226
DefaultCommunicationHandler< DiscreteFunction, Operation > Type
Definition space/discontinuousgalerkin/tuple.hh:228
Operation OperationType
Definition space/discontinuousgalerkin/tuple.hh:227
TupleDiscontinuousGalerkinSpace< typename DifferentDiscreteFunctionSpace< DFS, NewSubFunctionSpace< DFS::dimRange > >::Type... > Type
Definition space/discontinuousgalerkin/tuple.hh:303
Definition space/discontinuousgalerkin/tuple.hh:314
DefaultLocalRestrictProlong(const DiscreteFunctionSpaceType &space)
Definition space/discontinuousgalerkin/tuple.hh:321
TupleDiscontinuousGalerkinSpace< DFS... > DiscreteFunctionSpaceType
Definition space/discontinuousgalerkin/tuple.hh:319
mapper allocating one DoF per subentity of a given codimension
Definition codimensionmapper.hh:357
Definition space/shapefunctionset/tuple.hh:26
An implementation of DenseVector to extract a portion, not necessarly contiguos, of a vector.
Definition subvector.hh:161
Index mapper which simply adds an offset to the index.
Definition subvector.hh:83
T forward(T... args)
T tie(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8