20 #ifndef LIBMESH_PARTITIONER_H 21 #define LIBMESH_PARTITIONER_H 31 #include <unordered_map> 75 virtual std::unique_ptr<Partitioner>
clone ()
const = 0;
93 const unsigned int n);
131 { libmesh_not_implemented(); }
140 const unsigned int n);
156 const unsigned int n);
228 const unsigned int n) = 0;
296 #endif // LIBMESH_PARTITIONER_H
void single_partition(MeshBase &mesh)
static void set_interface_node_processor_ids_petscpartitioner(MeshBase &mesh)
std::unordered_map< dof_id_type, dof_id_type > _global_index_by_pid_map
static void set_interface_node_processor_ids_BFS(MeshBase &mesh)
virtual void attach_weights(ErrorVector *)
static void set_node_processor_ids(MeshBase &mesh)
static void set_interface_node_processor_ids_linear(MeshBase &mesh)
virtual std::unique_ptr< Partitioner > clone() const =0
void assign_partitioning(const MeshBase &mesh, const std::vector< dof_id_type > &parts)
virtual void partition_range(MeshBase &, MeshBase::element_iterator, MeshBase::element_iterator, const unsigned int)
virtual void build_graph(const MeshBase &mesh)
std::vector< Elem * > _local_id_to_elem
Base class for all concrete Partitioner instantiations.
virtual void _do_repartition(MeshBase &mesh, const unsigned int n)
void repartition(MeshBase &mesh, const unsigned int n)
void single_partition_range(MeshBase::element_iterator it, MeshBase::element_iterator end)
static void processor_pairs_to_interface_nodes(MeshBase &mesh, std::map< std::pair< processor_id_type, processor_id_type >, std::set< dof_id_type >> &processor_pair_to_nodes)
virtual void _find_global_index_by_pid_map(const MeshBase &mesh)
virtual ~Partitioner()=default
virtual void _do_partition(MeshBase &mesh, const unsigned int n)=0
static void partition_unpartitioned_elements(MeshBase &mesh)
Partitioner & operator=(const Partitioner &)=default
static const dof_id_type communication_blocksize
virtual void partition(MeshBase &mesh, const unsigned int n)
static void set_parent_processor_ids(MeshBase &mesh)
std::vector< std::vector< dof_id_type > > _dual_graph
std::vector< dof_id_type > _n_active_elem_on_proc