rizer.plasma.constant_mass_reactor#
Attributes#
Classes#
ODE system to solve. |
Module Contents#
- rizer.plasma.constant_mass_reactor.logger#
- rizer.plasma.constant_mass_reactor.u#
- class rizer.plasma.constant_mass_reactor.ConstantMassPlasmaReactorOde(plasma: cantera.Solution, plasma_extension: rizer.plasma.plasma_extension.PlasmaExtension, mass: float, initial_radius: float, gap: float, electric_circuit: rizer.electric_circuit.nrp_circuit.NRPCircuit, nb_reflections: int, polytropic_index: float | str, p_ext: float | str)#
ODE system to solve.
The method
__call__()computes the right-hand side of the ODE system defined by \(\frac{dy}{dt} = f(t, y)\), where \(y\) is the state vector.The following assumptions are made:
Constant mass plasma (no mass flow).
Homogeneous plasma (0D reactor).
Cylindrical geometry between two electrodes.
Polytropic expansion of the plasma.
Pressure relaxation towards atmospheric pressure.
No heat losses to the surroundings.
Multi-temperature ideal gas equation of state (Maxwellian distribution for each species, with different temperatures for electrons and heavy species).
Reflections of the generator voltage wave in the electric circuit are considered.
No surface chemistry.
- Parameters:
plasma (
ct.Solution) – Cantera plasma object.plasma_extension (
PlasmaExtension) – Object that extends the plasma object to include properties not currently implemented in Cantera, such as cp_mole.mass (
float) – Mass of the plasma, in kg. Assumed constant.initial_radius (
float) – Initial radius of the plasma, in m. Used to compute the initial volume. Can be updated during the simulation, if the polytropic index is not infinite.gap (
float) – Gap between the two electrodes, in m. Used to compute the volume of the plasma. Assumed constant.electric_circuit (
NRPCircuit) – Electric circuit object. Define the generator and cable properties.nb_reflections (
int) – Number of reflections to take into account in the computation of the plasma voltage.polytropic_index (
floatorstr) – Polytropic index of the plasma expansion. If np.inf, the volume is constant. if “gamma”, the process is isentropic. if 1, the temperature is constant.p_ext (
floatorstr) – External pressure, in Pa. If “atmospheric” or “atm”, the atmospheric pressure is used.
Notes
Equations solved implies constant mass and homogeneous quantities only. The equations solved are based on [Aurora] and [Mitchner1973].
Equation of state:
The equation of state chosen is the multi-temperature ideal gas law, like in [Chemkin]:
\[P = \sum_k [X_k] R T_k\]where:
\(P\) is the pressure, in Pa,
\(X_k\) is the mole fraction of species \(k\),
\(R\) is the ideal gas constant, in J/mol/K,
\(T_k\) is the temperature of species \(k\), in K.
START OF BUG/WARNING ———————————————————————— The Cantera plasma object may not allow this equation of state for now, so mistakes are possible. For instance:
enthalpy seems to be correct: https://cantera.org/stable/cxx/d5/dd7/classCantera_1_1PlasmaPhase.html#a0c618ae5a6d01ececdcc4da21cf2e1b5
molar enthalpy is not: https://cantera.org/stable/cxx/d5/dd7/classCantera_1_1PlasmaPhase.html#aba0353a9480e109384cabf2cf7754b47
END OF BUG/WARNING ————————————————————————
Conservation of mass:
\[\frac{dm}{dt} = 0\]Balance equation for volume:
\[\frac{dV}{dt} = - \frac{V}{k P} \frac{dP}{dt} = \frac{V}{k P} \frac{P - P_{ext}}{\tau_{rarefaction}}\]where:
\(k\) is the polytropic index,
\(P_{ext}\) is the external pressure, in Pa,
\(\tau_{rarefaction}\) is the rarefaction time scale, in s.
Balance equation for species mass fractions:
\[\frac{dY_k}{dt} = \frac{W_k \dot{\omega_k}}{\rho}\]where:
\(Y_k\) the mass fraction of species \(k\),
\(W_k\) the molecular weight of species \(k\), in kg/kmol,
\(\omega_k\) the production rate of species \(k\), in kmol/m^3/s,
\(\rho\) the density, in kg/m^3.
Balance equation for the electron energy:
\[\rho Y_e c_{v, e} \frac{dT_e}{dt} = - \dot{\omega_e} M_e c_{v, e} T_e + \vec{j} \cdot \vec{E} - \dot{Q}_{elas} - \dot{Q}_{inel} - \frac{P_e}{V} \frac{dV}{dt}\]where:
\(c_{v, e}\) the specific heat at constant volume of the electrons, in J/kg/K,
\(Y_e\) the mass fraction of electrons,
\(T_e\) the electron temperature, in K,
\(\omega_k\) the production rate of electron \(k\), in kmol/m^3/s,
\(M_e\) the molecular weight of the electron, in kg/kmol,
\(\vec{j}\) the current density, in A/m^2,
\(\vec{E}\) the electric field, in V/m,
\(\dot{Q}_{elas}\) the heat production rate due to elastic collisions, in W/m^3,
\(\dot{Q}_{inel}\) the heat production rate due to inelastic collisions, in W/m^3,
\(P_e\) the electron partial pressure, in Pa,
\(V\) the plasma volume, in m^3.
Balance equation for the gas (heavy species) energy:
\[\rho \bar{c_v} \frac{dT_g}{dt} = - \sum_{k \neq e} W_k u_k \dot{\omega_k} + \dot{Q}_{elas} + \dot{Q}_{inel} - \frac{P_g}{V} \frac{dV}{dt}\]where:
\(\bar{c_v}=\sum_{k \neq e} c_{v, k} Y_k\) the mean specific heat at constant volume of heavies species in the gas, in J/kg/K,
\(u_k\) the internal energy of species \(k\), in J/kg,
\(P_g\) the partial pressure of the gas (heavy species), in Pa.
See also
Examples
- plasma#
- plasma_ext#
- mass#
Mass of the plasma [kg]. Assumed constant.
- gap#
Gap between the electrodes [m].
- initial_radius#
Initial radius of the plasma [m].
- initial_base_area#
Initial base area of the plasma [m^2].
- initial_volume#
Initial volume of the plasma [m^3].
- electric_circuit#
Electric circuit object.
- nb_reflections#
Number of reflections of the generator voltage wave in the electric circuit to consider.
- polytropic_index#
Polytropic index of the plasma expansion.
If infinite, the volume is constant.
If 1, the temperature is constant.
If equals to the adiabatic index, the process is isentropic.
- p_ext: float#
External pressure [Pa].
- plasma_voltage = 0.0#
Stored plasma voltage [V].
- plasma_resistance = 0.0#
Stored plasma resistance [Ohm].
- plasma_radius#
Stored plasma radius [m].
- k#
Stored polytropic index.
- static check_is_positive(value, name: str) None#
Check that a value is positive.
- Parameters:
value (
any) – The value to check.name (
str) – The name of the value (for error messages).
- Raises:
ValueError – If the value is not positive.