|
core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
Device-callable reproduction of AmrPoisson's per-cell face walk + geometry. More...
#include <assembly.hpp>
Public Types | |
| using | View_t = BlockOctreeView< Dim, Bits > |
| using | M = typename View_t::M |
| using | Code = typename View_t::Code |
| using | Coord = typename View_t::Coord |
Public Member Functions | |
| double | openness (Index leaf, int axis, int dir) const |
| Real | areaOf (Coord s) const |
| Real | coeff (Coord si, Coord sj) const |
| Coord | wrap (long c, int axis) const |
| Real | cellWidth (Index i) const |
| Real | cellVolume (Index i) const |
| double | bcDiag (Index i) const |
| Σ over leaf i's Dirichlet-wall faces of A_f/(½·cellWidth) — mirrors AmrPoisson::boundaryDiag. | |
| template<class Sink > | |
| void | operator() (Index i, Sink &sink) const |
| Emit each face of leaf i as sink(neighbourLeaf, coef=openness·A_f/d_f) — the exact enumeration (axis-major, dir −1 then +1, 2:1 sub-faces in bit order) and weights of forEachFaceNeighbor. | |
Static Public Member Functions | |
| static int | faceIndex (int axis, int dir) |
Public Attributes | |
| View_t | ov |
| device octree (codes/levels/locate) | |
| View< const double > | alpha |
| per-leaf·(2·Dim) openness, or empty when !hasOpen | |
| Coord | fineExt [Dim] = {} |
| periodic-wrap modulus per axis | |
| Real | h0 = 1.0 |
| finest cell width | |
| bool | hasOpen = false |
| bool | periodic = true |
| bool | immersedWall = false |
Static Public Attributes | |
| static constexpr int | kFaces = 2 * Dim |
Device-callable reproduction of AmrPoisson's per-cell face walk + geometry.
Trivially copyable (Views are handles, the rest are scalars), so it captures by value into Kokkos kernels. Drives both the CSR emit (operator()) and the per-cell diagonal (cellVolume/bcDiag).
Definition at line 38 of file assembly.hpp.
| using peclet::core::amr::FvFaceEmit< Dim, Bits >::View_t = BlockOctreeView<Dim, Bits> |
Definition at line 39 of file assembly.hpp.
| using peclet::core::amr::FvFaceEmit< Dim, Bits >::M = typename View_t::M |
Definition at line 40 of file assembly.hpp.
| using peclet::core::amr::FvFaceEmit< Dim, Bits >::Code = typename View_t::Code |
Definition at line 41 of file assembly.hpp.
| using peclet::core::amr::FvFaceEmit< Dim, Bits >::Coord = typename View_t::Coord |
Definition at line 42 of file assembly.hpp.
Definition at line 53 of file assembly.hpp.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::openness().
|
inline |
Definition at line 56 of file assembly.hpp.
References peclet::core::amr::FvFaceEmit< Dim, Bits >::alpha, peclet::core::amr::FvFaceEmit< Dim, Bits >::faceIndex(), peclet::core::amr::FvFaceEmit< Dim, Bits >::hasOpen, and peclet::core::amr::FvFaceEmit< Dim, Bits >::kFaces.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::bcDiag(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::operator()().
|
inline |
Definition at line 61 of file assembly.hpp.
References peclet::core::amr::FvFaceEmit< Dim, Bits >::h0.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::bcDiag(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::coeff().
|
inline |
Definition at line 67 of file assembly.hpp.
References peclet::core::amr::FvFaceEmit< Dim, Bits >::areaOf(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::h0.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::operator()().
|
inline |
Definition at line 71 of file assembly.hpp.
References peclet::core::amr::FvFaceEmit< Dim, Bits >::fineExt.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::operator()().
|
inline |
Definition at line 75 of file assembly.hpp.
References peclet::core::amr::FvFaceEmit< Dim, Bits >::h0, peclet::core::amr::BlockOctreeView< Dim, Bits >::levels, and peclet::core::amr::FvFaceEmit< Dim, Bits >::ov.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::cellVolume().
|
inline |
Definition at line 78 of file assembly.hpp.
References peclet::core::amr::FvFaceEmit< Dim, Bits >::cellWidth().
|
inline |
Σ over leaf i's Dirichlet-wall faces of A_f/(½·cellWidth) — mirrors AmrPoisson::boundaryDiag.
Definition at line 86 of file assembly.hpp.
References peclet::core::amr::FvFaceEmit< Dim, Bits >::areaOf(), peclet::core::amr::BlockOctreeView< Dim, Bits >::codes, peclet::core::amr::FvFaceEmit< Dim, Bits >::fineExt, peclet::core::amr::FvFaceEmit< Dim, Bits >::h0, peclet::core::amr::FvFaceEmit< Dim, Bits >::immersedWall, peclet::core::amr::BlockOctreeView< Dim, Bits >::levels, peclet::core::amr::FvFaceEmit< Dim, Bits >::openness(), peclet::core::amr::FvFaceEmit< Dim, Bits >::ov, and peclet::core::amr::FvFaceEmit< Dim, Bits >::periodic.
|
inline |
Emit each face of leaf i as sink(neighbourLeaf, coef=openness·A_f/d_f) — the exact enumeration (axis-major, dir −1 then +1, 2:1 sub-faces in bit order) and weights of forEachFaceNeighbor.
Definition at line 109 of file assembly.hpp.
References peclet::core::amr::BlockOctreeView< Dim, Bits >::codes, peclet::core::amr::FvFaceEmit< Dim, Bits >::coeff(), peclet::core::amr::FvFaceEmit< Dim, Bits >::fineExt, peclet::core::amr::BlockOctreeView< Dim, Bits >::levels, peclet::core::amr::BlockOctreeView< Dim, Bits >::locate(), peclet::core::amr::FvFaceEmit< Dim, Bits >::openness(), peclet::core::amr::FvFaceEmit< Dim, Bits >::ov, peclet::core::amr::FvFaceEmit< Dim, Bits >::periodic, and peclet::core::amr::FvFaceEmit< Dim, Bits >::wrap().
| View_t peclet::core::amr::FvFaceEmit< Dim, Bits >::ov |
device octree (codes/levels/locate)
Definition at line 44 of file assembly.hpp.
Referenced by peclet::core::amr::assembleFv(), peclet::core::amr::assembleMomentum(), peclet::core::amr::FvFaceEmit< Dim, Bits >::bcDiag(), peclet::core::amr::FvFaceEmit< Dim, Bits >::cellWidth(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::operator()().
| View<const double> peclet::core::amr::FvFaceEmit< Dim, Bits >::alpha |
per-leaf·(2·Dim) openness, or empty when !hasOpen
Definition at line 45 of file assembly.hpp.
Referenced by peclet::core::amr::assembleFv(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::openness().
| Coord peclet::core::amr::FvFaceEmit< Dim, Bits >::fineExt[Dim] = {} |
periodic-wrap modulus per axis
Definition at line 46 of file assembly.hpp.
Referenced by peclet::core::amr::assembleFv(), peclet::core::amr::assembleMomentum(), peclet::core::amr::FvFaceEmit< Dim, Bits >::bcDiag(), peclet::core::amr::FvFaceEmit< Dim, Bits >::operator()(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::wrap().
| Real peclet::core::amr::FvFaceEmit< Dim, Bits >::h0 = 1.0 |
finest cell width
Definition at line 47 of file assembly.hpp.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::areaOf(), peclet::core::amr::assembleFv(), peclet::core::amr::assembleMomentum(), peclet::core::amr::FvFaceEmit< Dim, Bits >::bcDiag(), peclet::core::amr::FvFaceEmit< Dim, Bits >::cellWidth(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::coeff().
| bool peclet::core::amr::FvFaceEmit< Dim, Bits >::hasOpen = false |
Definition at line 48 of file assembly.hpp.
Referenced by peclet::core::amr::assembleFv(), peclet::core::amr::assembleMomentum(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::openness().
| bool peclet::core::amr::FvFaceEmit< Dim, Bits >::periodic = true |
Definition at line 49 of file assembly.hpp.
Referenced by peclet::core::amr::assembleFv(), peclet::core::amr::assembleMomentum(), peclet::core::amr::FvFaceEmit< Dim, Bits >::bcDiag(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::operator()().
| bool peclet::core::amr::FvFaceEmit< Dim, Bits >::immersedWall = false |
Definition at line 50 of file assembly.hpp.
Referenced by peclet::core::amr::assembleFv(), and peclet::core::amr::FvFaceEmit< Dim, Bits >::bcDiag().
|
staticconstexpr |
Definition at line 52 of file assembly.hpp.
Referenced by peclet::core::amr::FvFaceEmit< Dim, Bits >::openness().