8 #ifndef PARTITIONING_HH_
9 #define PARTITIONING_HH_
59 void id_maps(
int n_ids,
int *id_4_old,
60 Distribution * &new_ds,
int * &id_4_loc,
int * &new_4_id);
63 static void id_maps(
int n_ids,
int *id_4_old,
65 Distribution * &new_ds,
int * &id_4_loc,
int * &new_4_id);
Class for the mesh partitioning. This should provide:
Mesh * mesh_
The input mesh.
~Partitioning()
Destructor.
void id_maps(int n_ids, int *id_4_old, Distribution *&new_ds, int *&id_4_loc, int *&new_4_id)
void make_element_connection_graph()
Add edge for any pair of neighboring elements.
Use PETSc interface to various partitioing tools.
Input::Record in_
Input Record accessor.
static Input::Type::Record input_type
static Input::Type::Selection tool_sel
Virtual class for construction and partitioning of a distributed sparse graph.
Use direct interface to Metis.
static Input::Type::Selection graph_type_sel
Input specification objects.
Distribution * init_el_ds_
Original distribution of elements. Depends on type of partitioner.
vector< int > & seq_output_partition()
vector< int > seq_part_
Sequential partitioning for output.
Same as before and assign higher weight to cuts of lower dimension in order to make them stick to one...
const Distribution * get_init_distr() const
const int * get_loc_part() const
SparseGraph * graph_
Graph used to partitioning the mesh.
Add edge for any pair of neighboring elements of same dimension (bad for matrix multiply) ...
Partitioning(Mesh *mesh, Input::Record in)
int * loc_part_
Partition numbers for local elements in original distribution of elements given be init_el_ds_...