EbFaceFluxXKernel< Limiter, NumericalFlux, Model, LevelSet > Struct Template ReferenceΒΆ

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

FACE FLUX kernel for x (dir 0) of the EB transport: numerical flux at the face between (i-1, j) and (i, j), WEIGHTED by the aperture alpha_x of that face. More...

#include <operator.hpp>

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

Public Member Functions

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

Public Attributes

Model model
 
ConstArray4 u
 
ConstArray4 ax
 
Array4 fx
 
Real dx
 
Geometry geom
 
LevelSet ls
 
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, class LevelSet>
struct pops::detail::EbFaceFluxXKernel< Limiter, NumericalFlux, Model, LevelSet >

FACE FLUX kernel for x (dir 0) of the EB transport: numerical flux at the face between (i-1, j) and (i, j), WEIGHTED by the aperture alpha_x of that face.

We store alpha_x * Fx so the EB divergence is a simple difference (like the r weighting of the polar operator). NAMED FUNCTOR (device-clean).

The aperture of face i is computed FROM THE SIDE of the active cell: if (i, j) is active, we take the aperture seen from (i, j) toward its neighbor (i-1); if (i, j) is inactive but (i-1, j) is active, we take the aperture seen from (i-1) toward (i). If BOTH are inactive, the face is outside the active domain (alpha = 0). This symmetry guarantees the uniqueness of alpha on the shared face (conservation).

Member Function Documentation

◆ operator()()

template<class Limiter , class NumericalFlux , class Model , class LevelSet >
POPS_HD void pops::detail::EbFaceFluxXKernel< Limiter, NumericalFlux, Model, LevelSet >::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 , class LevelSet >
ConstArray4 pops::detail::EbFaceFluxXKernel< Limiter, NumericalFlux, Model, LevelSet >::ax

◆ dx

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

◆ fx

template<class Limiter , class NumericalFlux , class Model , class LevelSet >
Array4 pops::detail::EbFaceFluxXKernel< Limiter, NumericalFlux, Model, LevelSet >::fx

◆ geom

template<class Limiter , class NumericalFlux , class Model , class LevelSet >
Geometry pops::detail::EbFaceFluxXKernel< Limiter, NumericalFlux, Model, LevelSet >::geom

◆ lim

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

◆ ls

template<class Limiter , class NumericalFlux , class Model , class LevelSet >
LevelSet pops::detail::EbFaceFluxXKernel< Limiter, NumericalFlux, Model, LevelSet >::ls

◆ model

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

◆ nflux

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

◆ pos_comp

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

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

◆ pos_floor

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

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

◆ recon_prim

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

◆ u

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

The documentation for this struct was generated from the following file:
  • include/pops/numerics/spatial/embedded_boundary/operator.hpp