15#ifndef RIZER_PLASMA_CHANNEL_SOLVER_H
16#define RIZER_PLASMA_CHANNEL_SOLVER_H
165 std::vector<double>
t;
167 std::vector<double>
r;
169 std::vector<double>
Tg;
171 std::vector<double>
Te;
173 std::vector<double>
ne;
175 std::vector<double>
Y;
180 std::vector<double>
p;
271 std::vector<double>
Rp;
273 std::vector<double>
Vp;
274 std::vector<double>
I;
275 std::vector<double>
E;
The transient two-temperature radial channel as a Cantera Domain1D: per-node source terms from Plasma...
ChannelHistory solveChannelTransient(const ChannelOptions &opts)
Build a PlasmaChannel1D from opts.cfg, advance it from t=0 to [s] with the stiff BDF backend,...
double pressure_work_electron
std::vector< double > I
Total current V_p/R_p [A].
std::vector< double > Vp
Plasma terminal voltage [V].
std::vector< double > ne
Species mass fractions [-], row-major [nframes, npts, nsp].
std::vector< double > E
Field V_p/gap [V/m].
std::vector< double > Rp_state
Resistance of the recorded state [Ohm].
std::size_t npts
Number of radial grid points [-].
std::vector< double > boundary_species_mass_out
The same, per species [kg/m/rad], length nsp, with what species diffusion carries through the wall gh...
std::vector< double > u_r
Species names, length nsp (order matches the Y axis).
std::vector< double > t
< Recorded times [s], length nframes
std::vector< double > solver_err_test_fails
std::vector< double > solver_last_order
double boundary_conduction_energy_out
What conduction (both pools) and species diffusion moved out through the wall ghost face over the run...
std::vector< double > p
Radial velocity [m/s], row-major [nframes, npts].
std::vector< std::string > species
std::size_t nsp
Number of species [-].
std::vector< double > solver_jac_evals
std::vector< double > Y
Mass density [kg/m^3], row-major [nframes, npts].
std::vector< double > solver_rhs_evals
std::vector< double > r
Gas temperature [K], row-major [nframes, npts].
std::vector< double > solver_lin_setups
std::size_t nframes
Number of recorded time frames [-].
std::vector< double > solver_steps
Per-frame CVODE counters, length nframes; the t=0 entry is zero, since nothing has been integrated ye...
double boundary_total_energy_out
std::vector< double > Rp
Circuit history, length nframes when ChannelOptions::plasma_voltage is set and empty otherwise.
std::vector< double > Tg
Electron temperature [K], row-major [nframes, npts].
std::vector< double > Te
Electron number density [1/m^3], row-major [nframes, npts].
std::vector< double > rho
Total pressure [Pa], row-major [nframes, npts].
double boundary_mass_out
What the hydrodynamic sub-step moved across the domain boundary, accumulated over every half-step of ...
std::vector< double > solver_nonlin_conv_fails
double boundary_electron_energy_out
double boundary_diffusion_energy_out
std::vector< double > solver_lin_rhs_evals
RHS calls made by the linear solver itself, forming the banded Jacobian by difference quotients.
double rtol
Error tolerances for the stiff BDF backend, which sub-steps internally until it meets them,...
std::function< double(double, double)> plasma_voltage
Closes the electrical circuit on the channel's own resistance, given and returning the plasma termin...
int loglevel
Diagnostic verbosity [-] (0 = silent; >0 prints progress).
std::size_t n_threads
Threads advancing the per-node systems of independent_nodes.
double atol_T
Absolute tolerance on Tg and Te [K].
double gap
Inter-electrode gap [m].
std::size_t n_steps
Number of output steps [-] (dt*n_steps = total time [s]).
PlasmaChannelConfig cfg
Domain physics + initial/boundary state.
std::vector< double > Et_t
Field-vs-time schedule : Et_t [s] strictly increasing, Et_v [V/m] the field at those times.
bool independent_nodes
How the reaction sub-step is partitioned.
std::vector< double > Et_v
double atol_Y
Absolute tolerance on each Y_k [-].
double dt
Output cadence / initial step [s].
std::size_t record_every
Record a frame every N output steps [-].
Everything PlasmaChannel1D needs to build itself.