bluemira.plasma_physics.rules_of_thumb ====================================== .. py:module:: bluemira.plasma_physics.rules_of_thumb .. autoapi-nested-parse:: A collection of simple 0-D rules of thumb for tokamak plasmas. Functions --------- .. autoapisummary:: bluemira.plasma_physics.rules_of_thumb.estimate_loop_voltage bluemira.plasma_physics.rules_of_thumb.estimate_Le bluemira.plasma_physics.rules_of_thumb.estimate_M bluemira.plasma_physics.rules_of_thumb.calc_cyl_safety_factor bluemira.plasma_physics.rules_of_thumb.calc_qstar_freidberg bluemira.plasma_physics.rules_of_thumb.calc_qstar_uckan bluemira.plasma_physics.rules_of_thumb.estimate_q95_uckan bluemira.plasma_physics.rules_of_thumb.estimate_li_wesson bluemira.plasma_physics.rules_of_thumb.estimate_vertical_field Module Contents --------------- .. py:function:: estimate_loop_voltage(R_0: float, B_t: float, Z_eff: float, T_e: float, n_e: float, q_0: float) -> float A 0-D estimate of the loop voltage during burn :param R_0: Major radius [m] :param B_t: Toroidal field on axis [T] :param Z_eff: Effective charge [dimensionless] :param T_e: Electron temperature on axis [keV] :param n_e: Electron density [1/m^3] :param q_0: Safety factor on axis :returns: Loop voltage during burn [V] .. rubric:: Notes H. Zohm, W. Morris (2022) :math:`v_{loop}=2\pi R_{0}\dfrac{2\pi B_{t}}{\mu_{0}q_{0}\sigma_{0}R_{0}}` where :math:`\sigma_{0}` is the Spitzer conductivity on axis: :math:`\sigma_{0} = 1.92e4 (2-Z_{eff}^{-1/3}) \dfrac{T_{e}^{3/2}}{Z_{eff}ln\Lambda}` Assumes no non-inductive current on axis Assumes a circular cross-section on axis There is no neo-classical resistivity on axis because there are no trapped particles .. py:function:: estimate_Le(A: float, kappa: float) -> float Estimate the normalised external plasma self-inductance. :param A: Last closed flux surface aspect ratio :param kappa: Last closed flux surface elongation :returns: Normalised plasma external inductance .. rubric:: Notes .. doi:: 10.1063/1.865934 :title: Hirshman and Neilson, 1986 Assuming a LCFS parameterisation as per: :py:func:`~bluemira.equilibria.shapes.flux_surface_hirshman` .. py:function:: estimate_M(A: float, kappa: float) -> float Estimate the plasma mutual inductance. :param A: Last closed flux surface aspect ratio :param kappa: Last closed flux surface elongation :returns: Plasma mutual inductance .. rubric:: Notes .. doi:: 10.1063/1.865934 :title: Hirshman and Neilson, 1986 Assuming a LCFS parameterisation as per :py:func:`~bluemira.equilibria.shapes.flux_surface_hirshman` .. py:function:: calc_cyl_safety_factor(R_0: float, A: float, B_0: float, I_p: float) -> float Calculate the cylindrical safety factor. .. math:: \dfrac{2\pi}{\mu_{0}} \dfrac{R_{0}}{A}**2 \dfrac{B_{0}}{R_{0} I_{p}} :param R_0: Plasma major radius [m] :param A: Plasma aspect ratio :param B_0: Toroidal field at major radius [T] :param I_p: Plasma current [A] :returns: Cylindrical safety factor .. rubric:: Notes Sometimes also written with :math:`\dfrac{2\pi}{\mu_{0}} = 5` and I_p in [MA] .. py:function:: calc_qstar_freidberg(R_0: float, A: float, B_0: float, I_p: float, kappa: float) -> float Calculate the kink safety factor at the plasma edge :math:`q_{*}=\dfrac{2\pi a^2 B_0}{\mu_0 R_0 I_p}` :math:`\bigg(\dfrac{1+\kappa^2}{2}\bigg)` :param R_0: Plasma major radius [m] :param A: Plasma aspect ratio :param B_0: Toroidal field at major radius [T] :param I_p: Plasma current [A] :param kappa: Plasma elongation :returns: Kink safety factor .. rubric:: Notes Freidberg, Ideal MHD, p 131 .. py:function:: calc_qstar_uckan(R_0: float, A: float, B_0: float, I_p: float, kappa: float, delta: float) -> float Calculate the cylindrical equivalent safety factor at the plasma edge :param R_0: Plasma major radius [m] :param A: Plasma aspect ratio :param B_0: Toroidal field at major radius [T] :param I_p: Plasma current [A] :param kappa: Plasma elongation :param delta: Plasma triangularity :returns: Cylindrical equivalent safety factor .. rubric:: Notes Uckan et al., ITER Physics Design Guidelines, 1989, sec. 2.3 https://inis.iaea.org/search/search.aspx?orig_q=RN:21068960 .. py:function:: estimate_q95_uckan(R_0: float, A: float, B_0: float, I_p: float, kappa: float, delta: float) -> float Estimate safety factor at the 95th percentile flux surface based on an empirical fit. :param R_0: Plasma major radius [m] :param A: Plasma aspect ratio :param B_0: Toroidal field at major radius [T] :param I_p: Plasma current [A] :param kappa: Plasma elongation :param delta: Plasma triangularity :returns: Estimate of 95th percentile safety factor .. rubric:: Notes Uckan et al., ITER Physics Design Guidelines, 1989, sec. 2.3 https://inis.iaea.org/search/search.aspx?orig_q=RN:21068960 Ref [11] in the above does not appear to include the geometry factor .. py:function:: estimate_li_wesson(q_star: float, q_0: float = 1.0) -> float Estimate the normalised plasma internal inductance based on an empirical fit. :param q_star: Cylindrical equivalent safety factor :param q_0: Safety factor on axis :returns: Normalised lasma internal inductance .. rubric:: Notes Wesson, Tokamaks 3rd edition, page 120 This appears to give high values for li, even when using q* at rho=0.95 .. py:function:: estimate_vertical_field(R_0: float, A: float, I_p: float, beta_p_th: float, l_i: float, kappa_95: float | None = None) -> float Estimate the vertical field to keep the plasma in equilibrium. :param R_0: Plasma major radius [m] :param A: Plasma aspect ratio :param I_p: Plasma current [A] :param beta_p_th: Thermal poloidal beta :param l_i: Normalised internal inductance :param kappa_95: Plasma elongation at the 95th percentile flux surface :returns: Plasma equilibrium vertical field [T] .. rubric:: Notes See e.g. Ferrara et al., "Alcasim simulation code for Alcator C-Mod" https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4178094 The kappa term is not always present in textbooks and the like, and is almost certainly irrelevant at the end of breakdown.