rizer.thermal_plasma.stine_watson#
Attributes#
First zero of the Bessel function of order 0. |
Classes#
Stine-Watson model extended to include radiation and self-determining plama radius. |
Module Contents#
- rizer.thermal_plasma.stine_watson.J0_FIRST_ZERO#
First zero of the Bessel function of order 0.
- class rizer.thermal_plasma.stine_watson.StineWatson(torch_radius: float, arc_length: float, current: float, total_mass_flow: float, ratio_of_hot_mass_flow_over_total_mass_flow: float, gas_data: rizer.thermal_plasma.fit_LTE_data.FitLTEData)#
Stine-Watson model extended to include radiation and self-determining plama radius.
- Parameters:
torch_radius (
float) – Torch radius in m.arc_length (
float) – Arc length in m.current (
float) – Current in A.total_mass_flow (
float) – Total mass flow in kg/s.ratio_of_hot_mass_flow_over_total_mass_flow (
float) – Ratio of hot mass flow over total mass flow.gas_data (
FitLTEData) – Gas data.
References
Examples
Use Stine-Watson model for a DC thermal plasma in H₂.
Use Stine-Watson model for a DC thermal plasma in H₂.- r_0 = 0.0#
Plasma radius, in m.
- property R: float#
Return the torch radius, in m.
- property L: float#
Return the arc length, in m.
- property I: float#
Return the current, in A.
- property m_dot: float#
Return the total mass flow, in kg/s.
- property alpha: float#
Return the ratio of hot mass flow over total mass flow (dimensionless).
- property gas_data: rizer.thermal_plasma.fit_LTE_data.FitLTEData#
Return the gas data.
- f(z: float, r_0: float) float#
Return \(f(z)\) for the Stine-Watson model.
This function is used to express the solution of the Stine-Watson model.
- Parameters:
z (
float) – Axial distance, measured from the beginning of the arc in m.r_0 (
float) – Hot zone radius in m.
- Returns:
\(f(z)\).
- Return type:
float
Notes
The function \(f(z)\) is defined as:
\[f(z) = \left( 1 - e^{ -2 \left( \left( \frac{2.4}{r_0} \right)^2 + a_{\varepsilon}\right) \frac{r_0^2}{\alpha} \frac{z}{z_0}} \right)^{\frac{1}{2}}\]where:
\(r_0\) is the torch radius in m,
\(z_0\) is the arc length in m,
\(a_{\varepsilon}\) is the radiation parameter,
\(\alpha\) is the ratio of hot mass flow over total mass flow,
\(z\) is the axial distance, measured from the beginning of the arc in m,
\(2.4\) is the first zero of the Bessel function of order 0.
In the original work, there is no radiation (\(a_{\varepsilon}=0\)), and the hot mass flow is assumed to be equal to the total mass flow (\(\alpha=1\)). In this case, the function is simplified to:
\[f(z) = \left( 1 - e^{-11.5 \frac{z}{z_0}} \right)^{\frac{1}{2}}\]where \(11.5 = 2 \times 2.4^2\).
- thermal_efficiency() float#
Return the thermal efficiency of the torch.
The thermal efficiency is defined as the ratio of the power transferred to the gas to the power supplied by the arc. It is also equal to 1 minus the ratio of the power lost by radiation to the power supplied by the arc.
- Returns:
Thermal efficiency, in [0-1].
- Return type:
float
Notes
The thermal efficiency is defined as:
\[\eta = \frac{P_{gas}}{P_{arc}} = 1 - \frac{P_{loss}}{P_{arc}}\]where:
\(P_{gas} = \dot{m} (h^{out}-h^{in})\) is the power transferred to the gas,
\(P_{arc} = I^2 R\) is the power supplied by the arc,
\(P_{loss} = P^{rad} + P^{cold}_{cond, R}\) is the sum of power lost by radiation and power lost by conduction to the torch wall.
It can be computed as:
\[\eta = \frac{2 f(L)}{\log \left| \frac{f(L) + 1}{f(L) - 1} \right|}\]where \(f(L)\) is the function defined in the
f()method and \(L\) is the arc length.
- total_voltage() float#
Return the total voltage of the torch.
The total voltage is the integral of the electric field along the arc length.
- Returns:
Total voltage in V.
- Return type:
float
Notes
The total voltage is the integral of the electric field along the arc length:
\[U=\int_{z=0}^L E(z) d z=\Omega I\]It is equal to:
\[U = \alpha \frac{z_0}{2 \cdot 2.4 \cdot r_0 \sqrt{a_\sigma}} \frac{1}{\sqrt{1+\frac{a_{\varepsilon} r_0^2}{(2.4)^2}}} \ln \left|\frac{f(L)+1}{f(L)-1}\right|\]
- compute_plasma_radius() None#
Compute the plasma radius.
The plasma radius is determined by assuming continuity of the conductive thermal flux between the hot and cold zones.
The attribute r_0 is set to the computed value.
Notes
To have a valid power balance, we need to the continuity of the thermal flux at the surface of radius \(r_0\) and length \(L\):
\[\Phi_{\text {cond }}\left(r_0^{-}\right)=\Phi_{\text {cond }}\left(r_0^{+}\right)\]The thermal flux at radius \(r\) is
\[\Phi_{\text {cond }}(r) = -\int_{A(r)} \overrightarrow{q^{c d}} \cdot \vec{n} d A =-\int_{z=0}^L 2 \pi r q^{c d}(r, z) d z\]where:
\[q^{c d}(r, z) = -\kappa(T(r, z)) \frac{\partial T}{\partial r}(r, z) = -\frac{\partial \theta}{\partial r}(r, z)$\]Therefore, we need the following equality:
\[\int_{z=0}^L 2 \pi r_0 \frac{\partial \theta^{-}}{\partial r}\left(r_0, z\right) d z =\int_{z=0}^L 2 \pi r_0 \frac{\partial \theta^{+}}{\partial r}\left(r_0, z\right) d z\]This leads to the following equation:
\[\frac{r_0\left(1+\frac{a_{\varepsilon} r_0^2} {(2.4)^2}\right)^{\frac{3}{2}}}{\alpha \ln \frac{R}{r_0}} = \frac{1}{2.4(2 \pi)^2} \frac{I \pi z_0}{\sqrt{a_\sigma} \theta_\sigma L} \left(\ln \left|\frac{f(L)+1}{f(L)-1}\right|-2 f(L)\right)\]When the mass flow is really small, we can use a Taylor expansion for the function \(f(z)\):
\[\begin{split}\pi z_0 \left(\ln \left|\frac{f(L)+1}{f(L)-1}\right|-2 f(L)\right) \underset{\dot{m} \rightarrow 0}{\approx} \dot{m} a_h\left(\ln \left|\frac{2}{-\frac{1}{2} e^{-\frac{\tau}{\dot{m}}}}\right|-2\right) = \dot{m} a_h\left(\ln |-4|+\ln \left|e^{\frac{\tau}{\dot{m}}}\right|-2\right) \\ \underset{\dot{m} \rightarrow 0}{\approx} \dot{m} a_h \frac{\tau}{\dot{m}} = a_h 2\left(\left(\frac{2.4}{r_0}\right)^2+a_{\varepsilon}\right) \frac{r_0^2}{\alpha} \frac{L \pi}{a_h}\end{split}\]which leads to the following equation for the plasma radius:
\[\frac{r_0\left(1+\frac{a_{\varepsilon} r_0^2}{(2.4)^2}\right)^{\frac{1}{2}}}{\ln \frac{R}{r_0}} =\frac{2.4 * I}{\sqrt{a_\sigma} \theta_\sigma 2 \pi}\]
- theta_hot(r: float, z: float) float#
Return the integrated thermal conductivity in the hot zone, in W.m^-1.
- Parameters:
r (
float) – Radius in m.z (
float) – Axial distance, measured from the beginning of the arc in m.
- Returns:
Integrated thermal conductivity, in the hot zone, in W.m^-1.
- Return type:
float
Notes
The integrated thermal conductivity at the hot zone is the solution of the following heat equation:
\[\begin{split}\left\{\begin{aligned} \forall(r, z) \in\left[0, r_0\right] \times[0, L], \alpha \frac{\dot{m}^{t o t}}{\pi r_0^2} a_h \frac{\partial \theta}{\partial z} = & \frac{1}{r} \frac{\partial}{\partial r}\left(r \frac{\partial \theta}{\partial r}\right) + \frac{a_\sigma\left(\theta-\theta_\sigma\right) I^2} {\left(\int_0^R 2 \pi r a_\sigma\left(\theta(r, z)-\theta_\sigma\right) d r\right)^2} -a_{\varepsilon}\left(\theta-\theta_\sigma\right) \\ & \theta\left(r=r_0, z\right)=\theta_\sigma \\ & \frac{\partial \theta}{\partial r}(r=0, z)=0 \\ & \theta(r, z=0)=\theta_\sigma \end{aligned}\right.\end{split}\]where:
the left hand side is the advected enthalpy,
the first term on the right hand side is the radial conduction,
the second term on the right hand side is the Joule heating,
the third term on the right hand side is the radiation loss.
The solution of this problem is given by:
\[\theta^{hot}(r, z) = \theta_\sigma + \frac{I f(z)}{\sqrt{a_\sigma} 2 \pi r_0 \sqrt{1+\frac{a_{\varepsilon} r_0^2}{(2.4)^2}}} \frac{J_0\left(2.4 \frac{r}{r_0}\right)}{J_1(2.4)}\]where:
\(J_0\) is the Bessel function of order 0,
\(J_1\) is the Bessel function of order 1,
\(f(z)\) is the function defined in the
f()method.
- theta_cold(r: float, z: float) float#
Return the integrated thermal conductivity in the cold zone, in W.m^-1.
- Parameters:
r (
float) – Radius in m.z (
float) – Axial distance, measured from the beginning of the arc in m.
- Returns:
Integrated thermal conductivity, in the cold zone, in W.m^-1.
- Return type:
float
Notes
The integrated thermal conductivity at the cold zone is the solution of the following heat equation:
\[\begin{split}\left\{\begin{array}{c} \forall(r, z) \in\left[r_0, R\right] \times[0, L], (1-\alpha) \frac{\dot{m}^{\text {tot }}}{\pi R^2-\pi r_0^2} a_h \frac{\partial \theta}{\partial z} = \frac{1}{r} \frac{\partial}{\partial r}\left(r \frac{\partial \theta}{\partial r}\right) \\ \theta\left(r=r_0, z\right)=\theta_\sigma \\ \theta(r=R, z)=0 \\ \frac{\partial \theta}{\partial z}(r, z=0)=0 \end{array}\right.\end{split}\]where:
the left hand side is the advected enthalpy,
the right hand side is the radial conduction.
The solution of this problem is given by:
\[\theta^{cold}(r, z) = \theta_\sigma \frac{\ln \frac{r}{R}}{\ln \frac{r_0}{R}}\]
- compute_theta_map(N: int = 1000) tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]#
Return the integrated thermal temperature map of the torch.
- Parameters:
N (
int, optional) – Number of points in the radial direction, by default 1000.- Returns:
Tuple of three numpy arrays:
The first array is the integrated thermal temperature map of the torch, in K.
The second array is the radial coordinate, in m.
The third array is the axial coordinate, in m.
- Return type:
tuple[np.ndarray,np.ndarray,np.ndarray]
Notes
The integrated thermal temperature map is computed for the hot and cold zones.
See also
theta_hot(),theta_cold()
- plot_theta_map(N: int = 1000) None#
Plot the integrated thermal temperature map of the torch.
- Parameters:
N (
int, optional) – Number of points in the radial direction, by default 1000.
- static get_temperature_from_theta(theta: float, thetas: numpy.ndarray, temperatures: numpy.ndarray) float#
Return the temperature corresponding to the integrated thermal conductivity.
- Parameters:
theta (
float) – Integrated thermal conductivity in W.m^-1.thetas (
np.ndarray) – Integrated thermal conductivity array in W.m^-1.temperatures (
np.ndarray) – Temperature array in K.
- Returns:
Temperature in K.
- Return type:
float
Notes
The temperature is computed by interpolation of the integrated thermal conductivity.
The integrated thermal conductivity is defined as:
\[\theta(r, z) = \int_0^{T(r, z)} \kappa(T') dT'\]
- compute_temperature_map(N: int = 1000) tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]#
- plot_temperature_map(N: int = 1000) None#
Plot the integrated thermal temperature map of the torch.
- Parameters:
N (
int, optional) – Number of points in the radial direction, by default 1000.