BlockRhsEvalEb< Limiter, Flux, Model > Struct Template ReferenceΒΆ

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

CUT-CELL / EB transport residual (CutCell mode): fill_ghosts then assemble_rhs_eb on the level set of the System embedded boundary (read via eb_domain, pointer to Impl::eb_domain_, stable address). More...

#include <block_builder.hpp>

+ Collaboration diagram for pops::detail::BlockRhsEvalEb< Limiter, Flux, Model >:

Public Member Functions

void operator() (MultiFab &U, MultiFab &R) const
 

Public Attributes

Model model
 
const GridContextctx
 
const DiscDomaineb_domain
 
bool recon_prim
 
Real pos_floor = Real(0)
 Zhang-Shu positivity limiter (<= 0: inactive, bit-identical)
 

Detailed Description

template<class Limiter, class Flux, class Model>
struct pops::detail::BlockRhsEvalEb< Limiter, Flux, Model >

CUT-CELL / EB transport residual (CutCell mode): fill_ghosts then assemble_rhs_eb on the level set of the System embedded boundary (read via eb_domain, pointer to Impl::eb_domain_, stable address).

The device-callable level set is built HERE on the HOST (detail::disc_level_set(*eb_domain) -> DiscLevelSet, a NAMED FUNCTOR capturing three doubles BY VALUE) and passed BY VALUE to assemble_rhs_eb: the device kernel therefore receives NO std::function, it stays device-clean (cf. spatial_operator_eb.hpp). The descriptor is a DiscDomain (the built-in instance of the level-set contract, numerics/embedded_boundary.hpp).

Member Function Documentation

◆ operator()()

template<class Limiter , class Flux , class Model >
void pops::detail::BlockRhsEvalEb< Limiter, Flux, Model >::operator() ( MultiFab U,
MultiFab R 
) const
inline
+ Here is the call graph for this function:

Member Data Documentation

◆ ctx

template<class Limiter , class Flux , class Model >
const GridContext* pops::detail::BlockRhsEvalEb< Limiter, Flux, Model >::ctx

◆ eb_domain

template<class Limiter , class Flux , class Model >
const DiscDomain* pops::detail::BlockRhsEvalEb< Limiter, Flux, Model >::eb_domain

◆ model

template<class Limiter , class Flux , class Model >
Model pops::detail::BlockRhsEvalEb< Limiter, Flux, Model >::model

◆ pos_floor

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

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

◆ recon_prim

template<class Limiter , class Flux , class Model >
bool pops::detail::BlockRhsEvalEb< Limiter, Flux, Model >::recon_prim

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