Nektar++
Functions
Metis Namespace Reference

Functions

void AS_METIS_NodeND (int *nVerts, int *xadj, int *adjncy, int *vwgt, int *options, int *perm, int *iperm, int *map, int *mdswitch)
 
static void as_onmetis (int nVerts, Nektar::Array< Nektar::OneD, int > xadj, Nektar::Array< Nektar::OneD, int > adjncy, Nektar::Array< Nektar::OneD, int > perm, Nektar::Array< Nektar::OneD, int > iperm, Nektar::Array< Nektar::OneD, int > map, int mdswitch=1)
 
static void PartGraphVKway (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, int &nparts, int &volume, Nektar::Array< Nektar::OneD, int > &part)
 

Function Documentation

void Metis::AS_METIS_NodeND ( int *  nVerts,
int *  xadj,
int *  adjncy,
int *  vwgt,
int *  options,
int *  perm,
int *  iperm,
int *  map,
int *  mdswitch 
)

Referenced by as_onmetis().

static void Metis::as_onmetis ( int  nVerts,
Nektar::Array< Nektar::OneD, int >  xadj,
Nektar::Array< Nektar::OneD, int >  adjncy,
Nektar::Array< Nektar::OneD, int >  perm,
Nektar::Array< Nektar::OneD, int >  iperm,
Nektar::Array< Nektar::OneD, int >  map,
int  mdswitch = 1 
)
inlinestatic

Definition at line 53 of file Metis.hpp.

References AS_METIS_NodeND(), and ASSERTL1.

Referenced by Nektar::MultiRegions::MultiLevelBisectionReordering().

61  {
62  ASSERTL1(xadj.num_elements() == nVerts+1,"Array xadj out of bounds");
63  ASSERTL1(perm.num_elements() == nVerts,"Array perm out of bounds");
64  ASSERTL1(iperm.num_elements() == nVerts,"Array iperm out of bounds");
65 
66  AS_METIS_NodeND(&nVerts, &xadj[0], &adjncy[0], NULL, NULL, &perm[0],
67  &iperm[0], &map[0], &mdswitch);
68  }
void AS_METIS_NodeND(int *nVerts, int *xadj, int *adjncy, int *vwgt, int *options, int *perm, int *iperm, int *map, int *mdswitch)
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
static void Metis::PartGraphVKway ( 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,
int &  nparts,
int &  volume,
Nektar::Array< Nektar::OneD, int > &  part 
)
inlinestatic

Definition at line 71 of file Metis.hpp.

Referenced by Nektar::LibUtilities::MeshPartitionMetis::PartitionGraphImpl().

81  {
82  int *vwgt = 0;
83  int *vsize = 0;
84  if (vertWgt.num_elements() > 0)
85  {
86  vwgt = &vertWgt[0];
87  }
88  if (vertSize.num_elements() > 0)
89  {
90  vsize = &vertSize[0];
91  }
92  // number of balancing conditions (size of vertex multi-weight)
93  int ncon = nVertConds;
94  int options[METIS_NOPTIONS];
95  METIS_SetDefaultOptions(options);
96  METIS_PartGraphKway(&nVerts, &ncon, &xadj[0], &adjcy[0], vwgt, vsize,
97  0, &nparts, 0, 0, options, &volume, &part[0]);
98  }