10#if defined(FEAT_HAVE_ZOLTAN) || defined(DOXYGEN) 
   11#include <kernel/util/dist.hpp> 
   12#include <kernel/adjacency/graph.hpp> 
   13#include <kernel/adjacency/coloring.hpp> 
   14#include <kernel/geometry/conformal_mesh.hpp> 
  119        return execute(graph, num_parts, weights);
 
Coloring object implementation.
Graph create_partition_graph() const
Creates a color partition graph.
Adjacency Graph implementation.
int size() const
Returns the size of this communicator.
Conformal Index-Set class template.
internal data class to be used by callback functions
Adjacency::Graph sub_graph
the sub-graph for this process
std::vector< float > weights
the weights for the elements of this sub-graph
Index first_elem
the first element of this process
Zoltan hypergraph partitioner backend.
Index _min_elems
minimum number of elements per MPI process
void * _zz
zoltan internal data
bool _apply_zoltan()
auxiliary function: applies Zoltan onto the hypergraph
bool execute(const Adjacency::Graph &faces_at_elem, const Index num_parts, const std::vector< Real > &weights)
Executes the Zoltan partitioner.
Index _num_elems
the total number of elements
Hypergraph _hypergraph
our hypergraph structure
int _max_procs
maximum number of MPI processes to use
int get_sub_comm_size() const
Returns the size of the internal sub-communicator.
bool _broadcast_coloring(bool zoltan_ok)
auxiliary function: broadcasts the coloring from the root process
bool execute(const IndexSet< n_ > &faces_at_elem, const Index num_parts, const std::vector< Real > &weights)
Executes the Zoltan partitioner.
void _create_hypergraph(const Adjacency::Graph &faces_at_elem, const std::vector< Real > &weights)
auxiliary function: builds a hypergraph from the adjacency graph
const Dist::Comm & _comm
our main communicator
bool _gather_coloring(const int num_export, const int *export_parts)
auxiliary function: gathers the partitioned coloring onto the root process
Adjacency::Coloring _coloring
the element coloring
Dist::Comm _zoltan_comm
a sub-communicator for the partitioner
Adjacency::Graph build_elems_at_rank() const
Builds and returns the elements-at-rank graph representing the partitioning.
Index _num_parts
the desired number of partitions
PartiZoltan(const Dist::Comm &comm, Index min_elems=1000u, int max_procs=1000)
Constructor.
virtual ~PartiZoltan()
virtual destructor
@ as_is
Render-As-Is mode.
std::uint64_t Index
Index data type.