|
dune-pdelab 2.9
|
Loading...
Searching...
No Matches
interleavedordering.hh
Go to the documentation of this file.
48 Base(Node& node, bool container_blocked, const OrderingTag& ordering_tag, typename BaseT::GFSData* gfs_data)
71 size_type child_block_size = this->_child_block_merge_offsets[child_index + 1] - child_block_offset;
86 size_type child_block_size = this->_child_block_merge_offsets[child_index + 1] - child_block_offset;
109 size_type child_block_size = this->_child_block_merge_offsets[child_index + 1] - child_block_offset;
123 size_type child_block_size = this->_child_block_merge_offsets[child_index + 1] - child_block_offset;
230 PowerInterleavedOrdering(bool container_blocked, const InterleavedOrderingTag& ordering_tag, const typename Node::NodeStorage& children, typename Base::GFSData* gfs_data)
270 static typename result<TC>::type transform(const GFS& gfs, const Transformation& t, const std::array<std::shared_ptr<TC>,TypeTree::StaticDegree<GFS>::value>& children)
272 return typename result<TC>::type(gfs.backend().blocked(gfs),gfs.orderingTag(),children,const_cast<GFS*>(&gfs));
276 static typename result<TC>::storage_type transform_storage(std::shared_ptr<const GFS> gfs, const Transformation& t, const std::array<std::shared_ptr<TC>,TypeTree::StaticDegree<GFS>::value>& children)
278 return std::make_shared<typename result<TC>::type>(gfs->backend().blocked(*gfs),gfs->orderingTag(),children,const_cast<GFS*>(gfs.get()));
323 CompositeInterleavedOrdering(bool backend_blocked, const InterleavedOrderingTag& ordering_tag, typename Base::GFSData* gfs_data, std::shared_ptr<Children>... children)
358 static typename result<TC...>::type transform(const GFS& gfs, const Transformation& t, std::shared_ptr<TC>... children)
360 return typename result<TC...>::type(gfs.backend().blocked(gfs),gfs.orderingTag(),const_cast<GFS*>(&gfs),children...);
364 static typename result<TC...>::storage_type transform_storage(std::shared_ptr<const GFS> gfs, const Transformation& t, std::shared_ptr<TC>... children)
366 return std::make_shared<typename result<TC...>::type>(gfs->backend().blocked(*gfs),gfs.orderingTag(),const_cast<GFS*>(gfs.get()),children...);
void applyToTree(Tree &&tree, Visitor &&visitor)
decltype(Node::degree()) StaticDegree
iterator end()
iterator begin()
static StaticIntegralRange< T, to > range(std::integral_constant< T, to >) noexcept
constexpr void forEach(Range &&range, F &&f)
#define DUNE_THROW(E, m)
PDELab-specific exceptions.
composite_gfs_to_entityblocked_ordering_descriptor< GFS, Transformation > register_composite_gfs_to_ordering_descriptor(GFS *, Transformation *, EntityBlockedOrderingTag *)
power_gfs_to_entityblocked_ordering_descriptor< GFS, Transformation > register_power_gfs_to_ordering_descriptor(GFS *, Transformation *, EntityBlockedOrderingTag *)
For backward compatibility – Do not use this!
T & child(index_constant< i >={})
Error related to the logical structure of an Ordering.
Definition exceptions.hh:46
Indicate interleaved ordering of the unknowns of non-leaf grid function spaces according to a given b...
Definition gridfunctionspace/tags.hh:79
const std::vector< std::size_t > & offsets() const
Returns a list of offsets for the child blocks.
Definition gridfunctionspace/tags.hh:115
Interface for merging index spaces.
Definition interleavedordering.hh:30
static const bool consume_tree_index
Definition interleavedordering.hh:40
Traits::SizeType extract_entity_indices(const typename Traits::DOFIndex::EntityIndex &ei, typename Traits::SizeType child_index, CIOutIterator ci_out, const CIOutIterator ci_end) const
Definition interleavedordering.hh:99
Base(Node &node, bool container_blocked, const OrderingTag &ordering_tag, typename BaseT::GFSData *gfs_data)
Construct ordering object.
Definition interleavedordering.hh:48
void map_lfs_indices(const ItIn begin, const ItIn end, ItOut out) const
Definition interleavedordering.hh:62
InterleavedOrderingTag OrderingTag
Definition interleavedordering.hh:38
Traits::SizeType size() const
Definition orderingbase.hh:61
Traits::SizeType size(typename Traits::ContainerIndex suffix) const
Definition interleavedordering.hh:138
OrderingBase< DI, CI >::Traits Traits
Definition interleavedordering.hh:36
Definition interleavedordering.hh:211
PowerInterleavedOrdering(bool container_blocked, const InterleavedOrderingTag &ordering_tag, const typename Node::NodeStorage &children, typename Base::GFSData *gfs_data)
Construct ordering object.
Definition interleavedordering.hh:230
std::string name() const
Definition interleavedordering.hh:244
Definition interleavedordering.hh:250
static result< TC >::type transform(const GFS &gfs, const Transformation &t, const std::array< std::shared_ptr< TC >, TypeTree::StaticDegree< GFS >::value > &children)
Definition interleavedordering.hh:270
static const bool recursive
Definition interleavedordering.hh:252
static result< TC >::storage_type transform_storage(std::shared_ptr< const GFS > gfs, const Transformation &t, const std::array< std::shared_ptr< TC >, TypeTree::StaticDegree< GFS >::value > &children)
Definition interleavedordering.hh:276
Definition interleavedordering.hh:256
PowerInterleavedOrdering< typename Transformation::DOFIndex, typename Transformation::ContainerIndex, TC, TypeTree::StaticDegree< GFS >::value > type
Definition interleavedordering.hh:263
std::shared_ptr< type > storage_type
Definition interleavedordering.hh:265
Definition interleavedordering.hh:300
void update()
Definition interleavedordering.hh:330
std::string name() const
Definition interleavedordering.hh:328
CompositeInterleavedOrdering(bool backend_blocked, const InterleavedOrderingTag &ordering_tag, typename Base::GFSData *gfs_data, std::shared_ptr< Children >... children)
Construct ordering object.
Definition interleavedordering.hh:323
Definition interleavedordering.hh:339
static result< TC... >::type transform(const GFS &gfs, const Transformation &t, std::shared_ptr< TC >... children)
Definition interleavedordering.hh:358
static result< TC... >::storage_type transform_storage(std::shared_ptr< const GFS > gfs, const Transformation &t, std::shared_ptr< TC >... children)
Definition interleavedordering.hh:364
static const bool recursive
Definition interleavedordering.hh:341
Definition interleavedordering.hh:345
std::shared_ptr< type > storage_type
Definition interleavedordering.hh:353
CompositeInterleavedOrdering< typename Transformation::DOFIndex, typename Transformation::ContainerIndex, TC... > type
Definition interleavedordering.hh:351
Definition orderingbase.hh:21
Dune::PDELab::impl::GridFunctionSpaceOrderingData< typename Traits::SizeType > GFSData
Definition orderingbase.hh:32
std::vector< typename Traits::SizeType > _child_block_merge_offsets
Definition orderingbase.hh:284
bool containerBlocked() const
Definition orderingbase.hh:184
std::vector< typename Traits::SizeType > _child_block_offsets
Definition orderingbase.hh:283
const bool _container_blocked
Definition orderingbase.hh:276
CI ContainerIndex
Definition ordering/utility.hh:176
Definition ordering/utility.hh:205
T back(T... args)
T begin(T... args)
T distance(T... args)
T end(T... args)
T get(T... args)
T max(T... args)
T next(T... args)
T prev(T... args)
T size(T... args)
T upper_bound(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8