include/pops/numerics/spatial/operators/masked_operator.hpp File ReferenceΒΆ

adc_cpp: 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 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.