template<class G>
requires(const G cg, int level, int codim, Dune::GeometryType type)
{
{ G::dimension } -> std::convertible_to<int>;
{ G::dimensionworld } -> std::convertible_to<int>;
requires std::same_as<G,typename G::LeafGridView::Grid>;
requires std::same_as<G,typename G::LevelGridView::Grid>;
typename G::ctype;
typename G::HierarchicIterator;
{ cg.maxLevel() } -> std::convertible_to<int>;
{ cg.size(level, codim) } -> std::convertible_to<int>;
{ cg.size(codim) } -> std::convertible_to<int>;
{ cg.size(level, type) } -> std::convertible_to<int>;
{ cg.size(type) } -> std::convertible_to<int>;
{ cg.numBoundarySegments() } -> std::convertible_to<std::size_t>;
{ cg.levelGridView(level) } -> std::same_as<typename G::LevelGridView>;
{ cg.leafGridView() } -> std::same_as<typename G::LeafGridView>;
{ cg.globalIdSet() } -> std::same_as<const typename G::GlobalIdSet&>;
{ cg.localIdSet() } -> std::same_as<const typename G::LocalIdSet&>;
{ cg.levelIndexSet(level) } -> std::same_as<const typename G::LevelIndexSet&>;
{ cg.leafIndexSet() } -> std::same_as<const typename G::LeafIndexSet&>;
{ cg.comm() } -> std::convertible_to<typename G::Communication>;
requires requires(G g, int refCount, const typename G::template Codim<0>::Entity& entity)
{
{ g.mark(refCount,entity) } -> std::convertible_to<bool>;
{ g.getMark(entity) } -> std::convertible_to<int>;
{ g.preAdapt() } -> std::convertible_to<bool>;
{ g.adapt() } -> std::convertible_to<bool>;
{ g.loadBalance() } -> std::convertible_to<bool>;
g.globalRefine(refCount);
g.postAdapt();
};
} &&
Impl::GridCodim<G,0> &&
requires (index_constant<1> from, index_constant<G::dimension+1> to) {
Impl::gridAllCodims<G>(range(from, to).to_integer_sequence());
}
Requirements for implementations of the Dune::Grid interface.
Definition concepts/grid.hh:98
Model of a grid view.
Definition concepts/gridview.hh:81
Model of an index set.
Definition concepts/indexidset.hh:44
Model of an id set.
Definition concepts/indexidset.hh:83
Model of an intersection.
Definition concepts/intersection.hh:23
Model of an intersection iterator.
Definition concepts/intersectioniterator.hh:21
Requirements for implementations of the Dune::Grid interface.
The Grid
concept defines interface requirements of a parallel, in general nonconforming, locally refined and hierarchical finite element mesh. It consists of sub-concepts for Dune::Concept::GridView
, Dune::Concept::IndexSet
, Dune::Concept::IdSet
, and Dune::Concept::Intersection
.
See Dune::Grid for an "abstract" interface definition of this concept.
- Models:
-