Go to the documentation of this file.
4 #ifndef DUNE_PDELAB_ORDERING_LEAFGRIDVIEWORDERING_HH
5 #define DUNE_PDELAB_ORDERING_LEAFGRIDVIEWORDERING_HH
17 template<
typename LocalOrdering>
22 typedef typename LocalOrdering::Traits
Traits;
26 using ES =
typename Traits::EntitySet;
34 :
BaseT(local_ordering, container_blocked, gfs_data)
35 , _es(this->template child<0>().entitySet())
60 lo.update_a_priori_fixed_size();
62 const std::size_t
dim = ES::dimension;
64 typename ES::CodimMask codims;
66 lo.collect_used_codims(codims);
68 for (
typename ES::dim_type codim = 0; codim <= ES::dimension; ++codim)
69 if (codims.test(codim))
74 typedef typename Traits::SizeType size_type;
75 auto geom_types = _es.indexSet().types();
79 lo.update_fixed_size(geom_types.begin(),geom_types.end());
83 lo.pre_collect_used_geometry_types_from_cell();
85 for (
const auto& element : elements(_es))
87 lo.collect_used_geometry_types_from_cell(element);
90 lo.allocate_entity_offset_vector(geom_types.begin(),geom_types.end());
92 for (
const auto& element : elements(_es))
94 lo.extract_per_entity_sizes_from_cell(element);
98 lo.finalize_non_fixed_size_update();
108 for (
auto gt : geom_types)
111 size_type gt_size = lo.size(gt_index,0);
112 size_type entity_count = _es.indexSet().size(gt);
113 _size += gt_size * entity_count;
115 gt_size = gt_size > 0;
149 typename Traits::EntitySet _es;
153 template<
typename GFS,
typename Transformation>
160 typename GFS::Traits::FiniteElementMap,
161 typename GFS::Traits::EntitySet,
162 typename Transformation::DOFIndex,
163 typename Transformation::ContainerIndex
173 return transformed_type(make_tuple(std::make_shared<LocalOrdering>(gfs.finiteElementMapStorage(),gfs.entitySet())),gfs.backend().blocked(gfs),
const_cast<GFS*
>(&gfs));
178 return std::make_shared<transformed_type>(make_tuple(std::make_shared<LocalOrdering>(gfs->finiteElementMapStorage(),gfs->entitySet())),gfs->backend().blocked(*gfs),
const_cast<GFS*
>(gfs.get()));
184 template<
typename GFS,
typename Transformation,
typename Params>
185 direct_leaf_gfs_to_gridview_ordering_descriptor<GFS,Transformation>
192 #endif // DUNE_PDELAB_ORDERING_LEAFGRIDVIEWORDERING_HH
std::size_t index
Definition: interpolate.hh:97
Gridview ordering for leaf spaces.
Definition: leafgridviewordering.hh:18
Definition: directleaflocalordering.hh:25
static transformed_type transform(const GFS &gfs, const Transformation &t)
Definition: leafgridviewordering.hh:171
Traits::CodimFlag _codim_used
Definition: orderingbase.hh:284
LocalOrdering::Traits Traits
Definition: leafgridviewordering.hh:22
Generic infrastructure for orderings for leaf spaces.
Definition: leaforderingbase.hh:21
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
virtual ~LeafGridViewOrdering() override=default
std::size_t _block_count
Definition: orderingbase.hh:289
bool fixedSize() const
Definition: orderingbase.hh:209
GridViewOrdering transformed_type
Definition: leafgridviewordering.hh:168
std::vector< typename Traits::SizeType > _gt_dof_offsets
Definition: leaforderingbase.hh:281
Definition: leafgridviewordering.hh:154
DirectLeafLocalOrdering< typename GFS::Traits::OrderingTag, typename GFS::Traits::FiniteElementMap, typename GFS::Traits::EntitySet, typename Transformation::DOFIndex, typename Transformation::ContainerIndex > LocalOrdering
Definition: leafgridviewordering.hh:164
bool _fixed_size
Definition: orderingbase.hh:274
LeafGridViewOrdering< LocalOrdering > GridViewOrdering
Definition: leafgridviewordering.hh:166
TypeTree::CompositeNode< LocalOrdering > NodeT
Definition: leaforderingbase.hh:37
static const bool recursive
Definition: leafgridviewordering.hh:157
Traits::CodimFlag _codim_fixed_size
Definition: orderingbase.hh:285
LeafGridViewOrdering(const typename NodeT::NodeStorage &local_ordering, bool container_blocked, typename BaseT::GFSData *gfs_data)
Definition: leafgridviewordering.hh:33
Dune::PDELab::impl::GridFunctionSpaceOrderingData< typename Traits::SizeType > GFSData
Definition: orderingbase.hh:32
std::shared_ptr< transformed_type > transformed_storage_type
Definition: leafgridviewordering.hh:169
LocalOrdering & localOrdering()
Definition: leaforderingbase.hh:44
std::size_t _max_local_size
Definition: orderingbase.hh:287
virtual void update() override
Definition: leafgridviewordering.hh:57
direct_leaf_gfs_to_gridview_ordering_descriptor< GFS, Transformation > register_leaf_gfs_to_ordering_descriptor(GFS *, Transformation *, LeafOrderingTag< Params > *)
static const int dim
Definition: adaptivity.hh:84
const bool _container_blocked
Definition: orderingbase.hh:275
static transformed_storage_type transform_storage(std::shared_ptr< const GFS > gfs, const Transformation &t)
Definition: leafgridviewordering.hh:176
std::size_t _size
Definition: orderingbase.hh:288