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.
shared_ptr< vector< int > > subdomain_id_field_data()
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.
shared_ptr< vector< int > > seq_part_
Sequential partitioning for output.
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.
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_...