80#ifndef RIZER_HYDRO_STEP_H
81#define RIZER_HYDRO_STEP_H
169 std::vector<double>
Tg;
170 std::vector<double>
Te;
171 std::vector<double>
Y;
Outer-boundary vocabulary for the 1D radial channel: which treatment is applied, the primitive state ...
The equation-of-state seam of the hydrodynamic sub-step: the abstract accessor hydroStep() closes its...
Equation-of-state and caloric accessor injected into hydroStep().
std::function< NodeState( double r_ghost, double t, bool is_inner_face, const NodeState &interior)> GhostStateFn
Fill the outer ghost cell from a closed-form solution, a fixed end state, or a mirror of the interior...
OuterBc
Outer-boundary treatment (NUMERICS.md section 7).
@ AmbientGhost
Fix rho, u_r, p, T and Y_s to ambient.
HydroStepResult hydroStep(const HydroStepConfig &cfg, HydroStepState &state)
Advance state over one Strang half-step of cfg.dt_total.
Geometry, boundary treatment and stepping controls for one call.
const ThermoAccessor * thermo
Injected equation of state; must outlive the call.
bool refuse_above_cfl
With n_subcycles set, refuse a sub-cycle longer than dt_CFL instead of taking it.
std::vector< double > r_node
Node radii [m], length N, ascending.
int electron_index
Index of the electron species in Y, or -1 for none.
std::vector< double > r_face
Face radii [m], length N+1, ascending.
double t0
Time at the start of the call [s], passed to the thermo accessor and the ghost-state callback.
double cfl
Courant number applied to the CFL bound [-], in (0, 1].
double dt_total
Total interval this call covers [s] – one Strang half-step.
double p_amb
Ambient pressure [Pa] and temperature [K].
GhostStateFn ghost_state
Optional test-only ghost fill; overrides outer_bc_mode when set.
std::vector< double > V_cell
Cell "volumes", cross-sectional area per unit axial length [m^2], length N.
std::vector< double > Y_amb
Ambient composition [-], length K.
std::size_t n_subcycles
Fixed number of equal sub-cycles of dt_total / n_subcycles; 0 means CFL-limited instead.
bool cylindrical_source
Apply the cylindrical geometric source p_i*dr_i/V_i of equation (13).
Diagnostics from one call, enough to assert NUMERICS.md section "Positivity under a strong rarefactio...
std::size_t n_subcycles_used
M actually taken [-].
double rho_min
Min rho over every node and sub-cycle [kg/m^3].
double boundary_mass_out
Mass that left the domain across both boundary faces over the whole call, per unit axial length and p...
double boundary_total_energy_out
TOTAL energy that left the domain across both boundary faces over the whole call, per unit axial leng...
std::vector< double > boundary_species_mass_out
The same, per species [kg/m/rad], length K.
double boundary_electron_energy_out
Electron-pool INTERNAL energy that left the domain across both boundary faces over the whole call,...
double dt_cfl
CFL bound at the initial state [s].
double p_min
Min total p over every node and sub-cycle [Pa].
double pressure_work_electron
Compression work done BY the electron pool over the whole call, per unit axial length and per radian ...
Per-node primitive state, advanced in place.
std::vector< double > rho
Mass density [kg/m^3], length N.
std::vector< double > u_r
Radial velocity [m/s], length N.
std::size_t n_species
K [-].
std::vector< double > Te
Electron temperature [K], length N.
std::vector< double > Y
Mass fractions [-], row-major [N, K].
std::vector< double > Tg
Heavy-pool temperature [K], length N.