35#ifndef NEKTAR_SPATIALDOMAINS_MESHPARTITIONSCOTCH_H
36#define NEKTAR_SPATIALDOMAINS_MESHPARTITIONSCOTCH_H
61 session, comm, meshDim, element, compMap);
71 std::map<int, MeshEntity> element,
81 int &nparts,
int &volume,
85 void PartGraphVKway(
const SCOTCH_Num *
const n,
const SCOTCH_Num *
const xadj,
86 const SCOTCH_Num *
const adjncy,
87 const SCOTCH_Num *
const vwgt,
88 const SCOTCH_Num *
const vsize,
89 const SCOTCH_Num *
const wgtflag,
90 const SCOTCH_Num *
const numflag,
91 const SCOTCH_Num *
const nparts,
92 SCOTCH_Num *
const volume, SCOTCH_Num *
const part);
94 int PartGraph2(
const SCOTCH_Num *
const n,
const SCOTCH_Num *
const xadj,
95 const SCOTCH_Num *
const adjncy,
const SCOTCH_Num *
const vwgt,
96 const SCOTCH_Num *
const adjwgt,
97 const SCOTCH_Num *
const numflag,
98 const SCOTCH_Num *
const nparts, SCOTCH_Num *
const part,
99 SCOTCH_Num flagval,
double kbalval);
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
static MeshPartitionSharedPtr create(const LibUtilities::SessionReaderSharedPtr session, LibUtilities::CommSharedPtr comm, int meshDim, std::map< int, MeshEntity > element, CompositeDescriptor compMap)
Creates an instance of this class.
void v_PartitionGraphImpl(int &nVerts, int &nVertConds, Nektar::Array< Nektar::OneD, int > &xadj, Nektar::Array< Nektar::OneD, int > &adjcy, Nektar::Array< Nektar::OneD, int > &vertWgt, Nektar::Array< Nektar::OneD, int > &vertSize, Nektar::Array< Nektar::OneD, int > &edgeWgt, int &nparts, int &volume, Nektar::Array< Nektar::OneD, int > &part) final
~MeshPartitionScotch() override=default
static std::string className
Name of class.
MeshPartitionScotch(const LibUtilities::SessionReaderSharedPtr session, LibUtilities::CommSharedPtr comm, int meshDim, std::map< int, MeshEntity > element, CompositeDescriptor compMap)
int PartGraph2(const SCOTCH_Num *const n, const SCOTCH_Num *const xadj, const SCOTCH_Num *const adjncy, const SCOTCH_Num *const vwgt, const SCOTCH_Num *const adjwgt, const SCOTCH_Num *const numflag, const SCOTCH_Num *const nparts, SCOTCH_Num *const part, SCOTCH_Num flagval, double kbalval)
static std::string cmdSwitch
void PartGraphVKway(const SCOTCH_Num *const n, const SCOTCH_Num *const xadj, const SCOTCH_Num *const adjncy, const SCOTCH_Num *const vwgt, const SCOTCH_Num *const vsize, const SCOTCH_Num *const wgtflag, const SCOTCH_Num *const numflag, const SCOTCH_Num *const nparts, SCOTCH_Num *const volume, SCOTCH_Num *const part)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
std::map< int, std::pair< LibUtilities::ShapeType, std::vector< int > > > CompositeDescriptor
std::shared_ptr< MeshPartition > MeshPartitionSharedPtr