18 #ifndef PARTITIONING_HH_
19 #define PARTITIONING_HH_
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" );
Class for the mesh partitioning. This should provide:
TYPEDEF_ERR_INFO(EI_NElems, unsigned int)
static const Input::Type::Selection & get_tool_sel()
const LongIdx * get_loc_part() const
TYPEDEF_ERR_INFO(EI_NProcs, unsigned int)
~Partitioning()
Destructor.
shared_ptr< vector< int > > subdomain_id_field_data()
Mesh * mesh_
The input mesh.
static const Input::Type::Record & get_input_type()
LongIdx * loc_part_
Partition numbers for local elements in original distribution of elements given be init_el_ds_.
static const Input::Type::Selection & get_graph_type_sel()
Input specification objects.
void make_element_connection_graph()
@ any_weight_lower_dim_cuts
Same as before and assign higher weight to cuts of lower dimension in order to make them stick to one...
@ same_dimension_neighboring
Add edge for any pair of neighboring elements of same dimension (bad for matrix multiply)
@ any_neighboring
Add edge for any pair of neighboring elements.
shared_ptr< vector< int > > seq_part_
Sequential partitioning for output.
TYPEDEF_ERR_INFO(EI_MeshFile, std::string)
DECLARE_INPUT_EXCEPTION(ExcDecomposeMesh,<< "Number of processors "<< EI_NProcs::val<< " greater then number of elements "<< EI_NElems::val<< ". Can not make partitioning of the mesh "<< EI_MeshFile::qval<< ".\n")
const Distribution * get_init_distr() const
@ METIS
Use direct interface to Metis.
@ PETSc
Use PETSc interface to various partitioing tools.
Input::Record in_
Input Record accessor.
SparseGraph * graph_
Graph used to partitioning the mesh.
Partitioning(Mesh *mesh, Input::Record in)
Distribution * init_el_ds_
Original distribution of elements. Depends on type of partitioner.
void id_maps(int n_ids, LongIdx *id_4_old, Distribution *&new_ds, LongIdx *&id_4_loc, LongIdx *&new_4_id)
Virtual class for construction and partitioning of a distributed sparse graph.
int LongIdx
Define type that represents indices of large arrays (elements, nodes, dofs etc.)