rizer.plasma.constant_mass_reactor#

Attributes#

Classes#

ConstantMassPlasmaReactorOde

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 (float or str) – 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 (float or str) – 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:

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

equations

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.