20#ifndef LIBMESH_SFC_PARTITIONER_H
21#define LIBMESH_SFC_PARTITIONER_H
24#include "libmesh/partitioner.h"
68 virtual std::unique_ptr<Partitioner>
clone ()
const override
70 return std::make_unique<SFCPartitioner>(*
this);
86 (sfc_type ==
"Morton"));
97 const unsigned int n)
override;
105 const unsigned int n)
override;
This is the MeshBase class.
The Partitioner class provides a uniform interface for partitioning algorithms.
The SFCPartitioner uses a Hilbert or Morton-ordered space filling curve to partition the elements.
SFCPartitioner()
Constructor.
std::string _sfc_type
The type of space-filling curve to use.
void set_sfc_type(std::string sfc_type)
Sets the type of space-filling curve to use.
SFCPartitioner(const SFCPartitioner &)=default
Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this c...
virtual PartitionerType type() const override
virtual void _do_partition(MeshBase &mesh, const unsigned int n) override
Partition the MeshBase into n subdomains.
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).
SFCPartitioner(SFCPartitioner &&)=default
virtual std::unique_ptr< Partitioner > clone() const override
SFCPartitioner & operator=(const SFCPartitioner &)=default
virtual ~SFCPartitioner()=default
virtual bool partitions_from_scratch() const override
Elements are assigned from a space-filling curve computed here, with no reference to the 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.