|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
Gather / scatter / table replication. More...
#include <block_container.hpp>
Public Member Functions | |
| virtual | ~VofBlockExchangeBase ()=default |
| virtual void | gatherFaceVel (std::vector< VofBlock > &blocks, int ghost)=0 |
Fill every MASTER block's faceU/V/W over its EXTENDED box, from the face velocity the ranks own. | |
| virtual void | scatterColourMax (std::vector< VofBlock > &blocks, SField cLocal)=0 |
UNION the masters' inner colour into the caller's local colour patch: zero the inner region, then C = max(C, C_block) cell by cell (TBFsolver's UNPACK_MAX). | |
| virtual void | syncTable (std::vector< VofBlock > &blocks)=0 |
| Replicate the (possibly re-centred) boxes so every rank's table agrees again. | |
| virtual void | gatherColour (std::vector< VofBlock > &blocks, SField cLocal)=0 |
Fill every MASTER block's INNER colour from the caller's colour patch (the mirror of scatterColourMax). | |
| virtual void | scatterForceSum (std::vector< VofBlock > &blocks, SField fx, SField fy, SField fz)=0 |
SUM every master block's CSF face force into the caller's three face-force patches (TBFsolver's UNPACK_SUM, VOF.f90::computeSurfaceTension): overlapping markers ADD their forces, which is what makes two touching bubbles push on the fluid twice and not once. | |
| virtual void | scatterColourSum (std::vector< VofBlock > &, SField) |
SUM every master block's inner colour into the caller's colour patch: S = sum_k C_k, the overlap measure beside the MAX union (doc/vof_overlap_design.md §5.6). | |
| virtual void | migrateColour (std::vector< VofBlock > &blocks, const std::vector< int > &oldMaster)=0 |
Move a block's state from oldMaster[i] to blocks[i].master after a re-assignment. | |
| virtual long | gatherBytes () const |
| Bytes moved by the last gather / scatter on THIS rank (sent + received). | |
| virtual long | scatterBytes () const |
Gather / scatter / table replication.
Kept abstract so block_container.hpp stays MPI-free and the single-rank Python module builds it unchanged.
Definition at line 383 of file block_container.hpp.
|
virtualdefault |
|
pure virtual |
Fill every MASTER block's faceU/V/W over its EXTENDED box, from the face velocity the ranks own.
Cells outside a non-periodic domain come from the ghost layers of the rank whose box touches that domain face — the doubles the global-field advector consumes there. They are NOT a clamp fill: uf(i) is the HIGH face of cell i, so the LOW domain face (a wall's normal velocity, an inflow's datum) sits at global index -1. A zero-gradient copy of index 0 put the first interior face's velocity on a no-slip wall, and every marker with colour in the wall-adjacent layer then gained or lost volume through the wall (bubble column, 2026-09-25: up to 1e-5 of a marker per step).
Implemented in peclet::flow::vof::VofBlockExchange.
|
pure virtual |
UNION the masters' inner colour into the caller's local colour patch: zero the inner region, then C = max(C, C_block) cell by cell (TBFsolver's UNPACK_MAX).
Implemented in peclet::flow::vof::VofBlockExchange.
|
pure virtual |
Replicate the (possibly re-centred) boxes so every rank's table agrees again.
Implemented in peclet::flow::vof::VofBlockExchange.
|
pure virtual |
Fill every MASTER block's INNER colour from the caller's colour patch (the mirror of scatterColourMax).
Used to seed a block from an arbitrary global colour field — the general seeding path, which a sphere seed is only a convenience over.
Implemented in peclet::flow::vof::VofBlockExchange.
|
pure virtual |
SUM every master block's CSF face force into the caller's three face-force patches (TBFsolver's UNPACK_SUM, VOF.f90::computeSurfaceTension): overlapping markers ADD their forces, which is what makes two touching bubbles push on the fluid twice and not once.
Implemented in peclet::flow::vof::VofBlockExchange.
|
inlinevirtual |
SUM every master block's inner colour into the caller's colour patch: S = sum_k C_k, the overlap measure beside the MAX union (doc/vof_overlap_design.md §5.6).
S > 1 exactly where two markers interpenetrate. Same machinery and block order as scatterForceSum.
Reimplemented in peclet::flow::vof::VofBlockExchange.
Definition at line 410 of file block_container.hpp.
|
pure virtual |
Move a block's state from oldMaster[i] to blocks[i].master after a re-assignment.
The gaining rank has ALREADY allocated the (zeroed) advector; only the colour travels — everything else in a block is either replicated (the table) or recomputed per step.
Implemented in peclet::flow::vof::VofBlockExchange.
Bytes moved by the last gather / scatter on THIS rank (sent + received).
Reimplemented in peclet::flow::vof::VofBlockExchange.
Definition at line 418 of file block_container.hpp.
Reimplemented in peclet::flow::vof::VofBlockExchange.
Definition at line 419 of file block_container.hpp.