18#ifndef LIBMESH_PARMETIS_HELPER_H
19#define LIBMESH_PARMETIS_HELPER_H
22#include "libmesh/libmesh_config.h"
27#ifdef LIBMESH_HAVE_PARMETIS
29#include "libmesh/id_types.h"
39# include "libmesh/ignore_warnings.h"
41# include "libmesh/restore_warnings.h"
74#ifdef LIBMESH_HAVE_PARMETIS
81 std::vector<Parmetis::idx_t>
xadj;
86 std::vector<dof_id_type>
part;
90 static_assert(
sizeof(Parmetis::idx_t) ==
sizeof(
dof_id_type),
91 "ParMETIS and libMesh ID sizes must match!");
93 std::vector<Parmetis::real_t>
tpwgts;
94 std::vector<Parmetis::real_t>
ubvec;
96 std::vector<Parmetis::idx_t>
vwgt;
The ParmetisHelper class allows us to use a 'pimpl' strategy in the ParmetisPartitioner class.
ParmetisHelper & operator=(const ParmetisHelper &)=default
std::vector< Parmetis::idx_t > vwgt
std::vector< Parmetis::idx_t > options
ParmetisHelper(const ParmetisHelper &)=default
std::vector< Parmetis::idx_t > xadj
ParmetisHelper(ParmetisHelper &&)=default
~ParmetisHelper()=default
std::vector< dof_id_type > part
std::vector< Parmetis::real_t > tpwgts
std::vector< Parmetis::idx_t > adjncy
std::vector< Parmetis::real_t > ubvec
ParmetisHelper()=default
Defaulted constructors, assignment operators, and destructor.
std::vector< Parmetis::idx_t > vtxdist
Data structures used by ParMETIS to describe the connectivity graph of the mesh.
The libMesh namespace provides an interface to certain functionality in the library.