GEOS
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
geos::multiscale::PartitionerBase Class Referenceabstract

Base class for partitioner implementations. More...

#include <PartitionerBase.hpp>

Inheritance diagram for geos::multiscale::PartitionerBase:
Inheritance graph
[legend]

Public Member Functions

 PartitionerBase (LinearSolverParameters::Multiscale::Coarsening params)
 Constructor. More...
 
virtual ~PartitionerBase ()=default
 Destructor.
 
virtual localIndex generate (multiscale::MeshLevel const &mesh, arrayView1d< localIndex > const &partition)=0
 Generate a partitioning of fine-scale mesh cells. More...
 
virtual void setCoarseData (multiscale::MeshLevel &coarseMesh) const
 Store auxiliary partitioning-related data on the coarse mesh. More...
 

Static Public Member Functions

static std::unique_ptr< PartitionerBasecreate (LinearSolverParameters::Multiscale::Coarsening params)
 Factory method for instantiating a partitioner based on parameters. More...
 

Protected Attributes

LinearSolverParameters::Multiscale::Coarsening m_params
 Coarsening parameters.
 

Detailed Description

Base class for partitioner implementations.

Definition at line 35 of file PartitionerBase.hpp.

Constructor & Destructor Documentation

◆ PartitionerBase()

geos::multiscale::PartitionerBase::PartitionerBase ( LinearSolverParameters::Multiscale::Coarsening  params)
inlineexplicit

Constructor.

Parameters
paramscoarsening parameters

Definition at line 51 of file PartitionerBase.hpp.

Member Function Documentation

◆ create()

static std::unique_ptr< PartitionerBase > geos::multiscale::PartitionerBase::create ( LinearSolverParameters::Multiscale::Coarsening  params)
static

Factory method for instantiating a partitioner based on parameters.

Parameters
paramscoarsening parameters
Returns
owning pointer to the new partitioner object

◆ generate()

virtual localIndex geos::multiscale::PartitionerBase::generate ( multiscale::MeshLevel const &  mesh,
arrayView1d< localIndex > const &  partition 
)
pure virtual

Generate a partitioning of fine-scale mesh cells.

Parameters
meshthe fine-scale mesh
partitionthe partition index output array (that must be properly sized)
Returns
the number of partitions generated

Implemented in geos::multiscale::SemistructuredPartitioner, geos::multiscale::GraphPartitioner, and geos::multiscale::CartesianPartitioner.

◆ setCoarseData()

virtual void geos::multiscale::PartitionerBase::setCoarseData ( multiscale::MeshLevel coarseMesh) const
inlinevirtual

Store auxiliary partitioning-related data on the coarse mesh.

Parameters
coarseMeshthe coarse mesh

This function can be used to transfer auxiliary data used by the partitioner implementation onto the coarse grid after it's been created based on the previously generated partition. For example, a Cartesian partitioner may need to assign Cartesian indices to newly generated coarse cells, so that it can be later applied to the coarse grid recursively.

Note
It is expected that the coarse mesh contains exactly as many cells as there are unique partition indices produced by generate().

Reimplemented in geos::multiscale::SemistructuredPartitioner, and geos::multiscale::CartesianPartitioner.

Definition at line 81 of file PartitionerBase.hpp.


The documentation for this class was generated from the following file: