8#include <kernel/adjacency/graph.hpp> 
    9#include <kernel/geometry/conformal_mesh.hpp> 
   10#include <kernel/geometry/intern/standard_refinement_traits.hpp> 
   20      template<
typename Shape_>
 
   21      struct Parti2LvlHelper
 
   23        static constexpr Index factor = StandardRefinementTraits<Shape_, Shape_::dimension>::count;
 
   28      struct Parti2LvlHelper<Shape::Hypercube<dim_>>
 
   37    template<
typename Mesh_>
 
   67    template<
typename Shape_, 
int num_coords_, 
typename Coord_>
 
   97        _num_elems(mesh.get_num_elements()),
 
   98        _num_ranks(num_ranks),
 
  105        const Index factor = Intern::Parti2LvlHelper<Shape_>::factor;
 
  106        const Index lvlinc = Intern::Parti2LvlHelper<Shape_>::lvlinc;
 
  107        Index count(_num_elems);
 
  110        while(count < _num_ranks)
 
  116        if(count != _num_ranks)
 
  125        _ref_lvl = (power + lvlinc - 
Index(1)) / lvlinc;
 
  128        const Index ref_fac(Intern::StandardRefinementTraits<Shape_, Shape_::dimension>::count);
 
  129        _ref_elems = _num_elems;
 
  130        for(
Index i(0); i < _ref_lvl; ++i)
 
  131          _ref_elems *= ref_fac;
 
  166        const Index elems_per_rank = _ref_elems / _num_ranks;
 
  167        for(
Index i(0); i <= _num_ranks; ++i)
 
  168          ptr[i] = elems_per_rank * i;
 
  171        for(
Index i(0); i < _ref_elems; ++i)
 
#define XASSERT(expr)
Assertion macro definition.
Adjacency Graph implementation.
Index * get_domain_ptr()
Returns the domain pointer array.
Index * get_image_idx()
Returns the image node index array.
2-Level-Partitioner class template declaration
std::uint64_t Index
Index data type.