20#ifndef LIBMESH_METIS_PARTITIONER_H
21#define LIBMESH_METIS_PARTITIONER_H
24#include "libmesh/partitioner.h"
60 virtual std::unique_ptr<Partitioner>
clone ()
const override
62 return std::make_unique<MetisPartitioner>(*
this);
73 const unsigned int n)
override;
81 const unsigned int n)
override;
The ErrorVector is a specialization of the StatisticsVector for error data computed on a finite eleme...
This is the MeshBase class.
The MetisPartitioner uses the Metis graph partitioner to partition the elements.
virtual PartitionerType type() const override
MetisPartitioner(const MetisPartitioner &)=default
virtual void attach_weights(ErrorVector *weights) override
Attach weights that can be used for partitioning.
virtual void partition_range(MeshBase &mesh, MeshBase::element_iterator it, MeshBase::element_iterator end, const unsigned int n) override
Called by the SubdomainPartitioner to partition elements in the range (it, end).
virtual ~MetisPartitioner()=default
MetisPartitioner & operator=(const MetisPartitioner &)=default
virtual void _do_partition(MeshBase &mesh, const unsigned int n) override
Partition the MeshBase into n subdomains.
virtual std::unique_ptr< Partitioner > clone() const override
MetisPartitioner()=default
Ctors, assignment operators, and destructor are all explicitly defaulted for this class.
MetisPartitioner(MetisPartitioner &&)=default
The Partitioner class provides a uniform interface for partitioning algorithms.
ErrorVector * _weights
The weights that might be used for partitioning.
The libMesh namespace provides an interface to certain functionality in the library.
PartitionerType
Defines an enum for mesh partitioner types.
The definition of the element_iterator struct.