GEOS
GraphPartitioner.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2019 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2019 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2019 Total, S.A
8  * Copyright (c) 2019- GEOS/GEOSX Contributors
9  * All right reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
19 #ifndef GEOS_LINEARALGEBRA_MULTISCALE_GRAPHPARTITIONER_HPP_
20 #define GEOS_LINEARALGEBRA_MULTISCALE_GRAPHPARTITIONER_HPP_
21 
22 #include "PartitionerBase.hpp"
23 
24 namespace geos
25 {
26 namespace multiscale
27 {
28 
32 class GraphPartitioner final : public PartitionerBase
33 {
34 public:
35 
37 
38  virtual localIndex generate( multiscale::MeshLevel const & mesh,
39  arrayView1d< localIndex > const & partition ) override;
40 };
41 
42 } // namespace multiscale
43 } // namespace geos
44 
45 #endif //GEOS_LINEARALGEBRA_MULTISCALE_GRAPHPARTITIONER_HPP_
Graph-based mesh partitioner (uses METIS or SCOTCH).
virtual localIndex generate(multiscale::MeshLevel const &mesh, arrayView1d< localIndex > const &partition) override
Generate a partitioning of fine-scale mesh cells.
Multiscale mesh level.
Definition: MeshLevel.hpp:47
Base class for partitioner implementations.
PartitionerBase(LinearSolverParameters::Multiscale::Coarsening params)
Constructor.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Definition: DataTypes.hpp:179
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
Definition: DataTypes.hpp:84