AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model > Struct Template ReferenceΒΆ

adc_cpp: pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model > Struct Template 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
pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model > Struct Template Reference

AssembleRhsMaskedKernel: variant of AssembleRhsKernel AWARE of a domain mask. More...

#include <masked_operator.hpp>

+ Collaboration diagram for pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >:

Public Member Functions

POPS_HD void operator() (int i, int j) const
 

Public Attributes

Model model
 
ConstArray4 u
 
ConstArray4 ax
 
ConstArray4 mask
 
Array4 r
 
Real dx
 
Real dy
 
Limiter lim
 
NumericalFlux nflux
 
bool recon_prim
 
Real pos_floor = Real(0)
 Zhang-Shu positivity limiter (<= 0: inactive, bit-identical)
 
int pos_comp = 0
 component of the Density role (resolved by the host caller)
 

Detailed Description

template<class Limiter, class NumericalFlux, class Model>
struct pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >

AssembleRhsMaskedKernel: variant of AssembleRhsKernel AWARE of a domain mask.

Inactive cell -> residual 0 (not advanced by the caller). Active cell -> R = -div Fhat + S, BUT the normal flux of a face whose neighbor cell is INACTIVE is set to ZERO (FV wall: zero normal flux at the active/inactive boundary) -> mass conservation over the active sub-domain. Named functor (same device contract as AssembleRhsKernel). POPS_HD.

NB: without a diffusive term (transport-only models); a DiffusiveModel keeps its UNmasked Laplacian here (separate refinement – the conservative mask targets the hyperbolic flux only).

Member Function Documentation

◆ operator()()

template<class Limiter , class NumericalFlux , class Model >
POPS_HD void pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::operator() ( int  i,
int  j 
) const
inline
+ Here is the call graph for this function:

Member Data Documentation

◆ ax

template<class Limiter , class NumericalFlux , class Model >
ConstArray4 pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::ax

◆ dx

template<class Limiter , class NumericalFlux , class Model >
Real pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::dx

◆ dy

template<class Limiter , class NumericalFlux , class Model >
Real pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::dy

◆ lim

template<class Limiter , class NumericalFlux , class Model >
Limiter pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::lim

◆ mask

template<class Limiter , class NumericalFlux , class Model >
ConstArray4 pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::mask

◆ model

template<class Limiter , class NumericalFlux , class Model >
Model pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::model

◆ nflux

template<class Limiter , class NumericalFlux , class Model >
NumericalFlux pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::nflux

◆ pos_comp

template<class Limiter , class NumericalFlux , class Model >
int pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::pos_comp = 0

component of the Density role (resolved by the host caller)

◆ pos_floor

template<class Limiter , class NumericalFlux , class Model >
Real pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::pos_floor = Real(0)

Zhang-Shu positivity limiter (<= 0: inactive, bit-identical)

◆ r

template<class Limiter , class NumericalFlux , class Model >
Array4 pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::r

◆ recon_prim

template<class Limiter , class NumericalFlux , class Model >
bool pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::recon_prim

◆ u

template<class Limiter , class NumericalFlux , class Model >
ConstArray4 pops::detail::AssembleRhsMaskedKernel< Limiter, NumericalFlux, Model >::u

The documentation for this struct was generated from the following file: