class
PartitionerContents
Partitioner Charm++ chare nodegroup class
Instantiations of Partitioner comprise a processor aware Charm++ chare node group. When instantiated, a new object is created on each compute node and not more (as opposed to individual chares or chare array object elements). See also the Charm++ interface file partitioner.ci.
Constructors, destructors, conversion operators
-
Partitioner(std::size_t meshid,
const std::string& filename,
const tk::
PartitionerCallback& cbp, const tk:: RefinerCallback& cbr, const tk:: SorterCallback& cbs, const CProxy_Transporter& host, const CProxy_Refiner& refiner, const CProxy_Sorter& sorter, const tk::CProxy_MeshWriter& meshwriter, const Scheme& scheme, const std::map<int, std::vector<std::size_t>>& bface, const std::map<int, std::vector<std::size_t>>& faces, const std::map<int, std::vector<std::size_t>>& bnode) - Constructor.
- Partitioner(CkMigrateMessage* m) explicit
- Migrate constructor.
Public functions
- void partition(int nchare)
- Partition the computational mesh into a number of chares.
-
void addMesh(int fromnode,
const std::unordered_map<int, std::tuple<std::vector<std::size_t>, tk::
UnsMesh:: CoordMap, std::unordered_map<int, std::vector<std::size_t>>, std::unordered_map<int, std::vector<std::size_t>>>>& chmesh) - Receive mesh associated to chares we own after refinement.
- void recvMesh()
- Acknowledge received mesh after initial mesh refinement.
- void refine()
- Optionally start refining the mesh.
Charm++ pack/unpack serializer member functions
- void pup(PUP::er& p) override
- Pack/Unpack serialize member function.
- void operator|(PUP::er& p, Partitioner& i)
- Pack/Unpack serialize operator|.
Function documentation
inciter:: Partitioner:: Partitioner(std::size_t meshid,
const std::string& filename,
const tk:: PartitionerCallback& cbp,
const tk:: RefinerCallback& cbr,
const tk:: SorterCallback& cbs,
const CProxy_Transporter& host,
const CProxy_Refiner& refiner,
const CProxy_Sorter& sorter,
const tk::CProxy_MeshWriter& meshwriter,
const Scheme& scheme,
const std::map<int, std::vector<std::size_t>>& bface,
const std::map<int, std::vector<std::size_t>>& faces,
const std::map<int, std::vector<std::size_t>>& bnode)
Constructor.
Parameters | |
---|---|
meshid in | Mesh ID |
filename in | Input mesh filename to read from |
cbp in | Charm++ callbacks for Partitioner |
cbr in | Charm++ callbacks for Refiner |
cbs in | Charm++ callbacks for Sorter |
host in | Host Charm++ proxy we are being called from |
refiner in | Mesh refiner proxy |
sorter in | Mesh reordering (sorter) proxy |
meshwriter in | Mesh writer proxy |
scheme in | Discretization scheme |
bface in | File-internal elem ids of side sets (whole mesh) |
faces in | Elem-relative face ids of side sets (whole mesh) |
bnode in | Node lists of side sets (whole mesh) |
void inciter:: Partitioner:: partition(int nchare)
Partition the computational mesh into a number of chares.
Parameters | |
---|---|
nchare in | Number of parts the mesh will be partitioned into |
This function calls the mesh partitioner to partition the mesh. The number of partitions equals the number nchare argument which must be no lower than the number of compute nodes.
void inciter:: Partitioner:: addMesh(int fromnode,
const std::unordered_map<int, std::tuple<std::vector<std::size_t>, tk:: UnsMesh:: CoordMap, std::unordered_map<int, std::vector<std::size_t>>, std::unordered_map<int, std::vector<std::size_t>>>>& chmesh)
Receive mesh associated to chares we own after refinement.
Parameters | |
---|---|
fromnode in | Compute node call coming from |
chmesh in | Map associating mesh connectivities to global node ids and node coordinates for mesh chunks we are assigned by the partitioner |
void inciter:: Partitioner:: pup(PUP::er& p) override
Pack/Unpack serialize member function.
Parameters | |
---|---|
p in/out | Charm++'s PUP::er serializer object reference |
void inciter:: Partitioner:: operator|(PUP::er& p,
Partitioner& i)
Pack/Unpack serialize operator|.
Parameters | |
---|---|
p in/out | Charm++'s PUP::er serializer object reference |
i in/out | Partitioner object reference |