Skip to content
48 changes: 24 additions & 24 deletions documentation/source/physics-models/plasma_h_mode.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## L-H Power Threshold Scalings
## L-H Power Threshold Scalings | `PlasmaConfinementTransition`

Transitions from a standard confinement mode (L-mode) to an improved
confinement regime (H-mode), called L-H transitions, are observed in most
Expand All @@ -14,7 +14,7 @@ Depending on the value of the chosen scaling by setting `i_l_h_threshold`, a dif
We define the net power across the seperatrix for the scaling as `p_plasma_separatrix_mw` below. This is equal to the net heating power of the plasma with radiation losses removed. This is then treated as the excess heating power for the plasma that is given to the divertors.

$$
\mathtt{p_plasma_separatrix_mw} = \frac{\mathrm{d}W}{\mathrm{d}t} = \underbrace{f_{\alpha}P_{\alpha} + P_{\text{c}} + P_{\text{OH}} + P_{\text{HCD}}}_{\text{Plasma heating}} - P_{\text{rad}}
\texttt{p_plasma_separatrix_mw} = \frac{\mathrm{d}W}{\mathrm{d}t} = \underbrace{f_{\alpha}P_{\alpha} + P_{\text{c}} + P_{\text{OH}} + P_{\text{HCD}}}_{\text{Plasma heating}} - P_{\text{rad}}
$$

There are two separate constraint equations for enforcing the L-H threshold.
Expand Down Expand Up @@ -63,7 +63,7 @@ $$

----------------

### ITER-1996 Scalings
### ITER-1996 Scalings

The general form is:

