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

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

IMEX advance: per substep, EXPLICIT half-step (source-free transport) + stiff IMPLICIT source. More...

#include <block_builder.hpp>

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

Public Member Functions

void operator() (MultiFab &U, Real dt, int n) const
 

Public Attributes

Model m
 
GridContext ctx
 
bool recon_prim
 
ImplicitMask< Model::n_vars > mask {}
 
NewtonOptions nopts {}
 
NewtonReportnreport = nullptr
 
Real pos_floor = Real(0)
 Zhang-Shu positivity limiter (<= 0: inactive)
 

Detailed Description

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

IMEX advance: per substep, EXPLICIT half-step (source-free transport) + stiff IMPLICIT source.

mask: implicit mask CARRIED BY THE BLOCK (overrides the model default is_implicit), resolved once when the block is added against its variable names/roles. Inactive mask (default) -> backward_euler falls back on model_is_implicit -> advance bit-identical to the historical one.

Member Function Documentation

◆ operator()()

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

Member Data Documentation

◆ ctx

template<class Limiter , class Flux , class Model >
GridContext pops::detail::AdvanceImex< Limiter, Flux, Model >::ctx

◆ m

template<class Limiter , class Flux , class Model >
Model pops::detail::AdvanceImex< Limiter, Flux, Model >::m

◆ mask

template<class Limiter , class Flux , class Model >
ImplicitMask<Model::n_vars> pops::detail::AdvanceImex< Limiter, Flux, Model >::mask {}

◆ nopts

template<class Limiter , class Flux , class Model >
NewtonOptions pops::detail::AdvanceImex< Limiter, Flux, Model >::nopts {}

◆ nreport

template<class Limiter , class Flux , class Model >
NewtonReport* pops::detail::AdvanceImex< Limiter, Flux, Model >::nreport = nullptr

◆ pos_floor

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

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

◆ recon_prim

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

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