RoeFlux Struct ReferenceΒΆ

adc_cpp: pops::RoeFlux Struct 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::RoeFlux Struct Reference

RoeFlux: Roe linearization + Harten entropy fix (acoustic waves). More...

#include <numerical_flux.hpp>

+ Collaboration diagram for pops::RoeFlux:

Public Member Functions

template<class Model >
POPS_HD Model::State operator() (const Model &m, const typename Model::State &UL, const Aux &AL, const typename Model::State &UR, const Aux &AR, int dir) const
 

Detailed Description

RoeFlux: Roe linearization + Harten entropy fix (acoustic waves).

GENERIC when the model satisfies HasRoeDissipation: F = 1/2 (F_L + F_R) - 1/2 d with the dissipation d = |A_roe| (U_R - U_L) (linearization, eigenstructure and entropy fix) supplied by the model, no Euler assumption. Otherwise falls back to a canonical Euler 2D ideal-gas path: FULL eigenwave decomposition F_R - F_L = A_roe (U_R - U_L) exactly, gamma-1 derived from the current state (ideal-gas EOS), Harten entropy fix eps = 0.1*c (see kRoeEntropyFixFraction) on the acoustic waves, requiring model.pressure. std::sqrt used for the Roe average (device-clean under Kokkos/nvcc). POPS_HD. INVARIANT: the n_vars == 4 / ideal-gas assumption applies ONLY to the Euler fallback branch.

Member Function Documentation

◆ operator()()

template<class Model >
POPS_HD Model::State pops::RoeFlux::operator() ( const Model &  m,
const typename Model::State &  UL,
const Aux AL,
const typename Model::State &  UR,
const Aux AR,
int  dir 
) const
inline

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