|
core 0.5.0
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
#include <distributed_flow_mg.hpp>
Public Types | |
| using | DO = DistributedOctree< Dim, Bits > |
| using | Octree = typename DO::Octree |
| using | Poisson = AmrPoisson< Dim, Bits > |
| using | M = typename Octree::M |
| using | Code = typename Octree::Code |
Public Member Functions | |
| template<class OpenFn > | |
| void | build (const DO &finest, double h0, OpenFn &&openFn, const LeafHalo< Dim, Bits > *shared0=nullptr) |
Build with cut-cell openness openFn(faceCentreWorld, axis) → [0,1] on the flow's distributed octree (graded + cross-block 2:1 balanced). | |
| void | setRemoveMean (bool on) |
| std::size_t | numLevels () const |
| Index | numLeaves (std::size_t L=0) const |
| Index | extendedSize (std::size_t L=0) const |
| View< double > | x (std::size_t L=0) |
| View< double > | b (std::size_t L=0) |
| const FvOp & | op (std::size_t L=0) const |
| MPI_Comm | comm () const |
| const Poisson & | poisson (std::size_t L=0) const |
| const LeafHalo< Dim, Bits > & | halo (std::size_t L=0) const |
| void | sync (std::size_t L, View< double > v) const |
| Refresh the ghost tail of a level-L vector (the PCG matvec hook uses level 0). | |
| void | vcycle (int pre=2, int post=2, int bottom=40, double omega=0.8, std::size_t L=0) |
| One V-cycle on level L (correction scheme), the distributed mirror of Multigrid::vcycle: ghost refresh before every Jacobi sweep / residual, local transfers, Allreduce'd mean removal. | |
Definition at line 93 of file distributed_flow_mg.hpp.
| using peclet::core::amr::DistributedFlowMultigrid< Dim, Bits >::DO = DistributedOctree<Dim, Bits> |
Definition at line 95 of file distributed_flow_mg.hpp.
| using peclet::core::amr::DistributedFlowMultigrid< Dim, Bits >::Octree = typename DO::Octree |
Definition at line 96 of file distributed_flow_mg.hpp.
| using peclet::core::amr::DistributedFlowMultigrid< Dim, Bits >::Poisson = AmrPoisson<Dim, Bits> |
Definition at line 97 of file distributed_flow_mg.hpp.
| using peclet::core::amr::DistributedFlowMultigrid< Dim, Bits >::M = typename Octree::M |
Definition at line 98 of file distributed_flow_mg.hpp.
| using peclet::core::amr::DistributedFlowMultigrid< Dim, Bits >::Code = typename Octree::Code |
Definition at line 99 of file distributed_flow_mg.hpp.
|
inline |
Build with cut-cell openness openFn(faceCentreWorld, axis) → [0,1] on the flow's distributed octree (graded + cross-block 2:1 balanced).
Collective.
shared0 (optional): a FINALIZED LeafHalo whose registry is a superset of level 0's face probes — the distributed AmrFlow passes its ±2 flow registry so the level-0 operator's ghost columns index the SAME extended layout as the flow's cell vectors (φ, the overlay chains, the PCG/BiCGStab scratch): one layout, no cross-indexing. Level-0 probes (±1 face reach incl. finer sub-neighbours) are a subset of the flow's forEachFaceFull discovery, so every probe resolves from the frozen registry.
Definition at line 111 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 123 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 125 of file distributed_flow_mg.hpp.
|
inline |
Definition at line 126 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 127 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 128 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 129 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 130 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 131 of file distributed_flow_mg.hpp.
|
inline |
Definition at line 132 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Definition at line 133 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
Refresh the ghost tail of a level-L vector (the PCG matvec hook uses level 0).
Definition at line 136 of file distributed_flow_mg.hpp.
References peclet::core::amr::transferFieldGradients().
|
inline |
One V-cycle on level L (correction scheme), the distributed mirror of Multigrid::vcycle: ghost refresh before every Jacobi sweep / residual, local transfers, Allreduce'd mean removal.
Definition at line 141 of file distributed_flow_mg.hpp.
References peclet::core::amr::jacobiFv(), peclet::core::amr::prolongAdd(), peclet::core::amr::removeMeanFvDist(), peclet::core::amr::residualFv(), peclet::core::amr::restrictField(), peclet::core::amr::transferFieldGradients(), and peclet::core::amr::DistributedFlowMultigrid< Dim, Bits >::vcycle().
Referenced by peclet::core::amr::DistributedFlowMultigrid< Dim, Bits >::vcycle().