SourceFreeModel< M > Struct Template ReferenceΒΆ

adc_cpp: pops::SourceFreeModel< M > 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

SourceFreeModel<M>: adapter that cancels the source of M (explicit IMEX half-step). More...

#include <state_access.hpp>

+ Collaboration diagram for pops::SourceFreeModel< M >:

Public Types

using State = typename M::State
 
using Aux = typename M::Aux
 

Public Member Functions

POPS_HD State flux (const State &u, const Aux &a, int dir) const
 
POPS_HD Real max_wave_speed (const State &u, const Aux &a, int dir) const
 
POPS_HD State source (const State &, const Aux &) const
 
POPS_HD Real elliptic_rhs (const State &u) const
 
POPS_HD Real pressure (const State &u) const
 
POPS_HD void wave_speeds (const State &u, const Aux &a, int dir, Real &smin, Real &smax) const
 
POPS_HD Real contact_speed (const State &ul, const State &ur, Real pl, Real pr, Real sl, Real sr, int dir) const
 
POPS_HD State hllc_star_state (const State &u, Real p, Real s, Real sStar, int dir) const
 
POPS_HD State roe_dissipation (const State &ul, const Aux &al, const State &ur, const Aux &ar, int dir) const
 

Static Public Member Functions

static VariableSet conservative_vars ()
 

Public Attributes

m
 

Static Public Attributes

static constexpr int n_vars = M::n_vars
 
static constexpr int n_aux = aux_comps<M>()
 

Detailed Description

template<class M>
struct pops::SourceFreeModel< M >

SourceFreeModel<M>: adapter that cancels the source of M (explicit IMEX half-step).

Same flux and max_wave_speed as M, but source() always returns the zero state. Used for the EXPLICIT half-step of an IMEX scheme (transport only, -div F); the stiff source is treated implicitly by backward_euler_source. Does not expose diffusivity() so as not to break non-diffusive models. Transparent to the HLL/HLLC contract: forwards pressure and wave_speeds only if M exposes them (requires clause).

Member Typedef Documentation

◆ Aux

template<class M >
using pops::SourceFreeModel< M >::Aux = typename M::Aux

◆ State

template<class M >
using pops::SourceFreeModel< M >::State = typename M::State

Member Function Documentation

◆ conservative_vars()

template<class M >
static VariableSet pops::SourceFreeModel< M >::conservative_vars ( )
inlinestatic

◆ contact_speed()

template<class M >
POPS_HD Real pops::SourceFreeModel< M >::contact_speed ( const State ul,
const State ur,
Real  pl,
Real  pr,
Real  sl,
Real  sr,
int  dir 
) const
inline

◆ elliptic_rhs()

template<class M >
POPS_HD Real pops::SourceFreeModel< M >::elliptic_rhs ( const State u) const
inline

◆ flux()

template<class M >
POPS_HD State pops::SourceFreeModel< M >::flux ( const State u,
const Aux a,
int  dir 
) const
inline

◆ hllc_star_state()

template<class M >
POPS_HD State pops::SourceFreeModel< M >::hllc_star_state ( const State u,
Real  p,
Real  s,
Real  sStar,
int  dir 
) const
inline

◆ max_wave_speed()

template<class M >
POPS_HD Real pops::SourceFreeModel< M >::max_wave_speed ( const State u,
const Aux a,
int  dir 
) const
inline

◆ pressure()

template<class M >
POPS_HD Real pops::SourceFreeModel< M >::pressure ( const State u) const
inline

◆ roe_dissipation()

template<class M >
POPS_HD State pops::SourceFreeModel< M >::roe_dissipation ( const State ul,
const Aux al,
const State ur,
const Aux ar,
int  dir 
) const
inline

◆ source()

template<class M >
POPS_HD State pops::SourceFreeModel< M >::source ( const State ,
const Aux  
) const
inline

◆ wave_speeds()

template<class M >
POPS_HD void pops::SourceFreeModel< M >::wave_speeds ( const State u,
const Aux a,
int  dir,
Real smin,
Real smax 
) const
inline

Member Data Documentation

◆ m

template<class M >
M pops::SourceFreeModel< M >::m

◆ n_aux

template<class M >
constexpr int pops::SourceFreeModel< M >::n_aux = aux_comps<M>()
staticconstexpr

◆ n_vars

template<class M >
constexpr int pops::SourceFreeModel< M >::n_vars = M::n_vars
staticconstexpr

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