|
| template<unsigned Bits, class Ent , class FluidFn > |
| void | peclet::amr::detail::cfAppendStencil (const AmrPoisson< 3, Bits > &ap, std::vector< Ent > &out, Index coarse, Index fine, int axis, double scale, FluidFn &&fluidOk, CfScheme scheme, const Ent &proto=Ent{}) |
| | Append the scheme's (coarse* − coarse_raw) substitution stencil for ONE directed C/F sub-face to out, scaled.
|
| |
| template<unsigned Bits, class Ent , class FluidFn > |
| void | peclet::amr::detail::cfAppendFaceValueDelta (const AmrPoisson< 3, Bits > &ap, std::vector< Ent > &out, Index coarse, Index fine, int axis, double dist, double scale, FluidFn &&fluidOk, CfScheme scheme, const Ent &proto=Ent{}) |
| | THE face-value delta for ONE directed 2:1 sub-face, ×scale — the single source of truth shared by the divergence RHS and the advecting face field, so that D_std(Δuf) ≡ Δ_cfDiv holds entry by entry (docs/amr_cf_flux_gate.md §4, rule (I)).
|
| |
| template<class Ent , class Csr > |
| void | peclet::amr::detail::compactCsr (const std::vector< std::vector< Ent > > &per, Csr &out, Index n) |
| |
| template<unsigned Bits, class RowFn , class FluidFn > |
| CfCsr | peclet::amr::buildCfLapDelta (const AmrPoisson< 3, Bits > &ap, const BlockOctree< 3, Bits > &t, double factor, RowFn &&rowOk, FluidFn &&fluidOk, CfScheme scheme) |
| | (∇²_scheme − ∇²_std) as a scalar CSR, ×factor (pass μ for the momentum deferred-correction RHS, 1 for a pressure-matrix delta): row i gains scale = factor·invV·(αA/d)·(±1) per directed C/F face (+ for a coarser neighbour's substituted value, − for our own value substituted at a finer sub-face) — the same construction as Multigrid's quad CSR.
|
| |
| template<unsigned Bits, class RegularFn , class FluidFn > |
| CfCompCsr | peclet::amr::buildCfDivDelta (const AmrPoisson< 3, Bits > &ap, const BlockOctree< 3, Bits > &t, RegularFn &®ularOk, FluidFn &&fluidOk, CfScheme scheme) |
| | (D_scheme − D_std) for the face-average divergence div_i = invV·Σ α·A·dir·(face value).
|
| |
| template<unsigned Bits, class RegularFn , class FluidFn > |
| std::array< CfCsr, 3 > | peclet::amr::buildCfGradDelta (const AmrPoisson< 3, Bits > &ap, const BlockOctree< 3, Bits > &t, RegularFn &®ularOk, FluidFn &&fluidOk, CfScheme scheme) |
| | (G_scheme − G_std) for the ABC cell gradient gradOf/grad3.
|
| |
| template<unsigned Bits, class RegularFn , class FluidFn > |
| CfUfDelta | peclet::amr::buildCfUfDelta (const AmrPoisson< 3, Bits > &ap, const BlockOctree< 3, Bits > &t, RegularFn &®ularOk, FluidFn &&fluidOk, CfScheme scheme) |
| |
| template<unsigned Bits, class RegularFn , class FluidFn > |
| Index | peclet::amr::countCfCutFaces (const AmrPoisson< 3, Bits > &ap, const BlockOctree< 3, Bits > &t, RegularFn &®ularOk, FluidFn &&fluidOk) |
| | The C/F CENSUS (docs/amr_cf_flux_gate.md §6.5): how many OWNED forEachFaceFull slots (i, j) are a 2:1 sub-face between two FLUID cells on which the per-face gate WITHHOLDS the quadratic value, i.e.
|
| |
| void | peclet::amr::cfApplyHost (const CfCsr &c, const std::vector< double > &f, std::vector< double > &out) |
| | out(i) += Σ coef·f(slot) (the scalar overlay: momentum ∇² delta, gradient delta per axis).
|
| |
| void | peclet::amr::cfApplyCompHost (const CfCompCsr &c, const std::array< std::vector< double >, 3 > &u, std::vector< double > &out) |
| | out(i) += Σ coef·u[comp](slot) (the divergence overlay).
|
| |
| CfCsrDev | peclet::amr::uploadCfCsr (const CfCsr &h, const char *name) |
| |
| CfCompCsrDev | peclet::amr::uploadCfCompCsr (const CfCompCsr &h, const char *name) |
| |
| void | peclet::amr::cfApply (const CfCsrDev &c, View< const double > f, View< double > out) |
| | out(i) += Σ coef·f(slot).
|
| |
| void | peclet::amr::cfApplyComp (const CfCompCsrDev &c, View< const double > u0, View< const double > u1, View< const double > u2, View< double > out) |
| | out(i) += Σ coef·u[comp](slot).
|
| |