Go to the documentation of this file.
20 #ifndef LIBMESH_SFC_PARTITIONER_H
21 #define LIBMESH_SFC_PARTITIONER_H
24 #include "libmesh/partitioner.h"
25 #include "libmesh/auto_ptr.h"
66 virtual std::unique_ptr<Partitioner>
clone ()
const override
68 return libmesh_make_unique<SFCPartitioner>(*
this);
78 (sfc_type ==
"Morton"));
89 const unsigned int n)
override;
97 const unsigned int n)
override;
110 #endif // LIBMESH_SFC_PARTITIONER_H
The definition of the element_iterator struct.
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).
The libMesh namespace provides an interface to certain functionality in the library.
IterBase * end
Also have a polymorphic pointer to the end object, this prevents iterating past the end.
The Partitioner class provides a uniform interface for partitioning algorithms.
SFCPartitioner & operator=(const SFCPartitioner &)=default
This is the MeshBase class.
void set_sfc_type(const std::string &sfc_type)
Sets the type of space-filling curve to use.
virtual ~SFCPartitioner()=default
SFCPartitioner()
Constructor.
The SFCPartitioner uses a Hilbert or Morton-ordered space filling curve to partition the elements.
virtual std::unique_ptr< Partitioner > clone() const override
virtual void _do_partition(MeshBase &mesh, const unsigned int n) override
Partition the MeshBase into n subdomains.
std::string _sfc_type
The type of space-filling curve to use.