rizer.models.hybrid.isomass_lte_discharge#
Classes#
Constant mass discharge in local thermodynamic equilibrium (LTE). |
Functions#
|
Load a IsomassLTEDischarge model from an input dictionary. |
Module Contents#
- class rizer.models.hybrid.isomass_lte_discharge.IsomassLTEDischarge(lte_data: rizer.io.lte.thermo_transport_data_reader.ThermoTransportDataReader, radiation_data: rizer.io.lte.radiation_data_reader.RadiationDataReader, pressure: float, L_gap: float, r_0: float, T_0: float, T_gas: float, T_electrode: float, h_cc_gas: float, h_cc_electrode: float, factor_radiation: float = 1.0, gas: cantera.Solution | None = None)#
Constant mass discharge in local thermodynamic equilibrium (LTE).
The low-voltage (LV) phase of a GGL discharge is modeled by this class.
The main assumptions of this model are:
The plasma discharge is a cylinder of constant length, whose radius changes based on temperature.
The discharge is considered as a closed system (the mass is constant).
The plasma is in local thermodynamic equilibrium (LTE).
The pressure is constant.
The temperature is uniform within the plasma channel. Same goes for other properties.
Outside the plasma channel, the gas is at ambient temperature.
The plasma channel gains energy from Joule heating and loses energy through radiation and conduction.
An electrical circuit with a voltage source, wire resistance, and inductance drives the injected power.
This model can simulate hybrid discharges, if it is coupled with a model for the NRP phase. For instance, the initial temperature can be set to the last temperature reached during the NRP phase. See rizer.models.nrp.roger_model.RogerModel for an example of such NRP plasma.
- Parameters:
lte_data (
ThermoTransportDataReader) –Thermo-transport data for the plasma, including properties such as:
density as a function of temperature,
electrical conductivity as a function of temperature,
enthalpy as a function of temperature, and vice versa.
radiation_data (
RadiationDataReader) –Radiation data for the plasma, including properties such as:
net emission coefficient (NEC) as a function of temperature.
pressure (
float) – Pressure of the plasma, assumed constant [Pa].L_gap (
float) – Length of the plasma channel (gap between electrodes, assumed constant) [m].r_0 (
float) – Initial radius of the plasma channel [m].T_0 (
float) – Initial temperature of the plasma channel [K].T_gas (
float) – Temperature of the gas surrounding the plasma channel [K].T_electrode (
float) – Temperature of the electrodes [K].h_cc_gas (
float) – Effective heat transfer coefficient for conductive-convective losses to the gas [W/(m^2.K)].h_cc_electrode (
float) – Effective heat transfer coefficient for conductive-convective losses to the electrode [W/(m^2.K)].factor_radiation (
float, optional) – Scaling factor for the radiative power loss [-]. Default is 1.0.gas (
cantera.SolutionorNone, optional) – Cantera plasma phase used only byget_electron_density(), to compute the equilibrium electron density at a given temperature (e.g.rizer.misc.ct_utils.load_goutier2025_mechanism()). Default None, in which caseget_electron_density()cannot be called.
Examples
Tutorial 6 — Driving the same low-voltage discharge with two different circuits.
Tutorial 6 — Driving the same low-voltage discharge with two different circuits.- lte_data#
Thermo-transport data for the plasma, including properties such as:
density as a function of temperature,
electrical conductivity as a function of temperature,
enthalpy as a function of temperature, and vice versa.
- radiation_data#
Radiation data for the plasma, including properties such as:
net emission coefficient (NEC) as a function of temperature.
- P#
Pressure of the plasma, assumed constant [Pa].
- L_gap#
Length of the plasma channel (gap between electrodes, assumed constant) [m].
- r_0#
Initial radius of the plasma channel [m].
- S_tr_0#
Initial transverse surface area of the plasma channel [m^2].
- V_0#
Initial volume of the plasma channel [m^3].
- T_0#
Initial temperature of the plasma channel [K].
- m_0#
Mass of the plasma channel, assumed constant [kg].
- T_gas#
Temperature of the gas surrounding the plasma channel [K].
- T_electrode#
Temperature of the electrodes [K].
- h_cc_gas#
Effective heat transfer coefficient for conductive-convective losses to the gas [W/(m^2.K)].
- h_cc_electrode#
Effective heat transfer coefficient for conductive-convective losses to the electrode [W/(m^2.K)].
- factor_radiation = 1.0#
Scaling factor for the radiative power loss [-].
- gas = None#
Cantera plasma phase used by
get_electron_density(), or None.
- times: numpy.ndarray | None = None#
- temperatures: numpy.ndarray | None = None#
- currents: numpy.ndarray | None = None#
- get_volume(T: float) float#
Calculate the volume of the plasma channel based on the temperature.
Notes
The volume is calculated assuming the mass of the plasma channel remains constant:
\[V(T) = \frac{m_0}{\rho(T)}\]where:
\(m_0\) is the initial mass of the plasma channel.
\(\rho(T)\) is the mass density at temperature T, obtained from LTE data.
- get_transverse_surface(T: float) float#
Calculate the surface area of the plasma channel based on the temperature.
- Parameters:
T (
float) – Temperature in Kelvin.- Returns:
Surface area in square meters.
- Return type:
Notes
The transverse surface area of a cylindrical channel is given by:
\[S_{tr} = \pi r^2 = \frac{V}{L_{gap}}\]where:
\(V\) is the volume of the plasma channel at temperature T.
\(L_{gap}\) is the length of the plasma channel (gap between electrodes).
- get_diameter(T: float) float#
Calculate the diameter of the plasma channel based on the temperature.
Notes
The diameter is calculated from the transverse surface area:
\[d = 2 \sqrt{\frac{S_{tr}}{\pi}}\]where \(S_{tr}\) is the transverse surface area at temperature T.
- get_radius(T: float) float#
Calculate the radius of the plasma channel based on the temperature.
Notes
The radius is half the diameter:
\[r = \frac{d}{2}\]
- get_lateral_surface(T: float) float#
Calculate the lateral surface area of the plasma channel based on the temperature.
- Parameters:
T (
float) – Temperature in Kelvin.- Returns:
Lateral surface area in square meters.
- Return type:
Notes
The lateral surface area of a cylindrical channel is given by:
\[S_{lat} = \pi d L_{gap}\]where:
\(d\) is the diameter of the plasma channel at temperature T.
\(L_{gap}\) is the length of the plasma channel (gap between electrodes).
- get_plasma_resistance(T: float) float#
Calculate the plasma resistance based on the temperature.
Notes
The plasma resistance is calculated using the formula:
\[R_p(T) = \frac{L_{gap}}{\sigma(T) S_{tr}(T)}\]where:
\(L_{gap}\) is the length of the plasma channel (gap between electrodes).
\(\sigma(T)\) is the electrical conductivity at temperature T, obtained from LTE data.
\(S_{tr}(T)\) is the transverse surface area at temperature T.
- get_electron_density(T: float) float#
Calculate the equilibrium electron density at the given temperature.
- Parameters:
T (
float) – Temperature in Kelvin.- Returns:
Electron number density in m^-3.
- Return type:
- Raises:
ValueError – If the circuit was constructed without a gas phase.
Notes
The plasma is assumed to be in local thermodynamic equilibrium, so the electron density follows from equilibrating the Cantera gas phase at
(T, P):\[n_e(T) = X_{e^-}(T) \frac{P}{k_b T}\]where \(X_{e^-}(T)\) is the electron mole fraction at equilibrium and \(P\) is the (constant) pressure. Mirrors
ThermalSpark’s use of a live equilibrate(“TP”) call.
- get_plasma_joule_power(T: float, i: float) float#
Calculate the Joule power in the plasma channel based on the temperature.
- Parameters:
- Returns:
Power in Watts.
- Return type:
Notes
The Joule power is calculated using the formula:
\[P_{joule}(T, I) = R_p(T) I^2\]where:
\(R_p(T)\) is the plasma resistance at temperature T.
\(I\) is the current through the plasma channel.
- get_radiative_power(T: float) float#
Calculate the radiative power in the plasma channel based on the temperature.
The radiative power is calculated using the net emission coefficient (NEC) from the radiation data.
Notes
The radiative power is calculated using the formula:
\[P_{rad}(T) = factor_{radiation} \cdot 4 \pi \cdot NEC(T) \cdot V(T)\]where:
\(factor_{radiation}\) is a scaling factor for the radiative power loss [-].
\(NEC(T)\) is the net emission coefficient at temperature T [W/(m^3·sr)].
\(V(T)\) is the volume of the plasma channel at temperature T [m^3]
\(4 \pi\) accounts for the integration over all solid angles.
- get_plasma_cc_gas_power(T: float) float#
Calculate the conductive-convective power loss to the gas surrounding the plasma channel.
The conductive-convective power loss with gas is modeled using Newton’s law of heat conduction.
Notes
The conductive power is calculated using the formula:
\[P_{cond}(T) = h^{\text{cc, gas}} \cdot S_{lat}(T) \cdot (T - T_{gas})\]where:
\(h^{\text{cc, gas}}\) is the effective heat transfer coefficient for conductive-convective losses to the gas [W/(m^2·K)],
\(S_{lat}(T) = 2 \pi r(T) L_{gap}\) is the lateral surface area of the plasma channel at temperature T [m^2],
\(T\) is the temperature of the plasma channel [K],
\(T_{gas}\) is the ambient temperature surrounding the plasma channel [K], assumed constant.
- get_plasma_cc_electrode_power(T: float) float#
Calculate the conductive power loss to the electrodes.
Conduction to the electrode is modeled using Newton’s law of heat conduction.
Notes
The conductive power loss to the electrode is calculated using the formula:
\[P_{cond\_electrode}(T) = h^{\text{cc, electrode}} \cdot S_{tr} \cdot (T - T_{electrode}) \cdot 2\]where:
\(h^{\text{cc, electrode}}\) is the effective heat transfer coefficient for conductive losses to the electrode [W/(m^2·K)].
\(S_{tr}\) is the transverse surface area in contact with the electrode [m^2].
\(T\) is the temperature of the plasma channel.
\(T_{electrode}\) is the temperature of the electrode, assumed to be constant.
The factor of 2 accounts for the two electrodes.
- compute_dh_dt(t: float, h: float, i: float) float#
Compute the time-derivative of the specific enthalpy based on the current state of the system.
- Parameters:
- Returns:
The time-derivative of the specific enthalpy (dh/dt) in J/(kg.s).
- Return type:
Notes
Thermal ODE:
\[\frac{dh}{dt} = \frac{P_{joule} - P_{thermal\_loss}}{m_0}\]where:
\(h\) is the specific enthalpy (J/kg).
\(m_0\) is the initial mass of the plasma channel (kg).
\(P_{joule}\) is the Joule power (W).
\(P_{thermal\_loss}\) is the total thermal power loss (W), including:
radiation,
conductive-convective with gas,
conductive-convective with electrode.
- rizer.models.hybrid.isomass_lte_discharge.load_isomass_lte_discharge_from_dict(input_dict: dict) IsomassLTEDischarge#
Load a IsomassLTEDischarge model from an input dictionary.
- Parameters:
input_dict (
dict) – Input Dictionary containing the necessary parameters to create an instance of IsomassLTEDischarge.- Returns:
An instance of the IsomassLTEDischarge class initialized with the parameters from the input dictionary.
- Return type: