include/pops/numerics/spatial/operators/masked_operator.hpp File ReferenceΒΆ
|
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
|
masked_operator.hpp File Reference
Domain-mask-aware Cartesian residual (conservative active sub-domain, OPT-IN). More...
#include <pops/mesh/storage/fab2d.hpp>#include <pops/mesh/execution/for_each.hpp>#include <pops/mesh/geometry/geometry.hpp>#include <pops/mesh/storage/multifab.hpp>#include <pops/numerics/fv/numerical_flux.hpp>#include <pops/numerics/spatial/primitives/face_flux.hpp>#include <pops/numerics/spatial/primitives/positivity.hpp>#include <pops/numerics/spatial/primitives/state_access.hpp>
Include dependency graph for masked_operator.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model > |
| AssembleRhsMaskedKernel: variant of AssembleRhsKernel AWARE of a domain mask. More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Functions | |
| POPS_HD bool | pops::detail::mask_active (const ConstArray4 &mask, int i, int j) |
| Activity indicator of a cell from a 0/1 cell-centered mask (>= 0.5 -> active). | |
| template<class Limiter = NoSlope, class NumericalFlux = RusanovFlux, class Model > | |
| void | pops::assemble_rhs_masked (const Model &model, const MultiFab &U, const MultiFab &aux, const MultiFab &mask, const Geometry &geom, MultiFab &R, bool recon_prim=false, Real pos_floor=Real(0)) |
| assemble_rhs_masked<Limiter,NumericalFlux>: residual R = -div Fhat + S RESTRICTED to a 0/1 cell-centered domain mask (OPT-IN, T2 effort). | |
Detailed Description
Domain-mask-aware Cartesian residual (conservative active sub-domain, OPT-IN).
CONTRACT: the mask-aware variant of assemble_rhs. SEPARATE entry point: the default path (System::step) stays strictly bit-identical as long as it does not call this overload.
- assemble_rhs_masked<Limiter,NumericalFlux>: residual restricted to a 0/1 cell-centered mask.
Convention: mask(i,j) >= 0.5 -> ACTIVE. A face is OPEN only if BOTH adjacent cells are active; otherwise the normal flux is set to ZERO (FV wall), so the mass over the active sub-domain is conserved to machine precision. Reconstruction and the positivity role come from face_flux.hpp / positivity.hpp.
Generated by