18 #ifndef PARTITIONING_HH_ 19 #define PARTITIONING_HH_ 21 #include <boost/exception/info.hpp> 64 <<
"Number of processors " << EI_NProcs::val <<
" greater then number of elements " 65 << EI_NElems::val <<
". Can not make partitioning of the mesh " << EI_MeshFile::qval <<
".\n" );
79 const LongIdx *get_loc_part()
const;
84 shared_ptr< vector<int> > subdomain_id_field_data();
89 void id_maps(
int n_ids,
LongIdx *id_4_old,
93 static void id_maps(
int n_ids,
LongIdx *id_4_old,
135 void make_element_connection_graph();
141 void make_partition();
Class for the mesh partitioning. This should provide:
Mesh * mesh_
The input mesh.
Add edge for any pair of neighboring elements.
shared_ptr< vector< int > > seq_part_
Sequential partitioning for output.
LongIdx * loc_part_
Partition numbers for local elements in original distribution of elements given be init_el_ds_...
Use PETSc interface to various partitioing tools.
Input::Record in_
Input Record accessor.
Virtual class for construction and partitioning of a distributed sparse graph.
Distribution * init_el_ds_
Original distribution of elements. Depends on type of partitioner.
int LongIdx
Define type that represents indices of large arrays (elements, nodes, dofs etc.)
Same as before and assign higher weight to cuts of lower dimension in order to make them stick to one...
SparseGraph * graph_
Graph used to partitioning the mesh.
Add edge for any pair of neighboring elements of same dimension (bad for matrix multiply) ...