|
rizer.cantera_ext
C++ Cantera 1-D plasma extension (custom Domain1D models and solvers)
|
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. | |
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.
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.