rizer.cantera_ext
C++ Cantera 1-D plasma extension (custom Domain1D models and solvers)
Loading...
Searching...
No Matches
HydroStep.h File Reference

Standalone explicit hydrodynamic sub-stepper for the 1D radial two-temperature plasma channel: the "A" half of the Strang split described in NUMERICS.md section 4.2. More...

#include "models/nrp/BoundaryConditions.h"
#include "thermo/ThermoAccessor.h"
#include <cstddef>
#include <vector>

Go to the source code of this file.

Classes

struct  rizer::HydroStepConfig
 Geometry, boundary treatment and stepping controls for one call. More...
struct  rizer::HydroStepState
 Per-node primitive state, advanced in place. More...
struct  rizer::HydroStepResult
 Diagnostics from one call, enough to assert NUMERICS.md section "Positivity under a strong rarefaction", case 19, without re-deriving the sub-cycling in the test. More...

Namespaces

namespace  rizer

Functions

HydroStepResult rizer::hydroStep (const HydroStepConfig &cfg, HydroStepState &state)
 Advance state over one Strang half-step of cfg.dt_total.

Detailed Description

Standalone explicit hydrodynamic sub-stepper for the 1D radial two-temperature plasma channel: the "A" half of the Strang split described in NUMERICS.md section 4.2.

It advances ONLY the hyperbolic terms of the reduced system of PHYSICS.md section 5.4 – continuity, radial momentum, species advection and the two pool energies – over one half-step, sub-cycled at the acoustic CFL limit. It touches no chemistry, no Joule heating and no electron-heavy exchange; all three belong to the reaction sub-step (NUMERICS.md section 6), which keeps running unchanged inside Cantera's Domain1D/Sim1D machinery. It carries no diffusive or conductive flux either: that physics lives in RadialDiffusion.h and is switched on and off by the kappa, kappa_e and D_species config fields.

The conservative system advanced here, NUMERICS.md equation (7) with the stiff sources left to the reaction sub-step, sharing the shape dU/dt + (1/r) d(r F)/dr = S, is

\[ \vec U = \left[ \rho,\; \rho Y_s,\; \rho u_r,\; \rho E,\; \rho_\mathrm{e} e_\mathrm{e} \right]^T \]

\[ \vec F = \left[ \rho u_r,\; \rho Y_s u_r,\; \rho u_r^2 + p,\; u_r(\rho E + p),\; \rho_\mathrm{e} e_\mathrm{e} u_r \right]^T \]

\[ \vec S = \left[ 0,\; 0,\; \frac{p}{r},\; 0,\; -p_\mathrm{e}\vec\nabla\cdot\vec u \right]^T \]

where \(\rho E\) is the mixture TOTAL energy. The heavy pool has no row and is recovered from it by subtracting the kinetic and electron energies, which gives it -p_H div(u) exactly.

Assumptions and domain of validity

  • Inviscid, no body force, quasi-neutral (PHYSICS.md section 2.1).
  • The two pool energies stay SEPARATE. One combined energy would lose the two-temperature structure the model exists to represent.
  • The species rows carry no chemical source here, and the two energy rows carry no chemical source in this conservative formulation: each \(e_s\) already includes its species' formation energy, so repeating the chemistry on the right would double-count the heat release (PHYSICS.md appendix A.2).
  • First order in space (Rusanov flux) and in time (forward Euler). The two are matched deliberately; see NUMERICS.md section 5.3 for what an SSP/MUSCL upgrade costs and why it must land as one piece.
  • The outer boundary sits beyond where the front reaches within the simulated window, so the far field really is the ambient state. That is what makes OuterBc::AmbientGhost the default and the accurate choice here (NUMERICS.md section 7).
  • Subsonic outflow when outer_bc_mode is PressureOutlet. Inflow and the two supersonic regimes change the characteristic count in different directions and are rejected rather than silently mistreated.

Two groups of declarations the sub-step needs live beside it rather than in it, so that a caller can name one without pulling in the other: thermo/ThermoAccessor.h for the equation-of-state seam, whose implementations are the rest of thermo/, and BoundaryConditions.h for the outer-boundary treatment, the ghost state and the ghost callback.

Definition in file HydroStep.h.