|
core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
Device-callable reproduction of AmrCutCell::assembleOperator's per-cell row + diagonal. More...
#include <momentum_assembly.hpp>
Public Member Functions | |
| double | cellVolume (Index i) const |
| template<class Sink > | |
| void | operator() (Index i, Sink &sink) const |
| Emit the off-diagonal entries of row i (S1 fill order): ξ-overlay for cut cells, −μ·invV·(a·c) for regular fluid, then the folded implicit-FOU advection — exactly assembleOperator's order. | |
| double | diag (Index i) const |
| Diagonal of row i: 1 (solid), AC (cut), or idiag + μ·invV·Σ(a·c) (regular), plus folded advection. | |
Public Attributes | |
| FvFaceEmit< 3, Bits > | geom |
| α=1 (hasOpen=false) C/F-aware ∇² traversal for regular fluid cells | |
| View< const char > | fluid |
| View< const char > | cut |
| View< const double > | AC |
| View< const double > | off |
| View< const double > | rscale |
| off is n·6 (ξ-overlay), AC/rscale are n | |
| View< const Index > | nbr6 |
| n·6 periodic face-neighbour indices (cut-stencil order) | |
| View< const double > | advDiag |
| View< const double > | advCoef |
| View< const Index > | advStart |
| View< const Index > | advNbr |
| double | idiag = 0.0 |
| double | mu = 1.0 |
| bool | hasAdv = false |
| bool | scaleAdv = false |
Device-callable reproduction of AmrCutCell::assembleOperator's per-cell row + diagonal.
Holds the staged stencil/advection device arrays + the shared α=1 ∇² geometry (FvFaceEmit). Trivially copyable.
Definition at line 60 of file momentum_assembly.hpp.
|
inline |
Definition at line 70 of file momentum_assembly.hpp.
References peclet::core::amr::MomFaceEmit< Bits >::geom.
|
inline |
Emit the off-diagonal entries of row i (S1 fill order): ξ-overlay for cut cells, −μ·invV·(a·c) for regular fluid, then the folded implicit-FOU advection — exactly assembleOperator's order.
Definition at line 75 of file momentum_assembly.hpp.
References peclet::core::amr::MomFaceEmit< Bits >::advCoef, peclet::core::amr::MomFaceEmit< Bits >::advNbr, peclet::core::amr::MomFaceEmit< Bits >::advStart, peclet::core::amr::MomFaceEmit< Bits >::cut, peclet::core::amr::MomFaceEmit< Bits >::fluid, peclet::core::amr::MomFaceEmit< Bits >::geom, peclet::core::amr::MomFaceEmit< Bits >::hasAdv, peclet::core::amr::MomFaceEmit< Bits >::mu, peclet::core::amr::MomFaceEmit< Bits >::nbr6, peclet::core::amr::MomFaceEmit< Bits >::off, peclet::core::amr::MomFaceEmit< Bits >::rscale, and peclet::core::amr::MomFaceEmit< Bits >::scaleAdv.
|
inline |
Diagonal of row i: 1 (solid), AC (cut), or idiag + μ·invV·Σ(a·c) (regular), plus folded advection.
Definition at line 102 of file momentum_assembly.hpp.
References peclet::core::amr::MomFaceEmit< Bits >::AC, peclet::core::amr::MomFaceEmit< Bits >::advDiag, peclet::core::amr::MomFaceEmit< Bits >::cut, peclet::core::amr::MomFaceEmit< Bits >::fluid, peclet::core::amr::MomFaceEmit< Bits >::geom, peclet::core::amr::MomFaceEmit< Bits >::hasAdv, peclet::core::amr::MomFaceEmit< Bits >::idiag, peclet::core::amr::MomFaceEmit< Bits >::mu, peclet::core::amr::MomFaceEmit< Bits >::rscale, and peclet::core::amr::MomFaceEmit< Bits >::scaleAdv.
| FvFaceEmit<3, Bits> peclet::core::amr::MomFaceEmit< Bits >::geom |
α=1 (hasOpen=false) C/F-aware ∇² traversal for regular fluid cells
Definition at line 61 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::cellVolume(), peclet::core::amr::MomFaceEmit< Bits >::diag(), and peclet::core::amr::MomFaceEmit< Bits >::operator()().
Definition at line 62 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag(), and peclet::core::amr::MomFaceEmit< Bits >::operator()().
Definition at line 62 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag(), and peclet::core::amr::MomFaceEmit< Bits >::operator()().
Definition at line 63 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag().
Definition at line 63 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::operator()().
off is n·6 (ξ-overlay), AC/rscale are n
Definition at line 63 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag(), and peclet::core::amr::MomFaceEmit< Bits >::operator()().
n·6 periodic face-neighbour indices (cut-stencil order)
Definition at line 64 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::operator()().
Definition at line 65 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag().
Definition at line 65 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::operator()().
Definition at line 66 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::operator()().
Definition at line 66 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::operator()().
| double peclet::core::amr::MomFaceEmit< Bits >::idiag = 0.0 |
Definition at line 67 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag().
| double peclet::core::amr::MomFaceEmit< Bits >::mu = 1.0 |
Definition at line 67 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag(), and peclet::core::amr::MomFaceEmit< Bits >::operator()().
| bool peclet::core::amr::MomFaceEmit< Bits >::hasAdv = false |
Definition at line 68 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag(), and peclet::core::amr::MomFaceEmit< Bits >::operator()().
| bool peclet::core::amr::MomFaceEmit< Bits >::scaleAdv = false |
Definition at line 68 of file momentum_assembly.hpp.
Referenced by peclet::core::amr::MomFaceEmit< Bits >::diag(), and peclet::core::amr::MomFaceEmit< Bits >::operator()().