|
core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
Static topology of the face-neighbour gather: which out-slots are filled from a local leaf (directSlot/directLeaf) and which must be gathered from an owner (remoteCoords at remoteSlot).
More...
#include <distributed_octree.hpp>
Public Attributes | |
| std::vector< Index > | directSlot |
| std::vector< Index > | directLeaf |
| out[directSlot[k]] = field[directLeaf[k]] | |
| std::vector< std::array< Coord, Dim > > | remoteCoords |
| owner-gathered coords (incl. owner==rank) | |
| std::vector< Index > | remoteSlot |
| out[remoteSlot[k]] = covered value | |
| Index | nFaces = 0 |
| local leaves * 2*Dim | |
Static topology of the face-neighbour gather: which out-slots are filled from a local leaf (directSlot/directLeaf) and which must be gathered from an owner (remoteCoords at remoteSlot).
This is the per-face neighborInfo classification, which depends only on the decomposition — not the field — so a matvec loop can build it once and reuse it (C1), mirroring how DistributedFvOperator caches its ghost coords. Slots left in neither list keep the sentinel (domain boundary / no neighbour). Invalidated by rebalance (rebuild after a decomposition change); the AMR solvers hold the decomposition fixed across a solve.
Definition at line 420 of file distributed_octree.hpp.
| std::vector<Index> peclet::core::amr::DistributedOctree< Dim, Bits >::FaceGatherPlan::directSlot |
Definition at line 421 of file distributed_octree.hpp.
Referenced by peclet::core::amr::DistributedOctree< Dim, Bits >::buildFaceGatherPlan().
| std::vector<Index> peclet::core::amr::DistributedOctree< Dim, Bits >::FaceGatherPlan::directLeaf |
out[directSlot[k]] = field[directLeaf[k]]
Definition at line 421 of file distributed_octree.hpp.
Referenced by peclet::core::amr::DistributedOctree< Dim, Bits >::buildFaceGatherPlan().
| std::vector<std::array<Coord, Dim> > peclet::core::amr::DistributedOctree< Dim, Bits >::FaceGatherPlan::remoteCoords |
owner-gathered coords (incl. owner==rank)
Definition at line 423 of file distributed_octree.hpp.
Referenced by peclet::core::amr::DistributedOctree< Dim, Bits >::buildFaceGatherPlan().
| std::vector<Index> peclet::core::amr::DistributedOctree< Dim, Bits >::FaceGatherPlan::remoteSlot |
out[remoteSlot[k]] = covered value
Definition at line 424 of file distributed_octree.hpp.
Referenced by peclet::core::amr::DistributedOctree< Dim, Bits >::buildFaceGatherPlan().
| Index peclet::core::amr::DistributedOctree< Dim, Bits >::FaceGatherPlan::nFaces = 0 |
local leaves * 2*Dim
Definition at line 425 of file distributed_octree.hpp.
Referenced by peclet::core::amr::DistributedOctree< Dim, Bits >::buildFaceGatherPlan().