Expand All @@ -77,7 +77,7 @@ where $\alpha$ lies in the range of $-0.25 \le \alpha \le 0.25$, $\bar{n}_{\tex

------------------

#### ITER-1996 Nominal Scaling
#### ITER-1996 Nominal Scaling | `calculate_iter1996_nominal()`

Is selected with `i_l_h_threshold = 1` [^1] [^2]

Expand All @@ -87,7 +87,7 @@ $$

---------------

#### ITER-1996 Upper Scaling
#### ITER-1996 Upper Scaling | `calculate_iter1996_upper()`

Is selected with `i_l_h_threshold = 2` [^1] [^2]

Expand All @@ -97,7 +97,7 @@ $$

---------------

#### ITER-1996 Lower Scaling
#### ITER-1996 Lower Scaling | `calculate_iter1996_lower()`

Is selected with `i_l_h_threshold = 3` [^1] [^2]

Expand All @@ -108,7 +108,7 @@ $$
---------------


### Snipes 1997 ITER Scaling I
### Snipes 1997 ITER Scaling I | `calculate_snipes1997_iter()`

Is selected with `i_l_h_threshold = 4` [^3]

Expand All @@ -120,7 +120,7 @@ $$

---------------

### Snipes 1997 ITER Scaling II
### Snipes 1997 ITER Scaling II | `calculate_snipes1997_kappa()`

Is selected with `i_l_h_threshold = 5` [^3]

Expand Down Expand Up @@ -157,7 +157,7 @@ We thus apply a factor of $\left(\frac{2}{M_{\text{i}}}\right)$ to the end of th

------------------

#### Martin 2008 Nominal Scaling
#### Martin 2008 Nominal Scaling | `calculate_martin08_nominal()`

Is selected with `i_l_h_threshold = 6` [^4]

Expand All @@ -167,7 +167,7 @@ $$

---------------

#### Martin 2008 Upper Scaling
#### Martin 2008 Upper Scaling | `calculate_martin08_upper()`

Is selected with `i_l_h_threshold = 7` [^4]

Expand All @@ -177,7 +177,7 @@ $$

---------------

#### Martin 2008 Lower Scaling
#### Martin 2008 Lower Scaling | `calculate_martin08_lower()`

Is selected with `i_l_h_threshold = 8` [^4]

Expand Down Expand Up @@ -217,7 +217,7 @@ We thus apply a factor of $\left(\frac{2}{M_{\text{i}}}\right)$ to the end of th

------------------

#### Snipes 2000 Nominal Scaling
#### Snipes 2000 Nominal Scaling | `calculate_snipes2000_nominal()`

Is selected with `i_l_h_threshold = 9` [^5]

Expand All @@ -227,7 +227,7 @@ $$

---------------

#### Snipes 2000 Upper Scaling
#### Snipes 2000 Upper Scaling | `calculate_snipes2000_upper()`

Is selected with `i_l_h_threshold = 10` [^5]

Expand All @@ -237,7 +237,7 @@ $$

---------------

#### Snipes 2000 Lower Scaling
#### Snipes 2000 Lower Scaling | `calculate_snipes2000_lower()`

Is selected with `i_l_h_threshold = 11` [^5]

Expand Down Expand Up @@ -273,7 +273,7 @@ We thus apply a factor of $\left(\frac{2}{M_{\text{i}}}\right)$ to the end of th

------------------

#### Snipes 2000 Closed Divertor Nominal Scaling
#### Snipes 2000 Closed Divertor Nominal Scaling | `calculate_snipes2000_closed_divertor_nominal()`

Is selected with `i_l_h_threshold = 12` [^5]

Expand All @@ -283,7 +283,7 @@ $$

---------------

#### Snipes 2000 Closed Divertor Upper Scaling
#### Snipes 2000 Closed Divertor Upper Scaling | `calculate_snipes2000_closed_divertor_upper()`

Is selected with `i_l_h_threshold = 13` [^5]

Expand All @@ -293,7 +293,7 @@ $$

---------------

#### Snipes 2000 Closed Divertor Lower Scaling
#### Snipes 2000 Closed Divertor Lower Scaling | `calculate_snipes2000_closed_divertor_lower()`

Is selected with `i_l_h_threshold = 14` [^5]

Expand All @@ -315,7 +315,7 @@ where $I_{\text{p}}$ is the plasma current in $\text{MA}$ and $\bar{n}_{\text{e}

------------------

#### Hubbard 2012 L-I Nominal Scaling
#### Hubbard 2012 L-I Nominal Scaling | `calculate_hubbard2012_nominal()`

Is selected with `i_l_h_threshold = 15` [^6]

Expand All @@ -325,7 +325,7 @@ $$

---------------

#### Hubbard 2012 L-I Lower Scaling
#### Hubbard 2012 L-I Lower Scaling | `calculate_hubbard2012_lower()`

Is selected with `i_l_h_threshold = 16` [^6]

Expand All @@ -335,7 +335,7 @@ $$

---------------

#### Hubbard 2012 L-I Upper Scaling
#### Hubbard 2012 L-I Upper Scaling | `calculate_hubbard2012_upper()`

Is selected with `i_l_h_threshold = 17` [^6]

Expand All @@ -345,7 +345,7 @@ $$

---------------

### Hubbard 2017 L-I Scaling
### Hubbard 2017 L-I Scaling | `calculate_hubbard2017()`

Is selected with `i_l_h_threshold = 18` [^7]

Expand Down Expand Up @@ -374,7 +374,7 @@ We apply the same mass-correction done for the original scaling [discussed above

------------------

#### Martin 2008 Aspect Corrected Nominal Scaling
#### Martin 2008 Aspect Corrected Nominal Scaling | `calculate_martin08_aspect_nominal()`

Is selected with `i_l_h_threshold = 19` [^4] [^8]

Expand All @@ -385,7 +385,7 @@ $$

---------------

#### Martin 2008 Aspect Corrected Upper Scaling
#### Martin 2008 Aspect Corrected Upper Scaling | `calculate_martin08_aspect_upper()`

Is selected with `i_l_h_threshold = 20` [^4] [^8]

Expand All @@ -396,7 +396,7 @@ $$

---------------

#### Martin 2008 Aspect Corrected Lower Scaling
#### Martin 2008 Aspect Corrected Lower Scaling | `calculate_martin08_aspect_lower()`

Is selected with `i_l_h_threshold = 21` [^4] [^8]

Expand Down
21 changes: 18 additions & 3 deletions process/core/io/plot_proc.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
)
from process.models.physics.current_drive import ElectronBernstein, ElectronCyclotron
from process.models.physics.impurity_radiation import read_impurity_file
from process.models.physics.l_h_transition import PlasmaConfinementTransitionModel
from process.models.tfcoil.superconducting import SUPERCONDUCTING_TF_TYPES

mpl.rcParams["figure.max_open_warning"] = 40
Expand Down Expand Up @@ -3135,10 +3136,24 @@ def plot_main_plasma_information(

# Add L-H threshold information
textstr_lh = (
f"$\\mathbf{{L-H \\ threshold:}}$\n\n"
f"$\\mathbf{{L-H \\ threshold:}}$\n"
f"{PlasmaConfinementTransitionModel(int(mfile.get('i_l_h_threshold', scan=scan))).full_name}\n\n"
f"$P_{{\\text{{L-H}}}}:$ {mfile.get('p_l_h_threshold_mw', scan=scan):.4f} MW\n"
)

# Wrap long model names to new line
model_name = PlasmaConfinementTransitionModel(
int(mfile.get("i_l_h_threshold", scan=scan))
).full_name
if len(model_name) > 20:
model_name = "\n".join(textwrap.wrap(model_name, width=20))

textstr_lh = (
f"$\\mathbf{{L-H \\ threshold:}}$\n"
f"{model_name}\n\n"
f"$P_{{\\text{{L-H}}}}:$ {mfile.get('p_l_h_threshold_mw', scan=scan):.4f} MW"
)

axis.text(
0.22,
0.4,
Expand All @@ -3157,12 +3172,12 @@ def plot_main_plasma_information(
# Add density limit information
textstr_density_limit = (
f"$\\mathbf{{Density \\ limit:}}$\n\n"
f"$n_{{\\text{{e,limit}}}}: {mfile.get('nd_plasma_electrons_max', scan=scan):.3e} \\ m^{{-3}}$\n"
f"$n_{{\\text{{e,limit}}}}: {mfile.get('nd_plasma_electrons_max', scan=scan):.3e} \\ m^{{-3}}$"
)

axis.text(
0.22,
0.32,
0.3,
textstr_density_limit,
fontsize=9,
verticalalignment="top",
Expand Down
3 changes: 3 additions & 0 deletions process/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
from process.models.physics.density_limit import PlasmaDensityLimit
from process.models.physics.exhaust import PlasmaExhaust
from process.models.physics.impurity_radiation import initialise_imprad
from process.models.physics.l_h_transition import PlasmaConfinementTransition
from process.models.physics.physics import (
DetailedPhysics,
Physics,
Expand Down Expand Up @@ -708,6 +709,7 @@ def __init__(self):
plasma_profile=self.plasma_profile
)
self.plasma_confinement = PlasmaConfinementTime()
self.plasma_transition = PlasmaConfinementTransition()
self.physics = Physics(
plasma_profile=self.plasma_profile,
current_drive=self.current_drive,
Expand All @@ -717,6 +719,7 @@ def __init__(self):
plasma_exhaust=self.plasma_exhaust,
plasma_bootstrap_current=self.plasma_bootstrap_current,
plasma_confinement=self.plasma_confinement,
plasma_transition=self.plasma_transition,
)
self.physics_detailed = DetailedPhysics(
plasma_profile=self.plasma_profile,
Expand Down
Loading
Loading