From fd0d5b93414f32871993f5e77e05ae47f571ac71 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 17 Jan 2025 17:23:35 +0000 Subject: [PATCH 001/106] :sparkle: Create new confinement time file and add neo_alcator scaling --- process/confinement_time.py | 23 +++++++++++++++++++++++ process/physics.py | 5 ++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 process/confinement_time.py diff --git a/process/confinement_time.py b/process/confinement_time.py new file mode 100644 index 0000000000..c27e935940 --- /dev/null +++ b/process/confinement_time.py @@ -0,0 +1,23 @@ +def neo_alcator_confinement_time( + dene20: float, rminor: float, rmajor: float, qstar: float +) -> float: + """ + Calculate the Neo-Alcator confinement time for ohmic pulses. + + Parameters: + dene20 (float): Volume averaged electron density in units of 10**20 m**-3 + rminor (float): Plasma minor radius [m] + rmajor (float): Plasma major radius [m] + qstar (float): Equivalent cylindrical edge safety factor + + Returns: + float: Neo-Alcator confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + + """ + return 0.07e0 * dene20 * rminor * rmajor * rmajor * qstar diff --git a/process/physics.py b/process/physics.py index dfab8b8002..3794021d05 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6,6 +6,7 @@ import scipy.integrate as integrate from scipy.optimize import root_scalar +import process.confinement_time as confinement import process.impurity_radiation as impurity_radiation import process.physics_functions as physics_funcs from process.fortran import ( @@ -6737,7 +6738,9 @@ def pcond( if isc == 1: # Neo-Alcator scaling (ohmic) # tauee = taueena - tauee = hfact * taueena + tauee = hfact * confinement.neo_alcator_confinement_time( + n20, rminor, rmajor, qstar + ) elif isc == 2: # Mirnov scaling (H-mode) tauee = hfact * 0.2e0 * rminor * np.sqrt(kappa95) * pcur From 4743cc557ec286aae2084b8a6dbdbdf29d68252a Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 17 Jan 2025 17:42:19 +0000 Subject: [PATCH 002/106] =?UTF-8?q?=E2=9C=A8Add=20Merezhkin-Mukhovatov=20c?= =?UTF-8?q?onfinement=20time=20calculation=20and=20update=20Neo-Alcator=20?= =?UTF-8?q?scaling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/confinement_time.py | 47 ++++++++++++++++++++++++++++++++++++- process/physics.py | 18 +++++--------- 2 files changed, 52 insertions(+), 13 deletions(-) diff --git a/process/confinement_time.py b/process/confinement_time.py index c27e935940..4c9631562b 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1,8 +1,11 @@ +import numpy as np + + def neo_alcator_confinement_time( dene20: float, rminor: float, rmajor: float, qstar: float ) -> float: """ - Calculate the Neo-Alcator confinement time for ohmic pulses. + Calculate the Nec-Alcator(NA) OH scaling confinement time Parameters: dene20 (float): Volume averaged electron density in units of 10**20 m**-3 @@ -21,3 +24,45 @@ def neo_alcator_confinement_time( """ return 0.07e0 * dene20 * rminor * rmajor * rmajor * qstar + + +def merezhkin_muhkovatov_confinement_time( + rmajor: float, + rminor: float, + kappa95: float, + qstar: float, + dnla20: float, + afuel: float, + ten: float, +) -> float: + """ + Calculate the Merezhkin-Mukhovatov (MM) OH/L-mode scaling confinement time + + Parameters: + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + qstar (float): Equivalent cylindrical edge safety factor + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + afuel (float): Fuel atomic mass number + ten (float): Electron temperature [keV] + + Returns: + float: Merezhkin-Mukhovatov confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + return ( + 3.5e-3 + * rmajor**2.75e0 + * rminor**0.25e0 + * kappa95**0.125e0 + * qstar + * dnla20 + * np.sqrt(afuel) + / np.sqrt(ten / 10.0e0) + ) diff --git a/process/physics.py b/process/physics.py index 3794021d05..fafb07b3a0 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6736,7 +6736,8 @@ def pcond( # Electron energy confinement times - if isc == 1: # Neo-Alcator scaling (ohmic) + # Nec-Alcator(NA) OH scaling + if isc == 1: # tauee = taueena tauee = hfact * confinement.neo_alcator_confinement_time( n20, rminor, rmajor, qstar @@ -6745,17 +6746,10 @@ def pcond( elif isc == 2: # Mirnov scaling (H-mode) tauee = hfact * 0.2e0 * rminor * np.sqrt(kappa95) * pcur - elif isc == 3: # Merezhkin-Muhkovatov scaling (L-mode) - tauee = ( - hfact - * 3.5e-3 - * rmajor**2.75e0 - * rminor**0.25e0 - * kappa95**0.125e0 - * qstar - * dnla20 - * np.sqrt(m_fuel_amu) - / np.sqrt(ten / 10.0e0) + # Merezhkin-Mukhovatov (MM) OH/L-mode scaling + elif isc == 3: + tauee = hfact * confinement.merezhkin_muhkovatov_confinement_time( + rmajor, rminor, kappa95, qstar, dnla20, afuel, ten ) elif isc == 4: # Shimomura scaling (H-mode) From eede9cac64b871b472835f3a4664ce58c047e904 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 17 Jan 2025 17:59:49 +0000 Subject: [PATCH 003/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20'isc'=20to=20'i?= =?UTF-8?q?=5Fconfinement=5Ftime'=20for=20clarity=20in=20confinement=20tim?= =?UTF-8?q?e=20scaling=20law?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proc-pages/fusion-devices/stellarator.md | 12 +- .../proc-pages/physics-models/error.txt | 10 +- .../physics-models/plasma_confinement.md | 4 +- .../physics-models/plasma_overview.md | 4 +- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/large_tokamak_IN.DAT | 2 +- examples/data/scan_MFILE.DAT | 2 +- examples/data/scan_example_file_IN.DAT | 2 +- process/init.py | 11 +- process/physics.py | 120 ++++++++++-------- process/stellarator.py | 4 +- process/utilities/errorlist.json | 4 +- source/fortran/input.f90 | 8 +- source/fortran/physics_variables.f90 | 6 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- tests/integration/data/large_tokamak_IN.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- .../data/large_tokamak_once_through.IN.DAT | 2 +- tests/integration/data/ref_IN.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 2 +- tests/integration/data/scan_MFILE.DAT | 2 +- .../data/uncertainties_nonopt_ref_IN.DAT | 2 +- .../integration/data/uncertainties_ref_IN.DAT | 2 +- tests/integration/ref_dicts.json | 10 +- .../input_files/large_tokamak.IN.DAT | 2 +- .../input_files/large_tokamak_nof.IN.DAT | 2 +- .../large_tokamak_once_through.IN.DAT | 2 +- .../input_files/st_regression.IN.DAT | 6 +- .../regression/input_files/stellarator.IN.DAT | 2 +- tests/unit/data/large_tokamak_IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 36 +++--- 39 files changed, 151 insertions(+), 136 deletions(-) diff --git a/documentation/proc-pages/fusion-devices/stellarator.md b/documentation/proc-pages/fusion-devices/stellarator.md index 2365cced61..065cde305a 100644 --- a/documentation/proc-pages/fusion-devices/stellarator.md +++ b/documentation/proc-pages/fusion-devices/stellarator.md @@ -142,13 +142,13 @@ The constraint equation `icc=91` together with `ixc = 169` enforces that the fou ### $\tau_E$ scaling laws -Five confinement time scaling laws relevant to stellarators are present within `PROCESS`. The value of switch isc` determines which of these in the plasma energy balance calculation. +Five confinement time scaling laws relevant to stellarators are present within `PROCESS`. The value of switch i_confinement_time` determines which of these in the plasma energy balance calculation. -$\tau_E$ (Large Helical Device[^8]: `isc=21`) = $0.17 \, R^{0.75}_0 \, a^2_p \, \bar{n}^{0.69}_{20} \, B^{0.84}_0 \, P^{-0.58}$ -$\tau_E$ (Gyro-reduced Bohm[^9]: `isc=22`) = $0.25 \, R^{0.6}_0 \, a^{2.4}_p \, \bar{n}^{0.6}_{20} \, B^{0.8}_0 \, P^{-0.6}$ -$\tau_E$ (Lackner-Gottardi[^10]: `isc=23`) = $0.17 \, R_0 \, a^2_p \, \bar{n}^{0.6}_{20} \, B^{0.8}_0 \, P^{-0.6} \, \iota^{0.4}$ -$\tau_E$ (ISS95[^11]: `isc=37`) = $0.079 \, R^{0.65}_0 \, a^{2.21}_p \, \bar{n}^{0.51}_{20} \, B^{0.83}_0 \, P^{-0.59} \, \bar{\iota}^{0.4}$ -$\tau_E$ (ISS04[^12]: `isc=38`) = $0.134 \, R^{0.64}_0 \, a^{2.28}_p \, \bar{n}^{0.54}_{20} \, B^{0.84}_0 \, P^{-0.61} \, \bar{\iota}^{0.41}$ +$\tau_E$ (Large Helical Device[^8]: `i_confinement_time=21`) = $0.17 \, R^{0.75}_0 \, a^2_p \, \bar{n}^{0.69}_{20} \, B^{0.84}_0 \, P^{-0.58}$ +$\tau_E$ (Gyro-reduced Bohm[^9]: `i_confinement_time=22`) = $0.25 \, R^{0.6}_0 \, a^{2.4}_p \, \bar{n}^{0.6}_{20} \, B^{0.8}_0 \, P^{-0.6}$ +$\tau_E$ (Lackner-Gottardi[^10]: `i_confinement_time=23`) = $0.17 \, R_0 \, a^2_p \, \bar{n}^{0.6}_{20} \, B^{0.8}_0 \, P^{-0.6} \, \iota^{0.4}$ +$\tau_E$ (ISS95[^11]: `i_confinement_time=37`) = $0.079 \, R^{0.65}_0 \, a^{2.21}_p \, \bar{n}^{0.51}_{20} \, B^{0.83}_0 \, P^{-0.59} \, \bar{\iota}^{0.4}$ +$\tau_E$ (ISS04[^12]: `i_confinement_time=38`) = $0.134 \, R^{0.64}_0 \, a^{2.28}_p \, \bar{n}^{0.54}_{20} \, B^{0.84}_0 \, P^{-0.61} \, \bar{\iota}^{0.41}$ Here $\bar{\iota}$ is the rotational transform, which is equivalent to the reciprocal of the tokamak safety factor $q$. diff --git a/documentation/proc-pages/physics-models/error.txt b/documentation/proc-pages/physics-models/error.txt index f78e58a533..fe8dbe9cc3 100644 --- a/documentation/proc-pages/physics-models/error.txt +++ b/documentation/proc-pages/physics-models/error.txt @@ -596,7 +596,7 @@ energy confinement times \(\tau_E\) are equal. Many energy confinement time scaling laws are present within PROCESS, for tokamaks, RFPs or stellarators. These are calculated in routine -\texttt{pcond}. The value of \texttt{isc} determines which of the +\texttt{pcond}. The value of \texttt{i_confinement_time} determines which of the scalings is used in the plasma energy balance calculation. The table below summarises the available scaling laws. The most commonly used is the so-called IPB98(y,2) scaling. @@ -604,7 +604,7 @@ the so-called IPB98(y,2) scaling. \begin{longtable}[]{@{}cll@{}} \toprule \begin{minipage}[b]{0.05\columnwidth}\centering\strut -\texttt{isc}\strut +\texttt{i_confinement_time}\strut \end{minipage} & \begin{minipage}[b]{0.03\columnwidth}\raggedright\strut scaling law\strut \end{minipage} & \begin{minipage}[b]{0.03\columnwidth}\raggedright\strut @@ -1376,9 +1376,9 @@ too high. Laws}{Inverse Quadrature in \textbackslash{}tau\_E Scaling Laws}}\label{inverse-quadrature-in-tau_e-scaling-laws} Switch \texttt{iinvqd} determines whether the energy confinement time -scaling laws due to Kaye-Goldston (\texttt{isc\ =\ 5}) and Goldston -(\texttt{isc\ =\ 9}) should include an inverse quadrature scaling with -the Neo-Alcator result (\texttt{isc\ =\ 1}). A value +scaling laws due to Kaye-Goldston (\texttt{i_confinement_time\ =\ 5}) and Goldston +(\texttt{i_confinement_time\ =\ 9}) should include an inverse quadrature scaling with +the Neo-Alcator result (\texttt{i_confinement_time\ =\ 1}). A value \texttt{iinvqd\ =\ 1}includes this scaling. \subsubsection{Plasma / First Wall Gap}\label{plasma-first-wall-gap} diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index e618aae029..7626d709e7 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -4,11 +4,11 @@ The energy confinement time $\tau_E$ is calculated using one of a choice of empi Many energy confinement time scaling laws are available within PROCESS, for tokamaks, RFPs and stellarators. These are calculated in routine `pcond`. The -value of `isc` determines which of the scalings is used in the plasma energy +value of `i_confinement_time` determines which of the scalings is used in the plasma energy balance calculation. The table below summarises the available scaling laws. The most commonly used is the so-called IPB98(y,2) scaling. -| `isc` | scaling law | reference | +| `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | | 2 | Mirnov (H-mode) | [^1] | diff --git a/documentation/proc-pages/physics-models/plasma_overview.md b/documentation/proc-pages/physics-models/plasma_overview.md index af1c6a9c1e..a48849fa4a 100644 --- a/documentation/proc-pages/physics-models/plasma_overview.md +++ b/documentation/proc-pages/physics-models/plasma_overview.md @@ -30,8 +30,8 @@ calculated plasma resistance is negative. ### Inverse Quadrature in $\tau_E$ Scaling Laws Switch `iinvqd` determines whether the energy confinement time scaling -laws due to Kaye-Goldston (`isc = 5`) and Goldston (`isc = 9`) should include -an inverse quadrature scaling with the Neo-Alcator result (`isc = 1`). A value +laws due to Kaye-Goldston (`i_confinement_time = 5`) and Goldston (`i_confinement_time = 9`) should include +an inverse quadrature scaling with the Neo-Alcator result (`i_confinement_time = 1`). A value `iinvqd = 1`includes this scaling. [^1]: M. Kovari, R. Kemp, H. Lux, P. Knight, J. Morris, D.J. Ward, '“PROCESS”: A systems code for fusion power plants—Part 1: Physics' Fusion Engineering and Design 89 (2014) 3054–3069 diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index cf88a76fb9..7e460ea905 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -1616,7 +1616,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 08cd3a26af..095e5427db 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -1610,7 +1610,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 996702e0a9..d195d75b6c 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -1610,7 +1610,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 14466747cd..f9f713964b 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -1610,7 +1610,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index cce76ccd92..51d09945e2 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -1610,7 +1610,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/examples/data/large_tokamak_IN.DAT b/examples/data/large_tokamak_IN.DAT index fabb66df82..fc4372db13 100644 --- a/examples/data/large_tokamak_IN.DAT +++ b/examples/data/large_tokamak_IN.DAT @@ -420,7 +420,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 03be68e9fc..c69c485ce7 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -9255,7 +9255,7 @@ tbeta = 2.0 * Temperature profile index beta (ipedestal=1) teped = 5.5 * Electron temperature of pedestal (kev) (ipedestal=1) tesep = 0.1 * Electron temperature at separatrix (kev) (ipedestal=1) iprofile = 1 * Switch for current profile consistency; -isc = 34 * Switch for energy confinement time scaling law +i_confinement_time = 34 * Switch for energy confinement time scaling law i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: use input kappa & triang *kappa = 1.7808 kappa = 1.848 diff --git a/examples/data/scan_example_file_IN.DAT b/examples/data/scan_example_file_IN.DAT index 25a6c7c19e..994a839f3d 100644 --- a/examples/data/scan_example_file_IN.DAT +++ b/examples/data/scan_example_file_IN.DAT @@ -420,7 +420,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/process/init.py b/process/init.py index 3501f2b204..a809f3aa7d 100644 --- a/process/init.py +++ b/process/init.py @@ -1207,19 +1207,22 @@ def check_process(): if ( fortran.physics_variables.tauee_in > 1e-10 - and fortran.physics_variables.isc != 48 + and fortran.physics_variables.i_confinement_time != 48 ): # Report error if confinement time is in the input # but the scaling to use it is not selected. - warn("tauee_in is for use with isc=48 only", stacklevel=2) + warn("tauee_in is for use with i_confinement_time=48 only", stacklevel=2) - if fortran.physics_variables.aspect > 1.7 and fortran.physics_variables.isc == 46: + if ( + fortran.physics_variables.aspect > 1.7 + and fortran.physics_variables.i_confinement_time == 46 + ): # NSTX scaling is for A<1.7 warn("NSTX scaling is for A<1.7", stacklevel=2) if ( fortran.physics_variables.i_plasma_current == 2 - and fortran.physics_variables.isc == 42 + and fortran.physics_variables.i_confinement_time == 42 ): raise ProcessValidationError( "Lang 2012 confinement scaling cannot be used for i_plasma_current=2 due to wrong q" diff --git a/process/physics.py b/process/physics.py index fafb07b3a0..da0f5432ae 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2266,7 +2266,7 @@ def physics(self): physics_variables.eps, physics_variables.hfact, physics_variables.iinvqd, - physics_variables.isc, + physics_variables.i_confinement_time, physics_variables.ignite, physics_variables.kappa, physics_variables.kappa95, @@ -5152,7 +5152,7 @@ def outplas(self): po.oblnkl(self.outfile) tauelaw = f2py_compatible_to_string( - physics_variables.tauscl[physics_variables.isc - 1] + physics_variables.tauscl[physics_variables.i_confinement_time - 1] ) po.ocmmnt( @@ -6599,7 +6599,7 @@ def pcond( eps, hfact, iinvqd, - isc, + i_confinement_time, ignite, kappa, kappa95, @@ -6631,7 +6631,7 @@ def pcond( eps : input real : inverse aspect ratio hfact : input real : H factor on energy confinement scalings iinvqd : input integer : switch for inverse quadrature - isc : input integer : switch for energy confinement scaling to use + i_confinement_time : input integer : switch for energy confinement scaling to use ignite : input integer : switch for ignited calculation kappa : input real : plasma elongation kappa95 : input real : plasma elongation at 95% surface @@ -6737,22 +6737,22 @@ def pcond( # Electron energy confinement times # Nec-Alcator(NA) OH scaling - if isc == 1: + if i_confinement_time == 1: # tauee = taueena tauee = hfact * confinement.neo_alcator_confinement_time( n20, rminor, rmajor, qstar ) - elif isc == 2: # Mirnov scaling (H-mode) + elif i_confinement_time == 2: # Mirnov scaling (H-mode) tauee = hfact * 0.2e0 * rminor * np.sqrt(kappa95) * pcur # Merezhkin-Mukhovatov (MM) OH/L-mode scaling - elif isc == 3: + elif i_confinement_time == 3: tauee = hfact * confinement.merezhkin_muhkovatov_confinement_time( rmajor, rminor, kappa95, qstar, dnla20, afuel, ten ) - elif isc == 4: # Shimomura scaling (H-mode) + elif i_confinement_time == 4: # Shimomura scaling (H-mode) tauee = ( hfact * 0.045e0 @@ -6763,7 +6763,7 @@ def pcond( * np.sqrt(m_fuel_amu) ) - elif isc == 5: # Kaye-Goldston scaling (L-mode) + elif i_confinement_time == 5: # Kaye-Goldston scaling (L-mode) tauee = ( hfact * 0.055e0 @@ -6778,7 +6778,7 @@ def pcond( if iinvqd != 0: tauee = 1.0e0 / np.sqrt(1.0e0 / taueena**2 + 1.0e0 / tauee**2) - elif isc == 6: # ITER Power scaling - ITER 89-P (L-mode) + elif i_confinement_time == 6: # ITER Power scaling - ITER 89-P (L-mode) tauee = ( hfact * 0.048e0 @@ -6792,7 +6792,7 @@ def pcond( / np.sqrt(powerht) ) - elif isc == 7: # ITER Offset linear scaling - ITER 89-O (L-mode) + elif i_confinement_time == 7: # ITER Offset linear scaling - ITER 89-O (L-mode) term1 = ( 0.04e0 * pcur**0.5e0 @@ -6814,7 +6814,7 @@ def pcond( ) tauee = hfact * (term1 + term2) - elif isc == 8: # Rebut-Lallia offset linear scaling (L-mode) + elif i_confinement_time == 8: # Rebut-Lallia offset linear scaling (L-mode) rll = (rminor**2 * rmajor * kappa95) ** 0.333e0 tauee = ( hfact @@ -6832,7 +6832,7 @@ def pcond( ) ) - elif isc == 9: # Goldston scaling (L-mode) + elif i_confinement_time == 9: # Goldston scaling (L-mode) tauee = ( hfact * 0.037e0 @@ -6847,7 +6847,7 @@ def pcond( if iinvqd != 0: tauee = 1.0e0 / np.sqrt(1.0e0 / taueena**2 + 1.0e0 / tauee**2) - elif isc == 10: # T10 scaling + elif i_confinement_time == 10: # T10 scaling denfac = dnla20 * rmajor * qstar / (1.3e0 * bt) denfac = min(1.0e0, denfac) tauee = ( @@ -6863,7 +6863,7 @@ def pcond( ** 0.08e0 ) - elif isc == 11: # JAERI scaling + elif i_confinement_time == 11: # JAERI scaling gjaeri = ( zeff**0.4e0 * ((15.0e0 - zeff) / 20.0e0) ** 0.6e0 @@ -6889,7 +6889,7 @@ def pcond( / powerht ) - elif isc == 12: # Kaye-Big scaling + elif i_confinement_time == 12: # Kaye-Big scaling tauee = ( hfact * 0.105e0 @@ -6903,7 +6903,7 @@ def pcond( / powerht**0.5e0 ) - elif isc == 13: # ITER H-mode scaling - ITER H90-P + elif i_confinement_time == 13: # ITER H-mode scaling - ITER H90-P tauee = ( hfact * 0.064e0 @@ -6917,7 +6917,9 @@ def pcond( / np.sqrt(powerht) ) - elif isc == 14: # Minimum of ITER 89-P (isc=6) and ITER 89-O (isc=7) + elif ( + i_confinement_time == 14 + ): # Minimum of ITER 89-P (i_confinement_time=6) and ITER 89-O (i_confinement_time=7) tauit1 = ( hfact * 0.048e0 @@ -6952,7 +6954,7 @@ def pcond( tauit2 = hfact * (term1 + term2) tauee = min(tauit1, tauit2) - elif isc == 15: # Riedel scaling (L-mode) + elif i_confinement_time == 15: # Riedel scaling (L-mode) tauee = ( hfact * 0.044e0 @@ -6965,7 +6967,7 @@ def pcond( / powerht**0.537e0 ) - elif isc == 16: # Christiansen et al scaling (L-mode) + elif i_confinement_time == 16: # Christiansen et al scaling (L-mode) tauee = ( hfact * 0.24e0 @@ -6978,7 +6980,7 @@ def pcond( / (powerht**0.79e0 * m_fuel_amu**0.02e0) ) - elif isc == 17: # Lackner-Gottardi scaling (L-mode) + elif i_confinement_time == 17: # Lackner-Gottardi scaling (L-mode) qhat = (1.0e0 + kappa95**2) * rminor**2 * bt / (0.4e0 * pcur * rmajor) tauee = ( hfact @@ -6993,7 +6995,7 @@ def pcond( / powerht**0.6e0 ) - elif isc == 18: # Neo-Kaye scaling (L-mode) + elif i_confinement_time == 18: # Neo-Kaye scaling (L-mode) tauee = ( hfact * 0.063e0 @@ -7007,7 +7009,7 @@ def pcond( / powerht**0.59e0 ) - elif isc == 19: # Riedel scaling (H-mode) + elif i_confinement_time == 19: # Riedel scaling (H-mode) tauee = ( hfact * 0.1e0 @@ -7021,7 +7023,7 @@ def pcond( / powerht**0.486e0 ) - elif isc == 20: # Amended version of ITER H90-P law + elif i_confinement_time == 20: # Amended version of ITER H90-P law # Nuclear Fusion 32 (1992) 318 tauee = ( hfact @@ -7033,7 +7035,7 @@ def pcond( / (powerht**0.47e0 * kappa**0.19e0) ) - elif isc == 21: # Large Helical Device scaling (stellarators) + elif i_confinement_time == 21: # Large Helical Device scaling (stellarators) # S.Sudo, Y.Takeiri, H.Zushi et al., Nuclear Fusion 30 (1990) 11 tauee = ( hfact @@ -7045,7 +7047,7 @@ def pcond( * powerht ** (-0.58e0) ) - elif isc == 22: # Gyro-reduced Bohm scaling + elif i_confinement_time == 22: # Gyro-reduced Bohm scaling # R.J.Goldston, H.Biglari, G.W.Hammett et al., Bull.Am.Phys.Society, # volume 34, 1964 (1989) tauee = ( @@ -7058,7 +7060,7 @@ def pcond( * rmajor**0.6e0 ) - elif isc == 23: # Lackner-Gottardi stellarator scaling + elif i_confinement_time == 23: # Lackner-Gottardi stellarator scaling # K.Lackner and N.A.O.Gottardi, Nuclear Fusion, 30, p.767 (1990) iotabar = q # dummy argument q is actual argument iotabar for stellarators tauee = ( @@ -7073,7 +7075,7 @@ def pcond( ) elif ( - isc == 24 + i_confinement_time == 24 ): # ITER-93H scaling (ELM-free; multiply by 0.85 for ELMy version) # S.Kaye and the ITER Joint Central Team and Home Teams, in Plasma # Physics and Controlled Nuclear Fusion Research (Proc. 15th @@ -7094,7 +7096,7 @@ def pcond( # Next two are ITER-97 H-mode scalings # J. G. Cordey et al., EPS Berchtesgaden, 1997 - elif isc == 26: # ELM-free: ITERH-97P + elif i_confinement_time == 26: # ELM-free: ITERH-97P tauee = ( hfact * 0.031e0 @@ -7108,7 +7110,7 @@ def pcond( * m_fuel_amu**0.42e0 ) - elif isc == 27: # ELMy: ITERH-97P(y) + elif i_confinement_time == 27: # ELMy: ITERH-97P(y) tauee = ( hfact * 0.029e0 @@ -7122,7 +7124,7 @@ def pcond( * m_fuel_amu**0.2e0 ) - elif isc == 28: # ITER-96P (= ITER-97L) L-mode scaling + elif i_confinement_time == 28: # ITER-96P (= ITER-97L) L-mode scaling # S.M.Kaye and the ITER Confinement Database Working Group, # Nuclear Fusion 37 (1997) 1303 # N.B. tau_th formula used @@ -7139,7 +7141,7 @@ def pcond( * powerht ** (-0.73e0) ) - elif isc == 29: # Valovic modified ELMy-H mode scaling + elif i_confinement_time == 29: # Valovic modified ELMy-H mode scaling tauee = ( hfact * 0.067e0 @@ -7153,7 +7155,7 @@ def pcond( * powerht ** (-0.68e0) ) - elif isc == 30: # Kaye PPPL Workshop April 1998 L-mode scaling + elif i_confinement_time == 30: # Kaye PPPL Workshop April 1998 L-mode scaling tauee = ( hfact * 0.021e0 @@ -7167,7 +7169,7 @@ def pcond( * powerht ** (-0.73e0) ) - elif isc == 31: # ITERH-PB98P(y), ELMy H-mode scaling + elif i_confinement_time == 31: # ITERH-PB98P(y), ELMy H-mode scaling tauee = ( hfact * 0.0615e0 @@ -7181,7 +7183,7 @@ def pcond( * m_fuel_amu**0.2e0 ) - elif isc == 32: # IPB98(y), ELMy H-mode scaling + elif i_confinement_time == 32: # IPB98(y), ELMy H-mode scaling # Data selection : full ITERH.DB3 # Nuclear Fusion 39 (1999) 2175, Table 5 tauee = ( @@ -7197,7 +7199,7 @@ def pcond( * m_fuel_amu**0.2e0 ) - elif isc == 33: # IPB98(y,1), ELMy H-mode scaling + elif i_confinement_time == 33: # IPB98(y,1), ELMy H-mode scaling # Data selection : full ITERH.DB3 # Nuclear Fusion 39 (1999) 2175, Table 5 tauee = ( @@ -7213,7 +7215,7 @@ def pcond( * m_fuel_amu**0.13e0 ) - elif isc == 34: # IPB98(y,2), ELMy H-mode scaling + elif i_confinement_time == 34: # IPB98(y,2), ELMy H-mode scaling # Data selection : ITERH.DB3, NBI only # Nuclear Fusion 39 (1999) 2175, Table 5 tauee = ( @@ -7229,7 +7231,7 @@ def pcond( * m_fuel_amu**0.19e0 ) - elif isc == 35: # IPB98(y,3), ELMy H-mode scaling + elif i_confinement_time == 35: # IPB98(y,3), ELMy H-mode scaling # Data selection : ITERH.DB3, NBI only, no C-Mod # Nuclear Fusion 39 (1999) 2175, Table 5 tauee = ( @@ -7245,7 +7247,7 @@ def pcond( * m_fuel_amu**0.20e0 ) - elif isc == 36: # IPB98(y,4), ELMy H-mode scaling + elif i_confinement_time == 36: # IPB98(y,4), ELMy H-mode scaling # Data selection : ITERH.DB3, NBI only, ITER like devices # Nuclear Fusion 39 (1999) 2175, Table 5 tauee = ( @@ -7261,7 +7263,7 @@ def pcond( * m_fuel_amu**0.17e0 ) - elif isc == 37: # ISS95 stellarator scaling + elif i_confinement_time == 37: # ISS95 stellarator scaling # U. Stroth et al., Nuclear Fusion, 36, p.1063 (1996) # Assumes kappa = 1.0, triang = 0.0 iotabar = q # dummy argument q is actual argument iotabar for stellarators @@ -7276,7 +7278,7 @@ def pcond( * iotabar**0.4e0 ) - elif isc == 38: # ISS04 stellarator scaling + elif i_confinement_time == 38: # ISS04 stellarator scaling # H. Yamada et al., Nuclear Fusion, 45, p.1684 (2005) # Assumes kappa = 1.0, triang = 0.0 iotabar = q # dummy argument q is actual argument iotabar for stellarators @@ -7291,7 +7293,7 @@ def pcond( * iotabar**0.41e0 ) - elif isc == 39: # DS03 beta-independent H-mode scaling + elif i_confinement_time == 39: # DS03 beta-independent H-mode scaling # T. C. Luce, C. C. Petty and J. G. Cordey, # Plasma Phys. Control. Fusion 50 (2008) 043001, eqn.4.13, p.67 tauee = ( @@ -7307,7 +7309,9 @@ def pcond( * m_fuel_amu**0.14e0 ) - elif isc == 40: # "Non-power law" (NPL) Murari energy confinement scaling + elif ( + i_confinement_time == 40 + ): # "Non-power law" (NPL) Murari energy confinement scaling # Based on the ITPA database of H-mode discharges # A new approach to the formulation and validation of scaling expressions for plasma confinement in tokamaks # A. Murari et al 2015 Nucl. Fusion 55 073009, doi:10.1088/0029-5515/55/7/073009 @@ -7325,7 +7329,9 @@ def pcond( * h ) - elif isc == 41: # Beta independent dimensionless confinement scaling + elif ( + i_confinement_time == 41 + ): # Beta independent dimensionless confinement scaling # C.C. Petty 2008 Phys. Plasmas 15, 080501, equation 36 # Note that there is no dependence on the average fuel mass 'm_fuel_amu' tauee = ( @@ -7340,7 +7346,7 @@ def pcond( * aspect ** (-0.84e0) ) - elif isc == 42: # High density relevant confinement scaling + elif i_confinement_time == 42: # High density relevant confinement scaling # P.T. Lang et al. 2012, IAEA conference proceeding EX/P4-01 # q should be q95: incorrect if i_plasma_current = 2 (ST current scaling) qratio = q / qstar @@ -7363,7 +7369,9 @@ def pcond( * nratio ** (-0.22e0 * np.log(nratio)) ) - elif isc == 43: # Hubbard et al. 2017 I-mode confinement time scaling - nominal + elif ( + i_confinement_time == 43 + ): # Hubbard et al. 2017 I-mode confinement time scaling - nominal tauee = ( hfact * 0.014e0 @@ -7373,7 +7381,9 @@ def pcond( * powerht ** (-0.29e0) ) - elif isc == 44: # Hubbard et al. 2017 I-mode confinement time scaling - lower + elif ( + i_confinement_time == 44 + ): # Hubbard et al. 2017 I-mode confinement time scaling - lower tauee = ( hfact * 0.014e0 @@ -7383,7 +7393,9 @@ def pcond( * powerht ** (-0.33e0) ) - elif isc == 45: # Hubbard et al. 2017 I-mode confinement time scaling - upper + elif ( + i_confinement_time == 45 + ): # Hubbard et al. 2017 I-mode confinement time scaling - upper tauee = ( hfact * 0.014e0 @@ -7393,7 +7405,7 @@ def pcond( * powerht ** (-0.25e0) ) - elif isc == 46: # NSTX, ELMy H-mode scaling + elif i_confinement_time == 46: # NSTX, ELMy H-mode scaling # NSTX scaling with IPB98(y,2) for other variables # Menard 2019, Phil. Trans. R. Soc. A 377:20170440 # Kaye et al. 2006, Nucl. Fusion 46 848 @@ -7410,7 +7422,7 @@ def pcond( * m_fuel_amu**0.19e0 ) - elif isc == 47: # NSTX-Petty08 Hybrid + elif i_confinement_time == 47: # NSTX-Petty08 Hybrid # Linear interpolation between NSTX and Petty08 in eps # Menard 2019, Phil. Trans. R. Soc. A 377:20170440 if (1.0e0 / aspect) <= 0.4e0: @@ -7470,7 +7482,7 @@ def pcond( + ((0.6e0 - (1.0e0 / aspect)) / (0.6e0 - 0.4e0)) * taupetty ) - elif isc == 48: # NSTX gyro-Bohm (Buxton) + elif i_confinement_time == 48: # NSTX gyro-Bohm (Buxton) # P F Buxton et al. 2019 Plasma Phys. Control. Fusion 61 035006 tauee = ( hfact @@ -7482,10 +7494,10 @@ def pcond( * dnla20 ** (-0.05e0) ) - elif isc == 49: # tauee is an input + elif i_confinement_time == 49: # tauee is an input tauee = hfact * physics_variables.tauee_in - elif isc == 50: # ITPA20 Issue #3164 + elif i_confinement_time == 50: # ITPA20 Issue #3164 # The updated ITPA global H-mode confinement database: description and analysis # G. Verdoolaege et al 2021 Nucl. Fusion 61 076006 DOI 10.1088/1741-4326/abdb91 @@ -7519,7 +7531,7 @@ def pcond( ) else: - error_handling.idiags[0] = isc + error_handling.idiags[0] = i_confinement_time error_handling.report_error(81) # Ion energy confinement time diff --git a/process/stellarator.py b/process/stellarator.py index 5cda95e2f0..a337837a7a 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -231,7 +231,7 @@ def stigma(self): physics_variables.eps, 2.0, physics_variables.iinvqd, - physics_variables.isc, + physics_variables.i_confinement_time, physics_variables.ignite, physics_variables.kappa, physics_variables.kappa95, @@ -4472,7 +4472,7 @@ def stphys(self, output): physics_variables.eps, physics_variables.hfact, physics_variables.iinvqd, - physics_variables.isc, + physics_variables.i_confinement_time, physics_variables.ignite, physics_variables.kappa, physics_variables.kappa95, diff --git a/process/utilities/errorlist.json b/process/utilities/errorlist.json index 273809dc7f..8c8d066782 100644 --- a/process/utilities/errorlist.json +++ b/process/utilities/errorlist.json @@ -413,7 +413,7 @@ { "no": 81, "level": 3, - "message": "PCOND: Illegal value for isc" + "message": "PCOND: Illegal value for i_confinement_time" }, { "no": 82, @@ -1108,7 +1108,7 @@ { "no": 220, "level": 1, - "message": "CHECK: tauee_in is for use with isc=48 only" + "message": "CHECK: tauee_in is for use with i_confinement_time=48 only" }, { "no": 221, diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index e3aa4079b9..b3240c4fe3 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -305,7 +305,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) ccl0_ma, ccls_ma, ld_ratio_cst use physics_variables, only: ipedestal, taumax, i_single_null, fvsbrnni, & rhopedt, f_vol_plasma, f_deuterium, ffwal, i_beta_component, itartpf, ilhthresh, & - fpdivlim, beta_poloidal_eps_max, isc, kappa95, aspect, f_r_conducting_wall, nesep, c_beta, csawth, dene, & + fpdivlim, beta_poloidal_eps_max, i_confinement_time, kappa95, aspect, f_r_conducting_wall, nesep, c_beta, csawth, dene, & ftar, plasma_res_factor, f_sync_reflect, f_nd_beam_electron, beta, neped, hfact, beta_norm_max, & fgwsep, rhopedn, tratio, q0, i_plasma_geometry, i_plasma_shape, fne0, ignite, f_tritium, & i_beta_fast_alpha, tauee_in, alphaj, alphat, i_plasma_current, q, ti, tesep, rli, triang, & @@ -660,8 +660,8 @@ subroutine parse_input_file(in_file,out_file,show_changes) case ('iradloss') call parse_int_variable('iradloss', iradloss, 0, 2, & 'Switch for radiation loss term inclusion in power balance') - case ('isc') - call parse_int_variable('isc', isc, 1, ipnlaws, & + case ('i_confinement_time') + call parse_int_variable('i_confinement_time', i_confinement_time, 1, ipnlaws, & 'Switch for confinement scaling law') case ('i_plasma_wall_gap') call parse_int_variable('i_plasma_wall_gap', i_plasma_wall_gap, 0, 1, & @@ -750,7 +750,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 'Electron temperature (keV)') case ('tauee_in') call parse_real_variable('tauee_in', tauee_in, 0.0D0, 100.0D0, & - 'Input electron energy confinement time (sec) (isc=48 only)') + 'Input electron energy confinement time (sec) (i_confinement_time=48 only)') case ('taulimit') call parse_real_variable('taulimit', taulimit, 1.0D0, 100.0D0, & 'Lower limit on taup/taueff the ratio of alpha particle to energy confinement times') diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 2807c0958d..e4f15fc241 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -418,7 +418,7 @@ module physics_variables !! - =2 total power lost is scaling power only, with no additional !! allowance for radiation. This is not recommended for power plant models. - integer :: isc + integer :: i_confinement_time !! switch for energy confinement time scaling law (see description in `tauscl`) character*24, parameter, dimension(ipnlaws) :: tauscl = (/ & @@ -870,7 +870,7 @@ module physics_variables !! electron energy confinement time (sec) real(dp) :: tauee_in - !! Input electron energy confinement time (sec) (`isc=48 only`) + !! Input electron energy confinement time (sec) (`i_confinement_time=48 only`) real(dp) :: taueff !! global thermal energy confinement time (sec) @@ -1050,7 +1050,7 @@ subroutine init_physics_variables tesep = 0.1D0 iprofile = 1 iradloss = 1 - isc = 34 + i_confinement_time = 34 i_plasma_wall_gap = 1 i_plasma_geometry = 0 i_plasma_shape = 0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index d9ac205485..ed0c726c47 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -1609,7 +1609,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index cf209d9964..9f19c980ff 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -1610,7 +1610,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 5bf41086d4..7bddfcab36 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -1610,7 +1610,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index b5f81c21a5..2d698f0b16 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -1610,7 +1610,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/integration/data/large_tokamak_IN.DAT b/tests/integration/data/large_tokamak_IN.DAT index fabb66df82..fc4372db13 100644 --- a/tests/integration/data/large_tokamak_IN.DAT +++ b/tests/integration/data/large_tokamak_IN.DAT @@ -420,7 +420,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 1ba5f943a7..a188cfd066 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -1611,7 +1611,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/integration/data/large_tokamak_once_through.IN.DAT b/tests/integration/data/large_tokamak_once_through.IN.DAT index f82d9ea7f3..127658e34a 100644 --- a/tests/integration/data/large_tokamak_once_through.IN.DAT +++ b/tests/integration/data/large_tokamak_once_through.IN.DAT @@ -340,7 +340,7 @@ tbeta = 2.0 * temperature profile index beta (`ipedestal==1) teped = 5.5 * electron temperature of pedestal (keV) (`ipedestal==1') tesep = 0.1 * electron temperature at separatrix (keV) (`ipedestal==1`) calculated if reinke iprofile = 1 * switch for current profile consistency; -isc = 34 * switch for energy confinement time scaling law (see description in `tauscl`) +i_confinement_time = 34 * switch for energy confinement time scaling law (see description in `tauscl`) i_plasma_geometry = 0 * switch for plasma cross-sectional shape calculation; kappa = 1.85 * plasma separatrix elongation (calculated if `i_plasma_geometry = 1-5; 7 or 9-10`) q = 3.7339078193128556 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 diff --git a/tests/integration/data/ref_IN.DAT b/tests/integration/data/ref_IN.DAT index 9abff7e2d2..77de4f586f 100644 --- a/tests/integration/data/ref_IN.DAT +++ b/tests/integration/data/ref_IN.DAT @@ -276,7 +276,7 @@ tbeta = 2.0 * Temperature profile index beta (ipedestal=1) teped = 5.5 * Electron temperature of pedestal (kev) (ipedestal=1) tesep = 0.1 * Electron temperature at separatrix (kev) (ipedestal=1) iprofile = 1 * Switch for current profile consistency; -isc = 34 * Switch for energy confinement time scaling law +i_confinement_time = 34 * Switch for energy confinement time scaling law i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: use input kappa & triang *kappa = 1.7808 kappa = 1.848 diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 60eb72c3fc..24bd845ae0 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -17896,7 +17896,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 639be5fc29..6e53be09ad 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -9255,7 +9255,7 @@ tbeta = 2.0 * Temperature profile index beta (ipedestal=1) teped = 5.5 * Electron temperature of pedestal (kev) (ipedestal=1) tesep = 0.1 * Electron temperature at separatrix (kev) (ipedestal=1) iprofile = 1 * Switch for current profile consistency; -isc = 34 * Switch for energy confinement time scaling law +i_confinement_time = 34 * Switch for energy confinement time scaling law i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: use input kappa & triang *kappa = 1.7808 kappa = 1.848 diff --git a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT index 22aff11a66..01adeafb3d 100644 --- a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT +++ b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT @@ -276,7 +276,7 @@ tbeta = 2.0 * Temperature profile index beta (ipedestal=1) teped = 5.5 * Electron temperature of pedestal (kev) (ipedestal=1) tesep = 0.1 * Electron temperature at separatrix (kev) (ipedestal=1) iprofile = 1 * Switch for current profile consistency; -isc = 34 * Switch for energy confinement time scaling law +i_confinement_time = 34 * Switch for energy confinement time scaling law i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: use input kappa & triang *kappa = 1.7808 kappa = 1.848 diff --git a/tests/integration/data/uncertainties_ref_IN.DAT b/tests/integration/data/uncertainties_ref_IN.DAT index 28f0d8b390..3f99387b56 100644 --- a/tests/integration/data/uncertainties_ref_IN.DAT +++ b/tests/integration/data/uncertainties_ref_IN.DAT @@ -276,7 +276,7 @@ tbeta = 2.0 * Temperature profile index beta (ipedestal=1) teped = 5.5 * Electron temperature of pedestal (kev) (ipedestal=1) tesep = 0.1 * Electron temperature at separatrix (kev) (ipedestal=1) iprofile = 1 * Switch for current profile consistency; -isc = 34 * Switch for energy confinement time scaling law +i_confinement_time = 34 * Switch for energy confinement time scaling law i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: use input kappa & triang *kappa = 1.7808 kappa = 1.848 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index bb4b24c2b1..8feff6f6a5 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2665,7 +2665,7 @@ "irefprop": 1.0, "irfcd": 1.0, "is_leg_cp_temp_same": 0.0, - "isc": 34.0, + "i_confinement_time": 34.0, "iscan_global": 0.0, "iscenr": 2.0, "i_plasma_wall_gap": 1.0, @@ -9905,7 +9905,7 @@ "irefprop": "Switch to use REFPROP routines (stellarator only)", "irfcd": "Switch for current drive calculation:\n
    \n
  • =0 turned off
  • \n
  • =1 turned on
  • \n
", "is_leg_cp_temp_same": "", - "isc": "switch for energy confinement time scaling law (see description in `tauscl`)", + "i_confinement_time": "switch for energy confinement time scaling law (see description in `tauscl`)", "iscan_global": "Makes iscan available globally.", "iscenr": "Switch for PF coil energy storage option:\n
    \n
  • =1 all power from MGF (motor-generator flywheel) units
  • \n
  • =2 all pulsed power from line
  • \n
  • =3 PF power from MGF, heating from line
  • \n
", "i_plasma_wall_gap": "switch for plasma-first wall clearances:\n
    \n
  • =0 use 10% of rminor
  • \n
  • =1 use input (dr_fw_plasma_gap_inboard and dr_fw_plasma_gap_outboard)
  • \n
", @@ -10732,7 +10732,7 @@ "taubeam": "neutral beam e-decay lengths to plasma centre", "taucq": "allowable TF quench time (s)", "tauee": "electron energy confinement time (sec)", - "tauee_in": "Input electron energy confinement time (sec) (`isc=48 only`)", + "tauee_in": "Input electron energy confinement time (sec) (`i_confinement_time=48 only`)", "taueff": "global thermal energy confinement time (sec)", "tauei": "ion energy confinement time (sec)", "taufall": "Lithium Fall Time (s)", @@ -19159,7 +19159,7 @@ "tesep", "iprofile", "iradloss", - "isc", + "i_confinement_time", "tauscl", "i_plasma_wall_gap", "i_plasma_geometry", @@ -20502,7 +20502,7 @@ "ireactor": "int_variable", "irefprop": "int_variable", "irfcd": "int_variable", - "isc": "int_variable", + "i_confinement_time": "int_variable", "iscenr": "int_variable", "i_plasma_wall_gap": "int_variable", "i_plasma_geometry": "int_variable", diff --git a/tests/regression/input_files/large_tokamak.IN.DAT b/tests/regression/input_files/large_tokamak.IN.DAT index 74c517f11c..f474331ed8 100644 --- a/tests/regression/input_files/large_tokamak.IN.DAT +++ b/tests/regression/input_files/large_tokamak.IN.DAT @@ -420,7 +420,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/regression/input_files/large_tokamak_nof.IN.DAT b/tests/regression/input_files/large_tokamak_nof.IN.DAT index 8c2cd0d8ea..7c98ef9aac 100644 --- a/tests/regression/input_files/large_tokamak_nof.IN.DAT +++ b/tests/regression/input_files/large_tokamak_nof.IN.DAT @@ -402,7 +402,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/regression/input_files/large_tokamak_once_through.IN.DAT b/tests/regression/input_files/large_tokamak_once_through.IN.DAT index 174aadcf88..b883a67a50 100644 --- a/tests/regression/input_files/large_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/large_tokamak_once_through.IN.DAT @@ -340,7 +340,7 @@ tbeta = 2.0 * temperature profile index beta (`ipedestal==1) teped = 5.5 * electron temperature of pedestal (keV) (`ipedestal==1') tesep = 0.1 * electron temperature at separatrix (keV) (`ipedestal==1`) calculated if reinke iprofile = 1 * switch for current profile consistency; -isc = 34 * switch for energy confinement time scaling law (see description in `tauscl`) +i_confinement_time = 34 * switch for energy confinement time scaling law (see description in `tauscl`) i_plasma_geometry = 0 * switch for plasma cross-sectional shape calculation; kappa = 1.85 * plasma separatrix elongation (calculated if `i_plasma_geometry = 1-5; 7 or 9-10`) q = 3.7339078193128556 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index c45fb0f3ae..25668b75e7 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -401,7 +401,7 @@ q0 = 2.0 * DESCRIPTION: Switch for ignited plasma assumption * JUSTIFICATION: Non ignited plasma, default = Not ignited -*isc = +*i_confinement_time = * DESCRIPTION: Switch for confinement scaling law (default=34, IPB98(y,2)) * JUSTIFICATION: Not set, assuming default value @@ -433,8 +433,8 @@ boundu(21) = 10.0 * JUSTIFICATION: Not setting a limit on confinement time. *tauee_in = -* DESCRIPTION: Input electron energy confinement time (sec) (isc=49 only)' -* JUSTIFICATION: Not set, not ussing isc = 49. +* DESCRIPTION: Input electron energy confinement time (sec) (i_confinement_time=49 only)' +* JUSTIFICATION: Not set, not ussing i_confinement_time = 49. *iinvqd = * DESCRIPTION: Switch for inverse quadrature in L-mode scaling laws 5 and 9 diff --git a/tests/regression/input_files/stellarator.IN.DAT b/tests/regression/input_files/stellarator.IN.DAT index bbeb36f2ad..cbeb5e73a9 100644 --- a/tests/regression/input_files/stellarator.IN.DAT +++ b/tests/regression/input_files/stellarator.IN.DAT @@ -129,7 +129,7 @@ ignite = 1 *Switch for ignition assumption (1: Ignited) iinvqd = 1 *Switch for inverse quadrature in L-mode scaling laws 5 and 9 (1: Inverse quadrature with Neo-Alcator tau-E used) ipedestal = 0 *Switch for pedestal profiles (0: Parabolic Profiles) iradloss = 1 *Switch for radiation loss term usage in power balance (1: Total power lost is scaling power plus core radiation only) -isc = 38 *Switch for energy confinement time scaling law (38: ISS04, 49: ISS04-Gyro-Bohm) +i_confinement_time = 38 *Switch for energy confinement time scaling law (38: ISS04, 49: ISS04-Gyro-Bohm) kappa = 1.001 *Plasma separatrix elongation f_sync_reflect = 0.6 *Synchrotron wall reflectivity factor te = 6.019 *Volume averaged electron temperature (keV) diff --git a/tests/unit/data/large_tokamak_IN.DAT b/tests/unit/data/large_tokamak_IN.DAT index ad60bc2746..a506f48517 100644 --- a/tests/unit/data/large_tokamak_IN.DAT +++ b/tests/unit/data/large_tokamak_IN.DAT @@ -420,7 +420,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index a9cde9b9db..1eadf524f8 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -1611,7 +1611,7 @@ tesep = 0.1 iprofile = 1 * Switch for energy confinement time scaling law -isc = 34 +i_confinement_time = 34 * Safety factor on axis q0 = 1.0 diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 519e2997d9..fc7f40723d 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2172,7 +2172,7 @@ class PcondParam(NamedTuple): iinvqd: Any = None - isc: Any = None + i_confinement_time: Any = None ignite: Any = None @@ -2254,7 +2254,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=32, + i_confinement_time=32, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2298,7 +2298,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=33, + i_confinement_time=33, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2342,7 +2342,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=34, + i_confinement_time=34, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2386,7 +2386,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=35, + i_confinement_time=35, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2430,7 +2430,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=36, + i_confinement_time=36, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2474,7 +2474,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=37, + i_confinement_time=37, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2518,7 +2518,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=38, + i_confinement_time=38, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2562,7 +2562,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=39, + i_confinement_time=39, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2606,7 +2606,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=40, + i_confinement_time=40, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2650,7 +2650,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=41, + i_confinement_time=41, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2694,7 +2694,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=42, + i_confinement_time=42, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2738,7 +2738,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=43, + i_confinement_time=43, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2782,7 +2782,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=44, + i_confinement_time=44, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2826,7 +2826,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=45, + i_confinement_time=45, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2870,7 +2870,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=46, + i_confinement_time=46, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2914,7 +2914,7 @@ class PcondParam(NamedTuple): p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, - isc=47, + i_confinement_time=47, ignite=0, m_fuel_amu=2.5, alpha_power_total=319.03020327154269, @@ -2983,7 +2983,7 @@ def test_pcond(pcondparam, monkeypatch, physics): kappaa, ptrepv, ptripv, tauee, tauei, taueff, powerht = physics.pcond( iinvqd=pcondparam.iinvqd, - isc=pcondparam.isc, + i_confinement_time=pcondparam.i_confinement_time, ignite=pcondparam.ignite, m_fuel_amu=pcondparam.m_fuel_amu, alpha_power_total=pcondparam.alpha_power_total, From dbe426e91cdbd1b5444ecf78b0733584209d1c87 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 17 Jan 2025 18:03:22 +0000 Subject: [PATCH 004/106] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Make=20user=20inpu?= =?UTF-8?q?t=20confinement=20time=20be=20option=20zero=20for=20i=5Fconfine?= =?UTF-8?q?ment=5Ftime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 9 +++++---- source/fortran/input.f90 | 2 +- source/fortran/physics_variables.f90 | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/process/physics.py b/process/physics.py index da0f5432ae..5d0c9d7d77 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6736,6 +6736,10 @@ def pcond( # Electron energy confinement times + # User defined confinement time + if i_confinement_time == 0: # tauee is an input + tauee = hfact * physics_variables.tauee_in + # Nec-Alcator(NA) OH scaling if i_confinement_time == 1: # tauee = taueena @@ -7494,10 +7498,7 @@ def pcond( * dnla20 ** (-0.05e0) ) - elif i_confinement_time == 49: # tauee is an input - tauee = hfact * physics_variables.tauee_in - - elif i_confinement_time == 50: # ITPA20 Issue #3164 + elif i_confinement_time == 49: # ITPA20 Issue #3164 # The updated ITPA global H-mode confinement database: description and analysis # G. Verdoolaege et al 2021 Nucl. Fusion 61 076006 DOI 10.1088/1741-4326/abdb91 diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index b3240c4fe3..c26183f511 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -661,7 +661,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) call parse_int_variable('iradloss', iradloss, 0, 2, & 'Switch for radiation loss term inclusion in power balance') case ('i_confinement_time') - call parse_int_variable('i_confinement_time', i_confinement_time, 1, ipnlaws, & + call parse_int_variable('i_confinement_time', i_confinement_time, 0, ipnlaws, & 'Switch for confinement scaling law') case ('i_plasma_wall_gap') call parse_int_variable('i_plasma_wall_gap', i_plasma_wall_gap, 0, 1, & diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index e4f15fc241..3db55d6dd8 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -14,7 +14,7 @@ module physics_variables public - integer, parameter :: ipnlaws = 50 + integer, parameter :: ipnlaws = 49 !! number of energy confinement time scaling laws real(dp) :: m_beam_amu @@ -422,6 +422,7 @@ module physics_variables !! switch for energy confinement time scaling law (see description in `tauscl`) character*24, parameter, dimension(ipnlaws) :: tauscl = (/ & + 'Input tauee_in ', & 'Neo-Alcator (ohmic)', & 'Mirnov (H)', & 'Merezkhin-Muhkovatov (L)', & From 3fb136478e4948405ea86d5e61647bb7843d7c90 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 09:44:09 +0000 Subject: [PATCH 005/106] =?UTF-8?q?=E2=9C=A8=20Add=20Mirnov=20confinement?= =?UTF-8?q?=20time=20calculation=20and=20integrate=20into=20physics=20modu?= =?UTF-8?q?le?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/confinement_time.py | 22 ++++++++++++++++++++++ process/physics.py | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/process/confinement_time.py b/process/confinement_time.py index 4c9631562b..2833f90bd7 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -26,6 +26,28 @@ def neo_alcator_confinement_time( return 0.07e0 * dene20 * rminor * rmajor * rmajor * qstar +def mirnov_confinement_time(rminor: float, kappa95: float, pcur: float) -> float: + """ + Calculate the Mirnov scaling (H-mode) confinement time + + Parameters: + hfact (float): H-factor + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + pcur (float): Plasma current [MA] + + Returns: + float: Mirnov scaling confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + return 0.2e0 * rminor * np.sqrt(kappa95) * pcur + + def merezhkin_muhkovatov_confinement_time( rmajor: float, rminor: float, diff --git a/process/physics.py b/process/physics.py index 5d0c9d7d77..d61eb23631 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6747,8 +6747,9 @@ def pcond( n20, rminor, rmajor, qstar ) + # "Mirnov"-like scaling (H-mode) elif i_confinement_time == 2: # Mirnov scaling (H-mode) - tauee = hfact * 0.2e0 * rminor * np.sqrt(kappa95) * pcur + tauee = hfact * confinement.mirnov_confinement_time(rminor, kappa95, pcur) # Merezhkin-Mukhovatov (MM) OH/L-mode scaling elif i_confinement_time == 3: From 4cb0614355da0a635413e28d17d466de722f32da Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 09:49:19 +0000 Subject: [PATCH 006/106] =?UTF-8?q?=E2=9C=A8=20Add=20Shimomura=20confineme?= =?UTF-8?q?nt=20time=20calculation=20and=20integrate=20into=20physics=20mo?= =?UTF-8?q?dule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/confinement_time.py | 25 +++++++++++++++++++++++++ process/physics.py | 13 ++++--------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/process/confinement_time.py b/process/confinement_time.py index 2833f90bd7..2d8c0e818e 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -88,3 +88,28 @@ def merezhkin_muhkovatov_confinement_time( * np.sqrt(afuel) / np.sqrt(ten / 10.0e0) ) + + +def shimomura_confinement_time( + rmajor: float, rminor: float, bt: float, kappa95: float, afuel: float +) -> float: + """ + Calculate the Shimomura (S) optimized H-mode scaling confinement time + + Parameters: + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + bt (float): Toroidal magnetic field [T] + kappa95 (float): Plasma elongation at 95% flux surface + afuel (float): Fuel atomic mass number + + Returns: + float: Shimomura confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + return 0.045e0 * rmajor * rminor * bt * np.sqrt(kappa95) * np.sqrt(afuel) diff --git a/process/physics.py b/process/physics.py index d61eb23631..8920b74302 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6757,15 +6757,10 @@ def pcond( rmajor, rminor, kappa95, qstar, dnla20, afuel, ten ) - elif i_confinement_time == 4: # Shimomura scaling (H-mode) - tauee = ( - hfact - * 0.045e0 - * rmajor - * rminor - * bt - * np.sqrt(kappa95) - * np.sqrt(m_fuel_amu) + # Shimomura (S) optimized H-mode scaling + elif i_confinement_time == 4: + tauee = hfact * confinement.shimomura_confinement_time( + rmajor, rminor, bt, kappa95, afuel ) elif i_confinement_time == 5: # Kaye-Goldston scaling (L-mode) From ef764c7f220ceecbd7cfe2d3042a85815248547e Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 10:56:15 +0000 Subject: [PATCH 007/106] =?UTF-8?q?=E2=9C=A8=20Add=20Kaye-Goldston=20confi?= =?UTF-8?q?nement=20time=20calculation=20and=20update=20documentation=20fo?= =?UTF-8?q?r=20available=20scalings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 64 +++++++++++++++++++ process/confinement_time.py | 46 +++++++++++++ process/physics.py | 28 +++++--- 3 files changed, 128 insertions(+), 10 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 7626d709e7..ecfeda591f 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -8,6 +8,70 @@ value of `i_confinement_time` determines which of the scalings is used in the pl balance calculation. The table below summarises the available scaling laws. The most commonly used is the so-called IPB98(y,2) scaling. +## Available confinement time scalings + +### 0: User input confinement time + +Is selected with `i_confinement_time = 0` + +$$ +\tau_{\text{E}} = \mathtt{tauee\_in} +$$ + +------------ + +### 1: Nec-Alcator (NA) OH scaling + +Is selected with `i_confinement_time = 1` + +$$ +\tau_{\text{E}} = 0.07 n_{20}aRq_{\text{cyl}} +$$ + +------------ + +### 2: Mirnov scaling (H-mode) + +Is selected with `i_confinement_time = 2` + +$$ +\tau_{\text{E}} = 0.2 a \sqrt{\kappa_{95}}I +$$ + +------------ + +### 3: Merezhkin-Mukhovatov OH/L-mode scaling + +Is selected with `i_confinement_time = 3` + +$$ +\tau_{\text{E}} = 0.0035 \overline{n}_{20}a^{0.25}R^{2.75}q_{\text{cyl}}\kappa_{95}^{0.125}M_i^{0.5}T_{10}^{0.5} +$$ + + +--------------- + +### 4: Shimomura optimized H-mode scaling + +Is selected with `i_confinement_time = 4` + +$$ +\tau_{\text{E}} = 0.045 Ra B_{\text{T}}\sqrt{\kappa_{95}}\sqrt{M_{\text{i}}} +$$ + +---------------- + +### 5: Kaye-Goldston L-mode scaling + +Is selected with `i_confinement_time = 5` + +$$ +\tau_{\text{E}} = 0.055 I^{1.24}P^{-0.58}R^{1.65}a^{-0.49}\kappa_{95}^{0.28}n_{20}^{0.26}B_{\text{T}}^{-0.09}\left(\frac{M_{\text{i}}}{1.5}\right)^{0.5} +$$ + +---------------- + + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 2d8c0e818e..e7fee61796 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -113,3 +113,49 @@ def shimomura_confinement_time( ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. """ return 0.045e0 * rmajor * rminor * bt * np.sqrt(kappa95) * np.sqrt(afuel) + + +def kaye_goldston_confinement_time( + kappa95: float, + pcur: float, + n20: float, + rmajor: float, + afuel: float, + bt: float, + rminor: float, + powerht: float, +) -> float: + """ + Calculate the Kaye-Goldston (KG) L-mode scaling confinement time + + Parameters: + hfact (float): H-factor + kappa95 (float): Plasma elongation at 95% flux surface + pcur (float): Plasma current [MA] + n20 (float): Line averaged electron density in units of 10**20 m**-3 + rmajor (float): Plasma major radius [m] + afuel (float): Fuel atomic mass number + bt (float): Toroidal magnetic field [T] + rminor (float): Plasma minor radius [m] + powerht (float): Net Heating power [MW] + + Returns: + float: Kaye-Goldston confinement time [s] + + Notes: + - An isotope correction factor (M_i/1.5)^0.5 is added to the original scaling to reflect the fact + that the empirical fits to the data were from experiments with H and D mixture, M_i = 1.5 + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + return ( + 0.055e0 + * kappa95**0.28e0 + * pcur**1.24e0 + * n20**0.26e0 + * rmajor**1.65e0 + * np.sqrt(afuel / 1.5e0) + / (bt**0.09e0 * rminor**0.49e0 * powerht**0.58e0) + ) diff --git a/process/physics.py b/process/physics.py index 8920b74302..1814d41b3f 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6736,10 +6736,14 @@ def pcond( # Electron energy confinement times + # ======================================================================== + # User defined confinement time if i_confinement_time == 0: # tauee is an input tauee = hfact * physics_variables.tauee_in + # ======================================================================== + # Nec-Alcator(NA) OH scaling if i_confinement_time == 1: # tauee = taueena @@ -6747,37 +6751,41 @@ def pcond( n20, rminor, rmajor, qstar ) + # ======================================================================== + # "Mirnov"-like scaling (H-mode) elif i_confinement_time == 2: # Mirnov scaling (H-mode) tauee = hfact * confinement.mirnov_confinement_time(rminor, kappa95, pcur) + # ======================================================================== + # Merezhkin-Mukhovatov (MM) OH/L-mode scaling elif i_confinement_time == 3: tauee = hfact * confinement.merezhkin_muhkovatov_confinement_time( rmajor, rminor, kappa95, qstar, dnla20, afuel, ten ) + # ======================================================================== + # Shimomura (S) optimized H-mode scaling elif i_confinement_time == 4: tauee = hfact * confinement.shimomura_confinement_time( rmajor, rminor, bt, kappa95, afuel ) - elif i_confinement_time == 5: # Kaye-Goldston scaling (L-mode) - tauee = ( - hfact - * 0.055e0 - * kappa95**0.28e0 - * pcur**1.24e0 - * n20**0.26e0 - * rmajor**1.65e0 - * np.sqrt(m_fuel_amu / 1.5e0) - / (bt**0.09e0 * rminor**0.49e0 * powerht**0.58e0) + # ======================================================================== + + # Kaye-Goldston scaling (L-mode) + elif i_confinement_time == 5: + tauee = hfact * confinement.kaye_goldston_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ) if iinvqd != 0: tauee = 1.0e0 / np.sqrt(1.0e0 / taueena**2 + 1.0e0 / tauee**2) + # ======================================================================== + elif i_confinement_time == 6: # ITER Power scaling - ITER 89-P (L-mode) tauee = ( hfact From 0ccb3274ed9377a72e1373c31cf02b0456cd388f Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 11:09:09 +0000 Subject: [PATCH 008/106] =?UTF-8?q?=E2=9C=A8=20Add=20ITER=2089-P=20L-mode?= =?UTF-8?q?=20confinement=20time=20calculation=20and=20update=20documentat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 47 +++++++++++++++++++ process/physics.py | 18 +++---- 3 files changed, 63 insertions(+), 12 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index ecfeda591f..dc0c542b96 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -71,6 +71,16 @@ $$ ---------------- +### 6: ITER 89-P L-mode scaling + +Is selected with `i_confinement_time = 6` + +$$ +\tau_{\text{E}} = 0.048 I^{0.85}R^{1.2}a^{0.3}\kappa^{0.5}\overline{n}_{20}^{0.1}B_{\text{T}}^{0.2}M_{\text{i}}^{0.5} P^{-0.5} +$$ + +---------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | diff --git a/process/confinement_time.py b/process/confinement_time.py index e7fee61796..7d16ff76a1 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -159,3 +159,50 @@ def kaye_goldston_confinement_time( * np.sqrt(afuel / 1.5e0) / (bt**0.09e0 * rminor**0.49e0 * powerht**0.58e0) ) + + +def iter_89P_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa: float, + dnla20: float, + bt: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the ITER Power scaling - ITER 89-P (L-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa (float): Plasma elongation + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: ITER 89-P confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + return ( + 0.048e0 + * pcur**0.85e0 + * rmajor**1.2e0 + * rminor**0.3e0 + * np.sqrt(kappa) + * dnla20**0.1e0 + * bt**0.2e0 + * np.sqrt(afuel) + / np.sqrt(powerht) + ) diff --git a/process/physics.py b/process/physics.py index 1814d41b3f..0612e9d1d4 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6786,20 +6786,14 @@ def pcond( # ======================================================================== - elif i_confinement_time == 6: # ITER Power scaling - ITER 89-P (L-mode) - tauee = ( - hfact - * 0.048e0 - * pcur**0.85e0 - * rmajor**1.2e0 - * rminor**0.3e0 - * np.sqrt(kappa) - * dnla20**0.1e0 - * bt**0.2e0 - * np.sqrt(m_fuel_amu) - / np.sqrt(powerht) + # ITER Power scaling - ITER 89-P (L-mode) + elif i_confinement_time == 6: + tauee = hfact * confinement.iter_89P_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ) + # ======================================================================== + elif i_confinement_time == 7: # ITER Offset linear scaling - ITER 89-O (L-mode) term1 = ( 0.04e0 From f92f917fc226887a06d9ed0a8bc361d7a944c050 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 11:13:38 +0000 Subject: [PATCH 009/106] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Update=20number=20?= =?UTF-8?q?of=20energy=20confinement=20time=20scaling=20laws=20to=2050=20a?= =?UTF-8?q?nd=20remove=20unused=20label?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/fortran/physics_variables.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 3db55d6dd8..6c1eabb5e2 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -14,7 +14,7 @@ module physics_variables public - integer, parameter :: ipnlaws = 49 + integer, parameter :: ipnlaws = 50 !! number of energy confinement time scaling laws real(dp) :: m_beam_amu @@ -471,7 +471,6 @@ module physics_variables 'NSTX (Spherical) (H)', & 'NSTX-Petty08 Hybrid (H)', & 'NSTX gyro-Bohm Buxton(H)', & - 'Input tauee_in ', & 'ITPA20 (H)' /) !! tauscl(ipnlaws) : labels describing energy confinement scaling laws:
    !!
  • ( 1) Neo-Alcator (ohmic) From 5112df14ffb3e5ed709a3b01726bc266aa9fcadf Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 11:16:30 +0000 Subject: [PATCH 010/106] :memo: Add L-H power threshold scalings documentation and integrate into MkDocs navigation --- .../physics-models/plasma_confinement.md | 47 ------------------- .../physics-models/plasma_h_mode.md | 47 +++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 48 insertions(+), 47 deletions(-) create mode 100644 documentation/proc-pages/physics-models/plasma_h_mode.md diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index dc0c542b96..879dca3160 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -164,53 +164,6 @@ allowance for radiation. This is not recommended for power plant models. `pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` -## L-H Power Threshold Scalings - -Transitions from a standard confinement mode (L-mode) to an improved -confinement regime (H-mode), called L-H transitions, are observed in most -tokamaks. A range of scaling laws are available that provide estimates of the -heating power required to initiate these transitions, via extrapolations -from present-day devices. PROCESS calculates these power threshold values -for the scaling laws listed in the table below, in routine `pthresh`. - -For an H-mode plasma, use input parameter `ilhthresh` to -select the scaling to use, and turn on constraint equation no. 15 with -iteration variable no. 103 (`flhthresh`). By default, this will ensure -that the power reaching the divertor is at least equal to the threshold power -calculated for the chosen scaling, which is a necessary condition for -H-mode. - -For an L-mode plasma, use input parameter `ilhthresh` to -select the scaling to use, and turn on constraint equation no. 15 with -iteration variable no. 103 (`flhthresh`). Set lower and upper bounds for -the f-value `boundl(103) = 0.001` and `boundu(103) = 1.0` -to ensure that the power does not exceed the calculated threshold, -and therefore the machine remains in L-mode. - - -| `ilhthresh` | Name | Reference | -| :-: | - | - | -| 1 | ITER 1996 nominal | ITER Physics Design Description Document | -| 2 | ITER 1996 upper bound | D. Boucher, p.2-2 | -| 3 | ITER 1996 lower bound | -| 4 | ITER 1997 excluding elongation | J. A. Snipes, ITER H-mode Threshold Database | -| 5 | ITER 1997 including elongation | Working Group, Controlled Fusion and Plasma Physics, 24th EPS conference, Berchtesgaden, June 1997, vol.21A, part III, p.961 | -| 6 | Martin 2008 nominal | Martin et al, 11th IAEA Tech. Meeting | -| 7 | Martin 2008 95% upper bound | H-mode Physics and Transport Barriers, Journal | -| 8 | Martin 2008 95% lower bound | of Physics: Conference Series **123**, 2008 | -| 9 | Snipes 2000 nominal | J. A. Snipes and the International H-mode | -| 10| Snipes 2000 upper bound | Threshold Database Working Group | -| 11| Snipes 2000 lower bound | 2000, Plasma Phys. Control. Fusion, 42, A299 | -| 12| Snipes 2000 (closed divertor): nominal | -| 13| Snipes 2000 (closed divertor): upper bound | -| 14| Snipes 2000 (closed divertor): lower bound | -| 15| Hubbard 2012 L-I threshold scaling: nominal | [Hubbard et al. (2012; Nucl. Fusion 52 114009)](https://iopscience.iop.org/article/10.1088/0029-5515/52/11/114009) | -| 16| Hubbard 2012 L-I threshold scaling: lower bound | [Hubbard et al. (2012; Nucl. Fusion 52 114009)](https://iopscience.iop.org/article/10.1088/0029-5515/52/11/114009 | -| 17| Hubbard 2012 L-I threshold scaling: upper bound | [Hubbard et al. (2012; Nucl. Fusion 52 114009)](https://iopscience.iop.org/article/10.1088/0029-5515/52/11/114009 | -| 18| Hubbard 2017 L-I threshold scaling | [Hubbard et al. (2017; Nucl. Fusion 57 126039)](https://iopscience.iop.org/article/10.1088/1741-4326/aa8570) | -| 19 | Martin 2008 aspect ratio corrected nominal | Martin et al (2008; J Phys Conf, 123, 012033) | -| 20 | Martin 2008 aspect ratio corrected 95% upper bound | [Takizuka et al. (2004; Plasma Phys. Contol. Fusion, 46, A227)](https://iopscience.iop.org/article/10.1088/0741-3335/46/5A/024) | -| 21 | Martin 2008 aspect ratio corrected 95% lower bound | ## Ignition diff --git a/documentation/proc-pages/physics-models/plasma_h_mode.md b/documentation/proc-pages/physics-models/plasma_h_mode.md new file mode 100644 index 0000000000..6d4e3257d5 --- /dev/null +++ b/documentation/proc-pages/physics-models/plasma_h_mode.md @@ -0,0 +1,47 @@ +## L-H Power Threshold Scalings + +Transitions from a standard confinement mode (L-mode) to an improved +confinement regime (H-mode), called L-H transitions, are observed in most +tokamaks. A range of scaling laws are available that provide estimates of the +heating power required to initiate these transitions, via extrapolations +from present-day devices. PROCESS calculates these power threshold values +for the scaling laws listed in the table below, in routine `pthresh`. + +For an H-mode plasma, use input parameter `ilhthresh` to +select the scaling to use, and turn on constraint equation no. 15 with +iteration variable no. 103 (`flhthresh`). By default, this will ensure +that the power reaching the divertor is at least equal to the threshold power +calculated for the chosen scaling, which is a necessary condition for +H-mode. + +For an L-mode plasma, use input parameter `ilhthresh` to +select the scaling to use, and turn on constraint equation no. 15 with +iteration variable no. 103 (`flhthresh`). Set lower and upper bounds for +the f-value `boundl(103) = 0.001` and `boundu(103) = 1.0` +to ensure that the power does not exceed the calculated threshold, +and therefore the machine remains in L-mode. + + +| `ilhthresh` | Name | Reference | +| :-: | - | - | +| 1 | ITER 1996 nominal | ITER Physics Design Description Document | +| 2 | ITER 1996 upper bound | D. Boucher, p.2-2 | +| 3 | ITER 1996 lower bound | +| 4 | ITER 1997 excluding elongation | J. A. Snipes, ITER H-mode Threshold Database | +| 5 | ITER 1997 including elongation | Working Group, Controlled Fusion and Plasma Physics, 24th EPS conference, Berchtesgaden, June 1997, vol.21A, part III, p.961 | +| 6 | Martin 2008 nominal | Martin et al, 11th IAEA Tech. Meeting | +| 7 | Martin 2008 95% upper bound | H-mode Physics and Transport Barriers, Journal | +| 8 | Martin 2008 95% lower bound | of Physics: Conference Series **123**, 2008 | +| 9 | Snipes 2000 nominal | J. A. Snipes and the International H-mode | +| 10| Snipes 2000 upper bound | Threshold Database Working Group | +| 11| Snipes 2000 lower bound | 2000, Plasma Phys. Control. Fusion, 42, A299 | +| 12| Snipes 2000 (closed divertor): nominal | +| 13| Snipes 2000 (closed divertor): upper bound | +| 14| Snipes 2000 (closed divertor): lower bound | +| 15| Hubbard 2012 L-I threshold scaling: nominal | [Hubbard et al. (2012; Nucl. Fusion 52 114009)](https://iopscience.iop.org/article/10.1088/0029-5515/52/11/114009) | +| 16| Hubbard 2012 L-I threshold scaling: lower bound | [Hubbard et al. (2012; Nucl. Fusion 52 114009)](https://iopscience.iop.org/article/10.1088/0029-5515/52/11/114009 | +| 17| Hubbard 2012 L-I threshold scaling: upper bound | [Hubbard et al. (2012; Nucl. Fusion 52 114009)](https://iopscience.iop.org/article/10.1088/0029-5515/52/11/114009 | +| 18| Hubbard 2017 L-I threshold scaling | [Hubbard et al. (2017; Nucl. Fusion 57 126039)](https://iopscience.iop.org/article/10.1088/1741-4326/aa8570) | +| 19 | Martin 2008 aspect ratio corrected nominal | Martin et al (2008; J Phys Conf, 123, 012033) | +| 20 | Martin 2008 aspect ratio corrected 95% upper bound | [Takizuka et al. (2004; Plasma Phys. Contol. Fusion, 46, A227)](https://iopscience.iop.org/article/10.1088/0741-3335/46/5A/024) | +| 21 | Martin 2008 aspect ratio corrected 95% lower bound | \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index b0228303f0..36a7f10dde 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -67,6 +67,7 @@ nav: - Inductive Current: physics-models/plasma_current/inductive_plasma_current.md - Plasma Resistive Heating: physics-models/plasma_current/plasma_resistive_heating.md - Confinement time: physics-models/plasma_confinement.md + - H-mode: physics-models/plasma_h_mode.md - Plasma Core Power Balance: physics-models/plasma_power_balance.md - Pulsed Plant Operation: physics-models/pulsed-plant.md - Engineering Models: From 8b845ddf8db422fb3146ec32a37f7c57d355a987 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 11:29:01 +0000 Subject: [PATCH 011/106] =?UTF-8?q?=E2=9C=A8=20Add=20ITER=2089-O=20L-mode?= =?UTF-8?q?=20confinement=20time=20calculation=20and=20update=20documentat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 14 +++++ process/confinement_time.py | 54 +++++++++++++++++++ process/physics.py | 25 ++------- 3 files changed, 73 insertions(+), 20 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 879dca3160..a05be9e4e9 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -81,6 +81,20 @@ $$ ---------------- +### 7: ITER 89-0 L-mode scaling + +Is selected with `i_confinement_time = 7` + +$$ +\begin{aligned} +\tau_E= & 0.04 I^{0.5} R^{0.3} a^{0.8} \kappa^{0.6} M_i^{0.5} \\ +& +0.064 I^{0.8} R^{1.6} a^{0.6} \kappa^{0.2} \bar{n}_{20}^{0.6} B_0^{0.35} M_i^{0.2} / P +\end{aligned} +$$ + +---------------- + + | `i_confinement_time` | scaling law | reference | | :-: | - | - | diff --git a/process/confinement_time.py b/process/confinement_time.py index 7d16ff76a1..17dc73846d 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -206,3 +206,57 @@ def iter_89P_confinement_time( * np.sqrt(afuel) / np.sqrt(powerht) ) + + +def iter_89_0_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa: float, + dnla20: float, + bt: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the ITER Offset linear scaling - ITER 89-O (L-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa (float): Plasma elongation + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: ITER 89-O confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + + """ + term1 = ( + 0.04e0 + * pcur**0.5e0 + * rmajor**0.3e0 + * rminor**0.8e0 + * kappa**0.6e0 + * afuel**0.5e0 + ) + term2 = ( + 0.064e0 + * pcur**0.8e0 + * rmajor**1.6e0 + * rminor**0.6e0 + * kappa**0.5e0 + * dnla20**0.6e0 + * bt**0.35e0 + * afuel**0.2e0 + / powerht + ) + return term1 + term2 diff --git a/process/physics.py b/process/physics.py index 0612e9d1d4..21c9926009 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6794,27 +6794,12 @@ def pcond( # ======================================================================== - elif i_confinement_time == 7: # ITER Offset linear scaling - ITER 89-O (L-mode) - term1 = ( - 0.04e0 - * pcur**0.5e0 - * rmajor**0.3e0 - * rminor**0.8e0 - * kappa**0.6e0 - * m_fuel_amu**0.5e0 - ) - term2 = ( - 0.064e0 - * pcur**0.8e0 - * rmajor**1.6e0 - * rminor**0.6e0 - * kappa**0.5e0 - * dnla20**0.6e0 - * bt**0.35e0 - * m_fuel_amu**0.2e0 - / powerht + # ITER Offset linear scaling - ITER 89-O (L-mode) + elif i_confinement_time == 7: + tauee = hfact * confinement.iter_89_0_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ) - tauee = hfact * (term1 + term2) + # ======================================================================== elif i_confinement_time == 8: # Rebut-Lallia offset linear scaling (L-mode) rll = (rminor**2 * rmajor * kappa95) ** 0.333e0 From d3b68b5977f6e62c4c8211d61860331ce824c344 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 11:41:21 +0000 Subject: [PATCH 012/106] =?UTF-8?q?=E2=9C=A8=20Add=20Rebut-Lallia=20L-mode?= =?UTF-8?q?=20confinement=20time=20calculation=20and=20update=20documentat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 15 ++++++ process/confinement_time.py | 47 +++++++++++++++++++ process/physics.py | 30 ++++++------ 3 files changed, 76 insertions(+), 16 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index a05be9e4e9..3ce4f113e7 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -94,6 +94,21 @@ $$ ---------------- +### 8: Rebut-Lallia L-mode scaling + +Is selected with `i_confinement_time = 8` + +$$ +\begin{aligned} +\tau_E= & 1.65\left[1.2 \times 10^{-5} I \ell^{1.5} Z_{e f f}^{-0.5}\right. \\ +& \left.+0.146 \bar{n}_{20}^{0.75} I^{0.5} B_0^{0.5} \ell^{2.75} Z_{e f f}^{0.25} / P\right]\left(A_i / 2\right)^{0.5} +\end{aligned} +$$ + +where $\ell = \left(a^2R\kappa\right)^{\frac{1}{3}}$ + +---------------- + | `i_confinement_time` | scaling law | reference | diff --git a/process/confinement_time.py b/process/confinement_time.py index 17dc73846d..6f4e5ebdbb 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -260,3 +260,50 @@ def iter_89_0_confinement_time( / powerht ) return term1 + term2 + + +def rebut_lallia_confinement_time( + rminor: float, + rmajor: float, + kappa: float, + afuel: float, + pcur: float, + zeff: float, + dnla20: float, + bt: float, + powerht: float, +) -> float: + """ + Calculate the Rebut-Lallia offset linear scaling (L-mode) confinement time + + Parameters: + rminor (float): Plasma minor radius [m] + rmajor (float): Plasma major radius [m] + kappa (float): Plasma elongation at 95% flux surface + afuel (float): Fuel atomic mass number + pcur (float): Plasma current [MA] + zeff (float): Effective charge + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + + Returns: + float: Rebut-Lallia confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + """ + rll = (rminor**2 * rmajor * kappa) ** (1.0e0 / 3.0e0) + term1 = 1.2e-2 * pcur * rll**1.5e0 / np.sqrt(zeff) + term2 = ( + 0.146e0 + * dnla20**0.75e0 + * np.sqrt(pcur) + * np.sqrt(bt) + * rll**2.75e0 + * zeff**0.25e0 + / powerht + ) + return 1.65e0 * np.sqrt(afuel / 2.0e0) * (term1 + term2) diff --git a/process/physics.py b/process/physics.py index 21c9926009..c6aced80ce 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6801,24 +6801,22 @@ def pcond( ) # ======================================================================== - elif i_confinement_time == 8: # Rebut-Lallia offset linear scaling (L-mode) - rll = (rminor**2 * rmajor * kappa95) ** 0.333e0 - tauee = ( - hfact - * 1.65e0 - * np.sqrt(m_fuel_amu / 2.0e0) - * ( - 1.2e-2 * pcur * rll**1.5e0 / np.sqrt(zeff) - + 0.146e0 - * dnla20**0.75e0 - * np.sqrt(pcur) - * np.sqrt(bt) - * rll**2.75e0 - * zeff**0.25e0 - / powerht - ) + # Rebut-Lallia offset linear scaling (L-mode) + elif i_confinement_time == 8: + tauee = hfact * confinement.rebut_lallia_confinement_time( + rminor, + rmajor, + kappa, + afuel, + pcur, + zeff, + dnla20, + bt, + powerht, ) + # ======================================================================== + elif i_confinement_time == 9: # Goldston scaling (L-mode) tauee = ( hfact From 9eae28fa428e5e169306172bebcd769056e4cd1c Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 11:53:34 +0000 Subject: [PATCH 013/106] =?UTF-8?q?=E2=9C=A8=20Add=20Goldston=20L-mode=20c?= =?UTF-8?q?onfinement=20time=20calculation=20and=20update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 11 +++++ process/confinement_time.py | 40 +++++++++++++++++++ process/physics.py | 14 +++---- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 3ce4f113e7..508013f85e 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -110,6 +110,17 @@ where $\ell = \left(a^2R\kappa\right)^{\frac{1}{3}}$ ---------------- +### 9: Goldston L-mode scaling + +Is selected with `i_confinement_time = 9` + +$$ +\tau_{\text{E}} = 0.037 I P^{-0.5} R^{1.75}a^{-0.37}\kappa_{95}^{0.5} \left(\frac{M_i}{1.5}\right)^{0.5} +$$ + +---------------- + + | `i_confinement_time` | scaling law | reference | | :-: | - | - | diff --git a/process/confinement_time.py b/process/confinement_time.py index 6f4e5ebdbb..ac2584a5db 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -307,3 +307,43 @@ def rebut_lallia_confinement_time( / powerht ) return 1.65e0 * np.sqrt(afuel / 2.0e0) * (term1 + term2) + + +def goldston_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa95: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the Goldston scaling (L-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: Goldston confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + + """ + return ( + 0.037e0 + * pcur + * rmajor**1.75e0 + * rminor ** (-0.37e0) + * np.sqrt(kappa95) + * np.sqrt(afuel / 1.5e0) + / np.sqrt(powerht) + ) diff --git a/process/physics.py b/process/physics.py index c6aced80ce..9ed2d5a29b 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6817,21 +6817,17 @@ def pcond( # ======================================================================== + # Goldston scaling (L-mode) elif i_confinement_time == 9: # Goldston scaling (L-mode) - tauee = ( - hfact - * 0.037e0 - * pcur - * rmajor**1.75e0 - * rminor ** (-0.37e0) - * np.sqrt(kappa95) - * np.sqrt(m_fuel_amu / 1.5e0) - / np.sqrt(powerht) + tauee = hfact * confinement.goldston_confinement_time( + pcur, rmajor, rminor, kappa95, afuel, powerht ) if iinvqd != 0: tauee = 1.0e0 / np.sqrt(1.0e0 / taueena**2 + 1.0e0 / tauee**2) + # ======================================================================== + elif i_confinement_time == 10: # T10 scaling denfac = dnla20 * rmajor * qstar / (1.3e0 * bt) denfac = min(1.0e0, denfac) From 1a0dd4df581b16c9a78fdcd800aadd70cd7aace2 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 13:23:48 +0000 Subject: [PATCH 014/106] =?UTF-8?q?=E2=9C=A8=20Add=20T-10=20L-mode=20confi?= =?UTF-8?q?nement=20time=20calculation=20and=20update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 14 ++++++ process/confinement_time.py | 49 +++++++++++++++++++ process/physics.py | 20 +++----- 3 files changed, 69 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 508013f85e..e38923ebbc 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -120,6 +120,20 @@ $$ ---------------- +### 10: T-10 L-mode scaling + +Is selected with `i_confinement_time = 10` + + +$$ +\tau_{\text{E}} = 0.095 a R B_{\text{T}} \kappa_{95}^{0.5} \frac{\overline{n}_{20}}{\overline{n}_{20*}}P^{-0.4} \left[\frac{Z_{\text{eff}}^2 I^4}{aRq_{\text{cyl}}^3\kappa_{95}^{1.5}} \right]^{0.08} +$$ + +where $\overline{n}_{20*} = 1.3\left(\frac{B_{\text{T}}}{Rq_{\text{cyl}}}\right)$ and $\frac{\overline{n}_{20}}{\overline{n}_{20*}} \le 1$ + + +---------------- + | `i_confinement_time` | scaling law | reference | diff --git a/process/confinement_time.py b/process/confinement_time.py index ac2584a5db..e8fc633775 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -347,3 +347,52 @@ def goldston_confinement_time( * np.sqrt(afuel / 1.5e0) / np.sqrt(powerht) ) + + +def t10_confinement_time( + dnla20: float, + rmajor: float, + qstar: float, + bt: float, + rminor: float, + kappa95: float, + powerht: float, + zeff: float, + pcur: float, +) -> float: + """ + Calculate the T-10 scaling confinement time + + Parameters: + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + rmajor (float): Plasma major radius [m] + qstar (float): Equivalent cylindrical edge safety factor + bt (float): Toroidal magnetic field [T] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + powerht (float): Net Heating power [MW] + zeff (float): Effective charge + pcur (float): Plasma current [MA] + + Returns: + float: T-10 confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + denfac = dnla20 * rmajor * qstar / (1.3e0 * bt) + denfac = min(1.0e0, denfac) + tauee = ( + 0.095e0 + * rmajor + * rminor + * bt + * np.sqrt(kappa95) + * denfac + / powerht**0.4e0 + * (zeff**2 * pcur**4 / (rmajor * rminor * qstar**3 * kappa95**1.5e0)) ** 0.08e0 + ) + return tauee diff --git a/process/physics.py b/process/physics.py index 9ed2d5a29b..1e2fb773f1 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6828,22 +6828,14 @@ def pcond( # ======================================================================== - elif i_confinement_time == 10: # T10 scaling - denfac = dnla20 * rmajor * qstar / (1.3e0 * bt) - denfac = min(1.0e0, denfac) - tauee = ( - hfact - * 0.095e0 - * rmajor - * rminor - * bt - * np.sqrt(kappa95) - * denfac - / powerht**0.4e0 - * (zeff**2 * pcur**4 / (rmajor * rminor * qstar**3 * kappa95**1.5e0)) - ** 0.08e0 + # T-10 scaling (L-mode) + elif i_confinement_time == 10: + tauee = hfact * confinement.t10_confinement_time( + dnla20, rmajor, qstar, bt, rminor, kappa95, powerht, zeff, pcur ) + # ======================================================================== + elif i_confinement_time == 11: # JAERI scaling gjaeri = ( zeff**0.4e0 From bca58c5b661496b95c867430b26381b138758582 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 13:40:19 +0000 Subject: [PATCH 015/106] =?UTF-8?q?=E2=9C=A8=20Add=20JAERI=20/=20Odajima-S?= =?UTF-8?q?himomura=20L-mode=20confinement=20time=20calculation=20and=20up?= =?UTF-8?q?date=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 13 +++++ process/confinement_time.py | 57 +++++++++++++++++++ process/physics.py | 49 +++++----------- 3 files changed, 83 insertions(+), 36 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index e38923ebbc..f68056caa5 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -131,6 +131,19 @@ $$ where $\overline{n}_{20*} = 1.3\left(\frac{B_{\text{T}}}{Rq_{\text{cyl}}}\right)$ and $\frac{\overline{n}_{20}}{\overline{n}_{20*}} \le 1$ +---------------- + +### 11: JAERI / Odajima-Shimomura L-mode scaling + +Is selected with `i_confinement_time = 11` + + +$$ +\tau_{\text{E}} = \left[\frac{0.085\kappa_{95}a^2+0.069In_{20}^{0.6}B_{\text{T}}^{0.2}R^{1.6} a^{0.4} \kappa_{95}^{0.2} G\left(q_{\text{cyl}},Z_{\text{eff}}\right)}{P}\right]M_{\text{i}}^{0.5} +$$ + +where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\frac{\left(15 - Z_{\text{eff}}\right)}{20}\right]^{0.6}\left[3q_{\text{cyl}}\frac{q_{\text{cyl}}+5}{(q_{\text{cyl}}+2)(q_{\text{cyl}}+7)}\right]^{0.6}$ + ---------------- diff --git a/process/confinement_time.py b/process/confinement_time.py index e8fc633775..a0937364af 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -396,3 +396,60 @@ def t10_confinement_time( * (zeff**2 * pcur**4 / (rmajor * rminor * qstar**3 * kappa95**1.5e0)) ** 0.08e0 ) return tauee + + +def jaeri_confinement_time( + kappa95: float, + rminor: float, + afuel: float, + n20: float, + pcur: float, + bt: float, + rmajor: float, + qstar: float, + zeff: float, + powerht: float, +) -> float: + """ + Calculate the JAERI / Odajima-Shimomura L-mode scaling confinement time + + Parameters: + kappa95 (float): Plasma elongation at 95% flux surface + rminor (float): Plasma minor radius [m] + afuel (float): Fuel atomic mass number + n20 (float): Line averaged electron density in units of 10**20 m**-3 + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + rmajor (float): Plasma major radius [m] + qstar (float): Equivalent cylindrical edge safety factor + zeff (float): Effective charge + powerht (float): Net Heating power [MW] + + Returns: + float: JAERI confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + gjaeri = ( + zeff**0.4e0 + * ((15.0e0 - zeff) / 20.0e0) ** 0.6e0 + * (3.0e0 * qstar * (qstar + 5.0e0) / ((qstar + 2.0e0) * (qstar + 7.0e0))) + ** 0.6e0 + ) + return ( + 0.085e0 * kappa95 * rminor**2 * np.sqrt(afuel) + + 0.069e0 + * n20**0.6e0 + * pcur + * bt**0.2e0 + * rminor**0.4e0 + * rmajor**1.6e0 + * np.sqrt(afuel) + * gjaeri + * kappa95**0.2e0 + / powerht + ) diff --git a/process/physics.py b/process/physics.py index 1e2fb773f1..44afac71ef 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6836,45 +6836,22 @@ def pcond( # ======================================================================== + # JAERI / Odajima-Shimomura scaling elif i_confinement_time == 11: # JAERI scaling - gjaeri = ( - zeff**0.4e0 - * ((15.0e0 - zeff) / 20.0e0) ** 0.6e0 - * ( - 3.0e0 - * qstar - * (qstar + 5.0e0) - / ((qstar + 2.0e0) * (qstar + 7.0e0)) - ) - ** 0.6e0 - ) - tauee = hfact * ( - 0.085e0 * kappa95 * rminor**2 * np.sqrt(m_fuel_amu) - + 0.069e0 - * n20**0.6e0 - * pcur - * bt**0.2e0 - * rminor**0.4e0 - * rmajor**1.6e0 - * np.sqrt(m_fuel_amu) - * gjaeri - * kappa95**0.2e0 - / powerht + tauee = hfact * confinement.jaeri_confinement_time( + kappa95, + rminor, + afuel, + n20, + pcur, + bt, + rmajor, + qstar, + zeff, + powerht, ) - elif i_confinement_time == 12: # Kaye-Big scaling - tauee = ( - hfact - * 0.105e0 - * np.sqrt(rmajor) - * rminor**0.8e0 - * bt**0.3e0 - * kappa95**0.25e0 - * pcur**0.85e0 - * n20**0.1e0 - * m_fuel_amu**0.5e0 - / powerht**0.5e0 - ) + # ======================================================================== elif i_confinement_time == 13: # ITER H-mode scaling - ITER H90-P tauee = ( From 93b2d53ecff2adc1c508bd229419d2c87c0b0f37 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 13:52:11 +0000 Subject: [PATCH 016/106] =?UTF-8?q?=E2=9C=A8=20Add=20ITER=20H90-P=20H-mode?= =?UTF-8?q?=20confinement=20time=20calculation=20and=20update=20documentat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 9 ++++ process/confinement_time.py | 44 +++++++++++++++++++ process/physics.py | 29 ++++++------ 3 files changed, 69 insertions(+), 13 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index f68056caa5..36cec19c08 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -148,6 +148,15 @@ where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\ ---------------- +### 13: ITER H90-P H-mode scaling + +Is selected with `i_confinement_time = 13` + +$$ +\tau_{\text{E}} = 0.064 I^{0.87 R^{1.82}} a^{-0.12} \kappa_{95}^{0.35} \overline{n}_{20}^{0.09} B_{\text{T}}^{0.15} M_{\text{i}}^{0.5} P^{-0.5} +$$ + +------------------------- | `i_confinement_time` | scaling law | reference | | :-: | - | - | diff --git a/process/confinement_time.py b/process/confinement_time.py index a0937364af..fbf203238b 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -453,3 +453,47 @@ def jaeri_confinement_time( * kappa95**0.2e0 / powerht ) + + +def iter_h90_p_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa: float, + dnla20: float, + bt: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the ITER H-mode scaling - ITER H90-P confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa (float): Plasma elongation + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: ITER H90-P confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + """ + return ( + 0.064e0 + * pcur**0.87e0 + * rmajor**1.82e0 + * rminor ** (-0.12e0) + * kappa**0.35e0 + * dnla20**0.09e0 + * bt**0.15e0 + * np.sqrt(afuel) + / np.sqrt(powerht) + ) diff --git a/process/physics.py b/process/physics.py index 44afac71ef..336da68c39 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6836,7 +6836,7 @@ def pcond( # ======================================================================== - # JAERI / Odajima-Shimomura scaling + # JAERI / Odajima-Shimomura L-mode scaling elif i_confinement_time == 11: # JAERI scaling tauee = hfact * confinement.jaeri_confinement_time( kappa95, @@ -6853,20 +6853,23 @@ def pcond( # ======================================================================== - elif i_confinement_time == 13: # ITER H-mode scaling - ITER H90-P - tauee = ( - hfact - * 0.064e0 - * pcur**0.87e0 - * rmajor**1.82e0 - * rminor ** (-0.12e0) - * kappa**0.35e0 - * dnla20**0.09e0 - * bt**0.15e0 - * np.sqrt(m_fuel_amu) - / np.sqrt(powerht) + # ITER H90-P H-mode scaling + elif i_confinement_time == 13: + tauee = hfact * confinement.iter_h90_p_confinement_time( + pcur, + rmajor, + rminor, + kappa, + dnla20, + bt, + afuel, + powerht, ) + # ======================================================================== + + # ======================================================================== + elif ( i_confinement_time == 14 ): # Minimum of ITER 89-P (i_confinement_time=6) and ITER 89-O (i_confinement_time=7) From e761a634be897804a3cbb0f20adaf1260ad35323 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 14:06:34 +0000 Subject: [PATCH 017/106] =?UTF-8?q?=E2=9C=A8=20Add=20Kaye=20"big"=20L-mode?= =?UTF-8?q?=20confinement=20time=20calculation=20and=20update=20documentat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 12 ++++- process/confinement_time.py | 45 +++++++++++++++++++ process/physics.py | 15 +++++++ 3 files changed, 71 insertions(+), 1 deletion(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 36cec19c08..fafcdeac36 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -147,13 +147,23 @@ where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\ ---------------- +### 12: Kaye "big" L-mode scaling + +Is selected with `i_confinement_time = 12` + +$$ +\tau_{\text{E}} = 0.1051 I^{0.85} P^{-0.5} R^{0.5} a^{0.3} \kappa^{0.25} n_{20}^{0.1}B_{\text{T}}^{0.3}M_{\text{i}}^{0.5} +$$ + +------------------------- + ### 13: ITER H90-P H-mode scaling Is selected with `i_confinement_time = 13` $$ -\tau_{\text{E}} = 0.064 I^{0.87 R^{1.82}} a^{-0.12} \kappa_{95}^{0.35} \overline{n}_{20}^{0.09} B_{\text{T}}^{0.15} M_{\text{i}}^{0.5} P^{-0.5} +\tau_{\text{E}} = 0.064 I^{0.87} R^{1.82} a^{-0.12} \kappa_{95}^{0.35} \overline{n}_{20}^{0.09} B_{\text{T}}^{0.15} M_{\text{i}}^{0.5} P^{-0.5} $$ ------------------------- diff --git a/process/confinement_time.py b/process/confinement_time.py index fbf203238b..791c2cf16b 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -455,6 +455,51 @@ def jaeri_confinement_time( ) +def kaye_big_confinement_time( + rmajor: float, + rminor: float, + bt: float, + kappa95: float, + pcur: float, + n20: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the Kaye-Big scaling confinement time + + Parameters: + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + bt (float): Toroidal magnetic field [T] + kappa95 (float): Plasma elongation at 95% flux surface + pcur (float): Plasma current [MA] + n20 (float): Line averaged electron density in units of 10**20 m**-3 + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: Kaye-Big confinement time [s] + + Notes: + + References: + - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, + ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + """ + return ( + 0.105e0 + * np.sqrt(rmajor) + * rminor**0.8e0 + * bt**0.3e0 + * kappa95**0.25e0 + * pcur**0.85e0 + * n20**0.1e0 + * np.sqrt(afuel) + / np.sqrt(powerht) + ) + + def iter_h90_p_confinement_time( pcur: float, rmajor: float, diff --git a/process/physics.py b/process/physics.py index 336da68c39..7cc7c1fe34 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6853,6 +6853,21 @@ def pcond( # ======================================================================== + # Kaye "big" L-mode scaling (based only on big tokamak data) + elif i_confinement_time == 12: + tauee = hfact * confinement.kaye_big_confinement_time( + rmajor, + rminor, + bt, + kappa95, + pcur, + n20, + afuel, + powerht, + ) + + # ======================================================================== + # ITER H90-P H-mode scaling elif i_confinement_time == 13: tauee = hfact * confinement.iter_h90_p_confinement_time( From 12df20f2fd97c2c5e418853d3294dd2413572f0a Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 14:20:40 +0000 Subject: [PATCH 018/106] =?UTF-8?q?=20=F0=9F=94=84=20Rename=20variable=20'?= =?UTF-8?q?iradloss'=20to=20'i=5Frad=5Floss'=20for=20consistency=20in=20po?= =?UTF-8?q?wer=20balance=20calculations=20and=20update=20related=20documen?= =?UTF-8?q?tation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proc-pages/physics-models/error.txt | 8 ++--- .../physics-models/plasma_confinement.md | 31 +++++++++++++++- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +++++----- process/physics.py | 22 ++++++------ process/power.py | 16 ++++----- source/fortran/constraint_equations.f90 | 16 ++++----- source/fortran/input.f90 | 6 ++-- source/fortran/physics_variables.f90 | 4 +-- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 ++++++++-------- tests/integration/data/scan_MFILE.DAT | 18 +++++----- tests/integration/ref_dicts.json | 10 +++--- .../input_files/st_regression.IN.DAT | 4 +-- .../regression/input_files/stellarator.IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 36 +++++++++---------- tests/unit/test_power.py | 8 ++--- 26 files changed, 140 insertions(+), 111 deletions(-) diff --git a/documentation/proc-pages/physics-models/error.txt b/documentation/proc-pages/physics-models/error.txt index fe8dbe9cc3..b1a48e55a0 100644 --- a/documentation/proc-pages/physics-models/error.txt +++ b/documentation/proc-pages/physics-models/error.txt @@ -987,21 +987,21 @@ additional radiation causes an almost equal drop in power transported by ions and electrons, leaving the confinement nearly unchanged. To allow for these uncertainties, three options are available, using the -switch \texttt{iradloss}. In each case, the particle transport loss +switch \texttt{i_rad_loss}. In each case, the particle transport loss power \(P_{\mbox{loss}}\), referred to in the code as \texttt{pscaling}, is derived directly from the energy confinement scaling law. -\texttt{iradloss\ =\ 0} -- Total power lost is scaling power plus +\texttt{i_rad_loss\ =\ 0} -- Total power lost is scaling power plus radiation \texttt{pscaling\ +\ pden_plasma_rad_mw\ =\ f_alpha_plasma*alpha_power_density\ +\ charged_power_density\ +\ pden_plasma_ohmic_mw\ +\ pinjmw/vol_plasma} -\texttt{iradloss\ =\ 1} -- Total power lost is scaling power plus core +\texttt{i_rad_loss\ =\ 1} -- Total power lost is scaling power plus core radiation only \texttt{pscaling\ +\ pcoreradpv\ =\ f_alpha_plasma*alpha_power_density\ +\ charged_power_density\ +\ pden_plasma_ohmic_mw\ +\ pinjmw/vol_plasma} -\texttt{iradloss\ =\ 2} -- Total power lost is scaling power only, with +\texttt{i_rad_loss\ =\ 2} -- Total power lost is scaling power only, with no additional allowance for radiation. This is not recommended for power plant models. diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index fafcdeac36..043ca0d5be 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -6,7 +6,36 @@ Many energy confinement time scaling laws are available within PROCESS, for tokamaks, RFPs and stellarators. These are calculated in routine `pcond`. The value of `i_confinement_time` determines which of the scalings is used in the plasma energy balance calculation. The table below summarises the available scaling laws. The -most commonly used is the so-called IPB98(y,2) scaling. +most commonly used is the so-called IPB98(y,2) scaling. + +## Effect of radiation on energy confinement + +Published confinement scalings are all based on low radiation pulses. A power +plant will certainly be a high radiation machine --- both in the core, due to +bremsstrahlung and synchrotron radiation, and in the edge due to impurity +seeding. The scaling data do not predict this radiation --- that needs to be +done by the radiation model. However, if the transport is very "stiff", as +predicted by some models, then the additional radiation causes an almost equal +drop in power transported by ions and electrons, leaving the confinement +nearly unchanged. + +To allow for these uncertainties, three options are available, using the switch +`i_rad_loss`. In each case, the particle transport loss power `pscaling` is +derived directly from the energy confinement scaling law. + +`i_rad_loss = 0` -- Total power lost is scaling power plus radiation: + +`pscaling + pradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` + + +`i_rad_loss = 1` -- Total power lost is scaling power plus radiation from a region defined as the "core": + +`pscaling + pcoreradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` + +`i_rad_loss = 2` -- Total power lost is scaling power only, with no additional +allowance for radiation. This is not recommended for power plant models. + +`pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` ## Available confinement time scalings diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 7e460ea905..d3ea331c26 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -495,7 +495,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.6225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2095E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.8997E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9376E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2315E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.8919E+00 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 095e5427db..bdd2ba8464 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -491,7 +491,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index d195d75b6c..0dc9763700 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -491,7 +491,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index f9f713964b..f8bc31cbdf 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -491,7 +491,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 51d09945e2..4135b80b0e 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -491,7 +491,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index c69c485ce7..84af76c14e 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -348,7 +348,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -1343,7 +1343,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -2338,7 +2338,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -3333,7 +3333,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -4328,7 +4328,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -5323,7 +5323,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -6318,7 +6318,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -7313,7 +7313,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -8308,7 +8308,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 diff --git a/process/physics.py b/process/physics.py index 7cc7c1fe34..8067a8976a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5219,10 +5219,10 @@ def outplas(self): po.ovarin( self.outfile, "Switch for radiation loss term usage in power balance", - "(iradloss)", - physics_variables.iradloss, + "(i_rad_loss)", + physics_variables.i_rad_loss, ) - if physics_variables.iradloss == 0: + if physics_variables.i_rad_loss == 0: po.ovarre( self.outfile, "Radiation power subtracted from plasma power balance (MW)", @@ -5231,7 +5231,7 @@ def outplas(self): "OP ", ) po.ocmmnt(self.outfile, " (Radiation correction is total radiation power)") - elif physics_variables.iradloss == 1: + elif physics_variables.i_rad_loss == 1: po.ovarre( self.outfile, "Radiation power subtracted from plasma power balance (MW)", @@ -5248,7 +5248,7 @@ def outplas(self): 0.0e0, ) po.ocmmnt(self.outfile, " (No radiation correction applied)") - if physics_variables.iradloss == 1: + if physics_variables.i_rad_loss == 1: po.ovarrf( self.outfile, "H* non-radiation corrected", @@ -5265,7 +5265,7 @@ def outplas(self): ** 0.31, "OP", ) - elif physics_variables.iradloss == 0: + elif physics_variables.i_rad_loss == 0: po.ovarrf( self.outfile, "H* non-radiation corrected", @@ -5282,7 +5282,7 @@ def outplas(self): ** 0.31, "OP", ) - elif physics_variables.iradloss == 2: + elif physics_variables.i_rad_loss == 2: po.ovarrf( self.outfile, "H* non-radiation corrected", @@ -6580,9 +6580,9 @@ def fhz(self, hhh): # Include the radiation power if requested - if physics_variables.iradloss == 0: + if physics_variables.i_rad_loss == 0: fhz += physics_variables.pden_plasma_rad_mw - elif physics_variables.iradloss == 1: + elif physics_variables.i_rad_loss == 1: fhz += physics_variables.pcoreradpv return fhz @@ -6702,9 +6702,9 @@ def pcond( powerht = powerht + pinjmw # Include the radiation as a loss term if requested - if physics_variables.iradloss == 0: + if physics_variables.i_rad_loss == 0: powerht = powerht - physics_variables.pden_plasma_rad_mw * vol_plasma - elif physics_variables.iradloss == 1: + elif physics_variables.i_rad_loss == 1: powerht = ( powerht - pcoreradpv * vol_plasma ) # shouldn't this be vol_core instead of vol_plasma? diff --git a/process/power.py b/process/power.py index 0ac6924aac..6dd504f92f 100644 --- a/process/power.py +++ b/process/power.py @@ -1554,10 +1554,10 @@ def power2(self, output: bool): po.ocmmnt(self.outfile, "-------------------------------") po.ocmmnt(self.outfile, "Only energy deposited in the plasma is included here.") - if physics_variables.iradloss == 0: + if physics_variables.i_rad_loss == 0: po.ocmmnt( self.outfile, - "Total power loss is scaling power plus radiation (physics_variables.iradloss = 0)", + "Total power loss is scaling power plus radiation (physics_variables.i_rad_loss = 0)", ) po.ovarrf( self.outfile, @@ -1575,10 +1575,10 @@ def power2(self, output: bool): ) total = physics_variables.pscalingmw + physics_variables.p_plasma_rad_mw po.ovarrf(self.outfile, "Total (MW)", "", total, "OP ") - elif physics_variables.iradloss == 1: + elif physics_variables.i_rad_loss == 1: po.ocmmnt( self.outfile, - "Total power loss is scaling power plus core radiation only (physics_variables.iradloss = 1)", + "Total power loss is scaling power plus core radiation only (physics_variables.i_rad_loss = 1)", ) po.ovarrf( self.outfile, @@ -1604,10 +1604,10 @@ def power2(self, output: bool): total = ( physics_variables.pscalingmw + physics_variables.p_plasma_inner_rad_mw ) - elif physics_variables.iradloss == 2: + elif physics_variables.i_rad_loss == 2: po.ocmmnt( self.outfile, - "Total power loss is scaling power only (physics_variables.iradloss = 2).", + "Total power loss is scaling power only (physics_variables.i_rad_loss = 2).", ) po.ocmmnt(self.outfile, "This is not recommended for power plant models.") po.ovarrf( @@ -1623,11 +1623,11 @@ def power2(self, output: bool): total = physics_variables.pscalingmw else: logger.error( - f"{'The value of physics_variables.iradloss appears to be invalid.'}" + f"{'The value of physics_variables.i_rad_loss appears to be invalid.'}" ) po.ocmmnt( self.outfile, - "ERROR: The value of physics_variables.iradloss appears to be invalid.", + "ERROR: The value of physics_variables.i_rad_loss appears to be invalid.", ) po.oblnkl(self.outfile) diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 94c3f87c5d..9a4418c0f8 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -440,7 +440,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! \begin{equation} c_i = !! \end{equation} !! - !! iradloss : input integer : switch for radiation loss term usage in power balance (see User Guide):
      + !! i_rad_loss : input integer : switch for radiation loss term usage in power balance (see User Guide):
        !!
      • = 0 total power lost is scaling power plus radiation (needed for ipedestal=2,3) !!
      • = 1 total power lost is scaling power plus core radiation only !!
      • = 2 total power lost is scaling power only, with no additional @@ -459,7 +459,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! pinjmw : input real : total auxiliary injected power (MW) !! vol_plasma : input real : plasma volume (m3) - use physics_variables, only: iradloss, ignite, ptrepv, ptripv, pden_plasma_rad_mw, & + use physics_variables, only: i_rad_loss, ignite, ptrepv, ptripv, pden_plasma_rad_mw, & pcoreradpv, f_alpha_plasma, alpha_power_density_total, charged_power_density, & pden_plasma_ohmic_mw, vol_plasma use current_drive_variables, only: pinjmw @@ -478,9 +478,9 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) real(dp) :: pnumerator, pdenom pscaling = ptrepv + ptripv ! Total power lost is scaling power plus radiation: - if (iradloss == 0) then + if (i_rad_loss == 0) then pnumerator = pscaling + pden_plasma_rad_mw - else if (iradloss == 1) then + else if (i_rad_loss == 1) then pnumerator = pscaling + pcoreradpv else pnumerator = pscaling @@ -560,7 +560,7 @@ subroutine constraint_eqn_004(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! #=#=# consistency !! and hence also optional here. !! Logic change during pre-factoring: err, symbol, units will be assigned only if present. - !! iradloss : input integer : switch for radiation loss term usage in power balance (see User Guide):
          + !! i_rad_loss : input integer : switch for radiation loss term usage in power balance (see User Guide):
            !!
          • = 0 total power lost is scaling power plus radiation (needed for ipedestal=2,3) !!
          • = 1 total power lost is scaling power plus core radiation only !!
          • = 2 total power lost is scaling power only, with no additional @@ -576,7 +576,7 @@ subroutine constraint_eqn_004(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! piepv : input real : ion/electron equilibration power per volume (MW/m3) !! pinjemw : input real : auxiliary injected power to electrons (MW) !! vol_plasma : input real : plasma volume (m3) - use physics_variables, only: iradloss, ignite, ptrepv, pcoreradpv, f_alpha_plasma, & + use physics_variables, only: i_rad_loss, ignite, ptrepv, pcoreradpv, f_alpha_plasma, & alpha_power_electron_density, piepv, vol_plasma, pden_plasma_rad_mw use current_drive_variables, only: pinjemw implicit none @@ -591,9 +591,9 @@ subroutine constraint_eqn_004(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) real(dp) :: pnumerator, pdenom pscaling = ptrepv ! Total power lost is scaling power plus radiation: - if (iradloss == 0) then + if (i_rad_loss == 0) then pnumerator = pscaling + pden_plasma_rad_mw - else if (iradloss == 1) then + else if (i_rad_loss == 1) then pnumerator = pscaling + pcoreradpv else pnumerator = pscaling diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index c26183f511..6a50828f2a 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -311,7 +311,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) i_beta_fast_alpha, tauee_in, alphaj, alphat, i_plasma_current, q, ti, tesep, rli, triang, & itart, f_nd_alpha_electron, iprofile, triang95, rad_fraction_sol, betbm0, f_nd_protium_electrons, & teped, f_helium3, iwalld, gamma, f_alpha_plasma, fgwped, tbeta, i_bootstrap_current, & - iradloss, te, alphan, rmajor, plasma_square, kappa, iinvqd, fkzohm, beamfus0, & + i_rad_loss, te, alphan, rmajor, plasma_square, kappa, iinvqd, fkzohm, beamfus0, & tauratio, i_density_limit, bt, i_plasma_wall_gap, ipnlaws, beta_max, beta_min, & i_diamagnetic_current, i_pfirsch_schluter_current, m_s_limit, burnup_in use pf_power_variables, only: iscenr, maxpoloidalpower @@ -657,8 +657,8 @@ subroutine parse_input_file(in_file,out_file,show_changes) case ('i_pfirsch_schluter_current') call parse_int_variable('i_pfirsch_schluter_current', i_pfirsch_schluter_current, 0, 1, & 'Switch for Pfirsch-Schlüter scaling') - case ('iradloss') - call parse_int_variable('iradloss', iradloss, 0, 2, & + case ('i_rad_loss') + call parse_int_variable('i_rad_loss', i_rad_loss, 0, 2, & 'Switch for radiation loss term inclusion in power balance') case ('i_confinement_time') call parse_int_variable('i_confinement_time', i_confinement_time, 0, ipnlaws, & diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 6c1eabb5e2..0d0b5dda57 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -410,7 +410,7 @@ module physics_variables !! - =5 use input value for alphaj. Set rli and beta_norm_max from Menard scaling !! - =6 use input values for alphaj, c_beta. Set rli from Menard and beta_norm_max from Tholerus - integer :: iradloss + integer :: i_rad_loss !! switch for radiation loss term usage in power balance (see User Guide): !! !! - =0 total power lost is scaling power plus radiation @@ -1049,7 +1049,7 @@ subroutine init_physics_variables teped = 1.0D0 tesep = 0.1D0 iprofile = 1 - iradloss = 1 + i_rad_loss = 1 i_confinement_time = 34 i_plasma_wall_gap = 1 i_plasma_geometry = 0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index ed0c726c47..a44d3af3c4 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -490,7 +490,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 9f19c980ff..584a1512a6 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -491,7 +491,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 7bddfcab36..970ccfed4f 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -491,7 +491,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 2d698f0b16..65640ff111 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -491,7 +491,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index a188cfd066..401adbc45b 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -487,7 +487,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2016E+01 diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 24bd845ae0..9ddb3ab010 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -493,7 +493,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5403E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0737E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9249E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.7889E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9961E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.3150E+00 @@ -1656,7 +1656,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5390E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0722E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9493E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8240E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9751E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2760E+00 @@ -2819,7 +2819,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5425E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0764E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8985E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9727E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2781E+00 @@ -3982,7 +3982,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5409E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0999E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8956E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9773E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2692E+00 @@ -5145,7 +5145,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5361E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0940E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9667E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8995E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9645E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2382E+00 @@ -6308,7 +6308,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5258E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0815E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9600E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8676E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9471E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1873E+00 @@ -7471,7 +7471,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5216E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1016E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9644E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8858E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9508E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1836E+00 @@ -8634,7 +8634,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5240E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1045E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9674E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9000E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9498E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1813E+00 @@ -9797,7 +9797,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5211E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1009E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9602E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8564E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9521E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1847E+00 @@ -10960,7 +10960,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1279E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9743E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9158E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9576E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1905E+00 @@ -12123,7 +12123,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5304E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1377E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9837E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0058E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9558E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1851E+00 @@ -13286,7 +13286,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5280E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1347E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9823E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0074E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9518E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1733E+00 @@ -14449,7 +14449,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5289E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1612E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9938E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0607E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9571E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1764E+00 @@ -15612,7 +15612,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5365E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1706E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0064E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1011E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9628E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1990E+00 @@ -16775,7 +16775,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5446E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1807E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0193E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1467E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9687E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2221E+00 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 6e53be09ad..19680aa519 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -348,7 +348,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -1343,7 +1343,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -2338,7 +2338,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -3333,7 +3333,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -4328,7 +4328,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -5323,7 +5323,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -6318,7 +6318,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -7313,7 +7313,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 @@ -8308,7 +8308,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 8feff6f6a5..e47af581c1 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2660,7 +2660,7 @@ "iptr": 0.0, "ipvlam": "ipeqns+2*ipnvars+1", "ipvp1": "ipnvars+1", - "iradloss": 1.0, + "i_rad_loss": 1.0, "ireactor": 1.0, "irefprop": 1.0, "irfcd": 1.0, @@ -9900,7 +9900,7 @@ "iptr": "", "ipvlam": "", "ipvp1": "", - "iradloss": "switch for radiation loss term usage in power balance (see User Guide):\n
              \n
            • =0 total power lost is scaling power plus radiation (needed for `ipedestal=2,3`)
            • \n
            • =1 total power lost is scaling power plus core radiation only
            • \n
            • =2 total power lost is scaling power only, with no additional\n allowance for radiation. This is not recommended for power plant models.
            • \n
            ", + "i_rad_loss": "switch for radiation loss term usage in power balance (see User Guide):\n
              \n
            • =0 total power lost is scaling power plus radiation (needed for `ipedestal=2,3`)
            • \n
            • =1 total power lost is scaling power plus core radiation only
            • \n
            • =2 total power lost is scaling power only, with no additional\n allowance for radiation. This is not recommended for power plant models.
            • \n
            ", "ireactor": "Switch for net electric power and cost of electricity calculations:\n
              \n
            • =0 do not calculate MW(electric) or c-o-e
            • \n
            • =1 calculate MW(electric) and c-o-e
            • \n
            ", "irefprop": "Switch to use REFPROP routines (stellarator only)", "irfcd": "Switch for current drive calculation:\n
              \n
            • =0 turned off
            • \n
            • =1 turned on
            • \n
            ", @@ -13479,7 +13479,7 @@ "lb": 0, "ub": 1 }, - "iradloss": { + "i_rad_loss": { "lb": 0, "ub": 2 }, @@ -19158,7 +19158,7 @@ "teped", "tesep", "iprofile", - "iradloss", + "i_rad_loss", "i_confinement_time", "tauscl", "i_plasma_wall_gap", @@ -20498,7 +20498,7 @@ "iprimshld": "int_variable", "iprofile": "int_variable", "i_pfirsch_schluter_current": "int_variable", - "iradloss": "int_variable", + "i_rad_loss": "int_variable", "ireactor": "int_variable", "irefprop": "int_variable", "irfcd": "int_variable", diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index 25668b75e7..cfcf294bc3 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -79,7 +79,7 @@ icc = 2 *icc = 4 * DESCRIPTION: Global power balance for electrons * JUSTIFICATION: Not recommended for use -* VARIABLES: iradloss,ignite,pinjemw, Rest calculated in-situ +* VARIABLES: i_rad_loss,ignite,pinjemw, Rest calculated in-situ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Performance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ @@ -599,7 +599,7 @@ f_sync_reflect = 0.6 * DESCRIPTION: Plasma synchrotron radiation wall reflectivity factor * JUSTIFICATION: -*iradloss = +*i_rad_loss = * DESCRIPTION: Switch for radiation loss term inclusion in power balance (default = 1) * =0 total power lost is scaling power plus radiation * =1 total power lost is scaling power plus core radiation only diff --git a/tests/regression/input_files/stellarator.IN.DAT b/tests/regression/input_files/stellarator.IN.DAT index cbeb5e73a9..61d214738a 100644 --- a/tests/regression/input_files/stellarator.IN.DAT +++ b/tests/regression/input_files/stellarator.IN.DAT @@ -128,7 +128,7 @@ aspect = 10.1 *Aspect ratio ignite = 1 *Switch for ignition assumption (1: Ignited) iinvqd = 1 *Switch for inverse quadrature in L-mode scaling laws 5 and 9 (1: Inverse quadrature with Neo-Alcator tau-E used) ipedestal = 0 *Switch for pedestal profiles (0: Parabolic Profiles) -iradloss = 1 *Switch for radiation loss term usage in power balance (1: Total power lost is scaling power plus core radiation only) +i_rad_loss = 1 *Switch for radiation loss term usage in power balance (1: Total power lost is scaling power plus core radiation only) i_confinement_time = 38 *Switch for energy confinement time scaling law (38: ISS04, 49: ISS04-Gyro-Bohm) kappa = 1.001 *Plasma separatrix elongation f_sync_reflect = 0.6 *Synchrotron wall reflectivity factor diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 1eadf524f8..5c42834a74 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -487,7 +487,7 @@ n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP - Switch_for_radiation_loss_term_usage_in_power_balance___________________ (iradloss)____________________ 1 + Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2016E+01 diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index fc7f40723d..ba6b3e4369 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2158,7 +2158,7 @@ def test_calculate_density_limit(calculatedensitylimitparam, physics): class PcondParam(NamedTuple): - iradloss: Any = None + i_rad_loss: Any = None tauee_in: Any = None @@ -2247,7 +2247,7 @@ class PcondParam(NamedTuple): "pcondparam", ( PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2291,7 +2291,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2335,7 +2335,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2379,7 +2379,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2423,7 +2423,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2467,7 +2467,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2511,7 +2511,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2555,7 +2555,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2599,7 +2599,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2643,7 +2643,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2687,7 +2687,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2731,7 +2731,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2775,7 +2775,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2819,7 +2819,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2863,7 +2863,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2907,7 +2907,7 @@ class PcondParam(NamedTuple): expected_powerht=290.18368660937881, ), PcondParam( - iradloss=1, + i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, kappaa_ipb=1.68145080681586, @@ -2965,7 +2965,7 @@ def test_pcond(pcondparam, monkeypatch, physics): :type monkeypatch: _pytest.monkeypatch.monkeypatch """ - monkeypatch.setattr(physics_variables, "iradloss", pcondparam.iradloss) + monkeypatch.setattr(physics_variables, "i_rad_loss", pcondparam.i_rad_loss) monkeypatch.setattr(physics_variables, "tauee_in", pcondparam.tauee_in) diff --git a/tests/unit/test_power.py b/tests/unit/test_power.py index 9fbad780d7..8c0380e58d 100644 --- a/tests/unit/test_power.py +++ b/tests/unit/test_power.py @@ -2137,7 +2137,7 @@ class Power2Param(NamedTuple): p_plasma_ohmic_mw: Any = None - iradloss: Any = None + i_rad_loss: Any = None fusion_power: Any = None @@ -2277,7 +2277,7 @@ class Power2Param(NamedTuple): palpfwmw=19.833077403424262, idivrt=1, p_plasma_ohmic_mw=0.61391840981850698, - iradloss=1, + i_rad_loss=1, fusion_power=1985.785106643267, non_alpha_charged_power=1.6064693283140403, pscalingmw=325.08626176539281, @@ -2379,7 +2379,7 @@ class Power2Param(NamedTuple): palpfwmw=19.826887164528632, idivrt=1, p_plasma_ohmic_mw=0.61391840981850698, - iradloss=1, + i_rad_loss=1, fusion_power=1985.1653095257811, non_alpha_charged_power=1.6059679220663614, pscalingmw=325.00280675287695, @@ -2570,7 +2570,7 @@ def test_power2(power2param, monkeypatch, power): physics_variables, "p_plasma_ohmic_mw", power2param.p_plasma_ohmic_mw ) - monkeypatch.setattr(physics_variables, "iradloss", power2param.iradloss) + monkeypatch.setattr(physics_variables, "i_rad_loss", power2param.i_rad_loss) monkeypatch.setattr(physics_variables, "fusion_power", power2param.fusion_power) From 99a27af3c272ef4bd253c10e5c7d5e2ad7e8cbbf Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 14:35:58 +0000 Subject: [PATCH 019/106] =?UTF-8?q?=E2=9C=A8=20Add=20minimum=20of=20ITER?= =?UTF-8?q?=2089-P=20and=20ITER=2089-O=20confinement=20time=20calculation?= =?UTF-8?q?=20and=20update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 9 +++- process/physics.py | 46 +++++-------------- 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 043ca0d5be..1819833fbb 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -186,7 +186,6 @@ $$ ------------------------- - ### 13: ITER H90-P H-mode scaling Is selected with `i_confinement_time = 13` @@ -197,6 +196,14 @@ $$ ------------------------- +### 14: Minimum of ITER 89-P and ITER 89-O + +Is selected with `i_confinement_time = 14` + +Will return the value of [ITER 89-P](#6-iter-89-p-l-mode-scaling) or [ITER 89-O](#7-iter-89-0-l-mode-scaling), whichever is smaller. + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/physics.py b/process/physics.py index 8067a8976a..60e0dd09c8 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6885,42 +6885,20 @@ def pcond( # ======================================================================== - elif ( - i_confinement_time == 14 - ): # Minimum of ITER 89-P (i_confinement_time=6) and ITER 89-O (i_confinement_time=7) - tauit1 = ( + # Minimum of ITER 89-P and ITER 89-O + elif i_confinement_time == 14: + tauee = min( hfact - * 0.048e0 - * pcur**0.85e0 - * rmajor**1.2e0 - * rminor**0.3e0 - * np.sqrt(kappa) - * dnla20**0.1e0 - * bt**0.2e0 - * np.sqrt(m_fuel_amu) - / np.sqrt(powerht) - ) - term1 = ( - 0.04e0 - * pcur**0.5e0 - * rmajor**0.3e0 - * rminor**0.8e0 - * kappa**0.6e0 - * m_fuel_amu**0.5e0 - ) - term2 = ( - 0.064e0 - * pcur**0.8e0 - * rmajor**1.6e0 - * rminor**0.6e0 - * kappa**0.5e0 - * dnla20**0.6e0 - * bt**0.35e0 - * m_fuel_amu**0.2e0 - / powerht + * confinement.iter_89P_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht + ), + hfact + * confinement.iter_89_0_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht + ), ) - tauit2 = hfact * (term1 + term2) - tauee = min(tauit1, tauit2) + + # ======================================================================== elif i_confinement_time == 15: # Riedel scaling (L-mode) tauee = ( From 5300b83545d4203bdce90c02645d67cf2afa300c Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 14:44:40 +0000 Subject: [PATCH 020/106] =?UTF-8?q?=E2=9C=A8=20Add=20Riedel=20L-mode=20sca?= =?UTF-8?q?ling=20confinement=20time=20calculation=20and=20update=20docume?= =?UTF-8?q?ntation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 41 +++++++++++++++++++ process/physics.py | 23 ++++++----- 3 files changed, 63 insertions(+), 11 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 1819833fbb..88bfdd0919 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -204,6 +204,16 @@ Will return the value of [ITER 89-P](#6-iter-89-p-l-mode-scaling) or [ITER 89-O] ------------------------- +### 15: Riedel L-mode scaling + +Is selected with `i_confinement_time = 15` + +$$ +\tau_{\text{E}} = 0.044 I^{0.93} R^{1.37} a^{-0.049} \kappa_{95}^{0.588} \overline{n}_{20}^{0.078} B_{\text{T}}^{0.152} P^{-0.537} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 791c2cf16b..a09b05e946 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -542,3 +542,44 @@ def iter_h90_p_confinement_time( * np.sqrt(afuel) / np.sqrt(powerht) ) + + +def riedel_l_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa95: float, + dnla20: float, + bt: float, + powerht: float, +) -> float: + """ + Calculate the Riedel scaling (L-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + + Returns: + float: Riedel confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + """ + return ( + 0.044e0 + * pcur**0.93e0 + * rmajor**1.37e0 + * rminor ** (-0.049e0) + * kappa95**0.588e0 + * dnla20**0.078e0 + * bt**0.152e0 + / powerht**0.537e0 + ) diff --git a/process/physics.py b/process/physics.py index 60e0dd09c8..f7ac94b551 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6900,19 +6900,20 @@ def pcond( # ======================================================================== - elif i_confinement_time == 15: # Riedel scaling (L-mode) - tauee = ( - hfact - * 0.044e0 - * pcur**0.93e0 - * rmajor**1.37e0 - * rminor ** (-0.049e0) - * kappa95**0.588e0 - * dnla20**0.078e0 - * bt**0.152e0 - / powerht**0.537e0 + # Riedel scaling (L-mode) + elif i_confinement_time == 15: + tauee = hfact * confinement.riedel_l_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, ) + # ======================================================================== + elif i_confinement_time == 16: # Christiansen et al scaling (L-mode) tauee = ( hfact From fb43847372a8502ffcff1940fee7ae00207e988c Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 14:49:01 +0000 Subject: [PATCH 021/106] =?UTF-8?q?=E2=9C=A8=20Add=20Christiansen=20L-mode?= =?UTF-8?q?=20scaling=20confinement=20time=20calculation=20and=20update=20?= =?UTF-8?q?documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 43 +++++++++++++++++++ process/physics.py | 26 ++++++----- 3 files changed, 68 insertions(+), 11 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 88bfdd0919..28b5080888 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -214,6 +214,16 @@ $$ ------------------------- +### 16: Christiansen L-mode scaling + +Is selected with `i_confinement_time = 16` + +$$ +\tau_{\text{E}} = 0.24 I^{0.79} R^{0.56} a^{1.46} \kappa_{95}^{0.73} \overline{n}_{20}^{0.41} B_{\text{T}}^{0.29} P^{-0.79} M_{\text{i}}^{-0.02} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index a09b05e946..1cf1ce4da3 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -583,3 +583,46 @@ def riedel_l_confinement_time( * bt**0.152e0 / powerht**0.537e0 ) + + +def christiansen_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa95: float, + dnla20: float, + bt: float, + powerht: float, + afuel: float, +) -> float: + """ + Calculate the Christiansen et al scaling (L-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + afuel (float): Fuel atomic mass number + + Returns: + float: Christiansen confinement time [s] + + Notes: + + References: + - Christiansen et al scaling (L-mode) + """ + return ( + 0.24e0 + * pcur**0.79e0 + * rmajor**0.56e0 + * rminor**1.46e0 + * kappa95**0.73e0 + * dnla20**0.41e0 + * bt**0.29e0 + / (powerht**0.79e0 * afuel**0.02e0) + ) diff --git a/process/physics.py b/process/physics.py index f7ac94b551..022e8832c5 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6914,19 +6914,23 @@ def pcond( # ======================================================================== - elif i_confinement_time == 16: # Christiansen et al scaling (L-mode) - tauee = ( - hfact - * 0.24e0 - * pcur**0.79e0 - * rmajor**0.56e0 - * rminor**1.46e0 - * kappa95**0.73e0 - * dnla20**0.41e0 - * bt**0.29e0 - / (powerht**0.79e0 * m_fuel_amu**0.02e0) + # Christiansen et al scaling (L-mode) + elif i_confinement_time == 16: + tauee = hfact * confinement.christiansen_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, + afuel, ) + # ======================================================================== + + # ======================================================================== + elif i_confinement_time == 17: # Lackner-Gottardi scaling (L-mode) qhat = (1.0e0 + kappa95**2) * rminor**2 * bt / (0.4e0 * pcur * rmajor) tauee = ( From 65c4a8178d78c5d06844344d620f245d26c5701d Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 15:01:23 +0000 Subject: [PATCH 022/106] =?UTF-8?q?=E2=9C=A8=20Add=20Lackner-Gottardi=20L-?= =?UTF-8?q?mode=20scaling=20confinement=20time=20calculation=20and=20updat?= =?UTF-8?q?e=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 12 +++++ process/confinement_time.py | 46 ++++++++++++++++++- process/physics.py | 25 +++++----- 3 files changed, 69 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 28b5080888..604aa4febf 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -224,6 +224,18 @@ $$ ------------------------- +### 17: Lackner-Gottardi L-mode scaling + +Is selected with `i_confinement_time = 17` + +$$ +\tau_{\text{E}} = 0.12 I^{0.8} R^{1.8} a^{0.4} \left(\frac{\kappa_{95}}{\left(1+\kappa_{95}\right)^{0.8}}\right) \overline{n}_{20}^{0.6} \hat{q}^{0.4} P^{-0.6} +$$ + +where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I R}$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 1cf1ce4da3..9e1ba65ce5 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -614,7 +614,7 @@ def christiansen_confinement_time( Notes: References: - - Christiansen et al scaling (L-mode) + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 """ return ( 0.24e0 @@ -626,3 +626,47 @@ def christiansen_confinement_time( * bt**0.29e0 / (powerht**0.79e0 * afuel**0.02e0) ) + + +def lackner_gottardi_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa95: float, + dnla20: float, + bt: float, + powerht: float, +) -> float: + """ + Calculate the Lackner-Gottardi scaling (L-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + + Returns: + float: Lackner-Gottardi confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + + """ + qhat = (1.0e0 + kappa95**2) * rminor**2 * bt / (0.4e0 * pcur * rmajor) + return ( + 0.12e0 + * pcur**0.8e0 + * rmajor**1.8e0 + * rminor**0.4e0 + * kappa95 + * (1.0e0 + kappa95) ** (-0.8e0) + * dnla20**0.6e0 + * qhat**0.4e0 + / powerht**0.6e0 + ) diff --git a/process/physics.py b/process/physics.py index 022e8832c5..0f625b955a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6931,21 +6931,20 @@ def pcond( # ======================================================================== - elif i_confinement_time == 17: # Lackner-Gottardi scaling (L-mode) - qhat = (1.0e0 + kappa95**2) * rminor**2 * bt / (0.4e0 * pcur * rmajor) - tauee = ( - hfact - * 0.12e0 - * pcur**0.8e0 - * rmajor**1.8e0 - * rminor**0.4e0 - * kappa95 - * (1.0e0 + kappa95) ** (-0.8e0) - * dnla20**0.6e0 - * qhat**0.4e0 - / powerht**0.6e0 + # Lackner-Gottardi scaling (L-mode) + elif i_confinement_time == 17: + tauee = hfact * confinement.lackner_gottardi_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, ) + # ======================================================================== + elif i_confinement_time == 18: # Neo-Kaye scaling (L-mode) tauee = ( hfact From 00e94d7ceeb42e7b5cf60fed101a07bdb4697cd2 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 15:07:16 +0000 Subject: [PATCH 023/106] =?UTF-8?q?=E2=9C=A8=20Add=20Neo-Kaye=20L-mode=20s?= =?UTF-8?q?caling=20confinement=20time=20calculation=20and=20update=20docu?= =?UTF-8?q?mentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 41 +++++++++++++++++++ process/physics.py | 27 ++++++------ 3 files changed, 66 insertions(+), 12 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 604aa4febf..1ecb573172 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -236,6 +236,16 @@ where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I R}$ ------------------------- +### 18: Neo-Kaye L-mode scaling + +Is selected with `i_confinement_time = 18` + +$$ +\tau_{\text{E}} = 0.063 I^{1.12} R^{1.3} a^{-0.04} \kappa_{95}^{0.28} \overline{n}_{20}^{0.14} B_{\text{T}}^{0.04} P^{-0.59} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 9e1ba65ce5..a322d17d23 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -670,3 +670,44 @@ def lackner_gottardi_confinement_time( * qhat**0.4e0 / powerht**0.6e0 ) + + +def neo_kaye_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa95: float, + dnla20: float, + bt: float, + powerht: float, +) -> float: + """ + Calculate the Neo-Kaye scaling (L-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + + Returns: + float: Neo-Kaye confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + """ + return ( + 0.063e0 + * pcur**1.12e0 + * rmajor**1.3e0 + * rminor ** (-0.04e0) + * kappa95**0.28e0 + * dnla20**0.14e0 + * bt**0.04e0 + / powerht**0.59e0 + ) diff --git a/process/physics.py b/process/physics.py index 0f625b955a..82ca8409e1 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6945,20 +6945,23 @@ def pcond( # ======================================================================== - elif i_confinement_time == 18: # Neo-Kaye scaling (L-mode) - tauee = ( - hfact - * 0.063e0 - * pcur**1.12e0 - * rmajor**1.3e0 - * rminor ** (-0.04e0) - * kappa95**0.28e0 - * dnla20**0.14e0 - * bt**0.04e0 - * np.sqrt(m_fuel_amu) - / powerht**0.59e0 + # Neo-Kaye scaling (L-mode) + elif i_confinement_time == 18: + tauee = hfact * confinement.neo_kaye_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + afuel, + powerht, ) + # ======================================================================== + + # ======================================================================== + elif i_confinement_time == 19: # Riedel scaling (H-mode) tauee = ( hfact From 3756ebbbb604012fee5ed7da4ab3a66f64a71e08 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 15:12:04 +0000 Subject: [PATCH 024/106] =?UTF-8?q?=E2=9C=A8=20Add=20Riedel=20H-mode=20sca?= =?UTF-8?q?ling=20confinement=20time=20calculation=20and=20update=20docume?= =?UTF-8?q?ntation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 44 +++++++++++++++++++ process/physics.py | 29 ++++++------ 3 files changed, 69 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 1ecb573172..15ae33f697 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -246,6 +246,16 @@ $$ ------------------------- +### 19: Riedel H-mode scaling + +Is selected with `i_confinement_time = 19` + +$$ +\tau_{\text{E}} = 0.1 M_{\text{i}}^{0.5} I^{0.884} R^{1.24} a^{-0.23} \kappa_{95}^{0.317} \overline{n}_{20}^{0.105} B_{\text{T}}^{0.207} P^{-0.486} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index a322d17d23..a800021964 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -711,3 +711,47 @@ def neo_kaye_confinement_time( * bt**0.04e0 / powerht**0.59e0 ) + + +def riedel_h_confinement_time( + pcur: float, + rmajor: float, + rminor: float, + kappa95: float, + dnla20: float, + bt: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the Riedel scaling (H-mode) confinement time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: Riedel H-mode confinement time [s] + + Notes: + + References: + - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 + """ + return ( + 0.1e0 + * np.sqrt(afuel) + * pcur**0.884e0 + * rmajor**1.24e0 + * rminor ** (-0.23e0) + * kappa95**0.317e0 + * bt**0.207e0 + * dnla20**0.105e0 + / powerht**0.486e0 + ) diff --git a/process/physics.py b/process/physics.py index 82ca8409e1..2992a248e3 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6958,23 +6958,24 @@ def pcond( powerht, ) - # ======================================================================== + # ======== ================================================================ + + # Riedel scaling (H-mode) + elif i_confinement_time == 19: + tauee = hfact * confinement.riedel_h_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + afuel, + powerht, + ) # ======================================================================== - elif i_confinement_time == 19: # Riedel scaling (H-mode) - tauee = ( - hfact - * 0.1e0 - * np.sqrt(m_fuel_amu) - * pcur**0.884e0 - * rmajor**1.24e0 - * rminor ** (-0.23e0) - * kappa95**0.317e0 - * bt**0.207e0 - * dnla20**0.105e0 - / powerht**0.486e0 - ) + # ======================================================================== elif i_confinement_time == 20: # Amended version of ITER H90-P law # Nuclear Fusion 32 (1992) 318 From 9615aaca7f4b516bd10156e113eacaf3d3b28b0c Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 15:26:21 +0000 Subject: [PATCH 025/106] =?UTF-8?q?=E2=9C=A8=20Add=20amended=20ITER=20H90-?= =?UTF-8?q?P=20confinement=20time=20calculation=20and=20update=20documenta?= =?UTF-8?q?tion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 40 +++++++++++++++++++ process/physics.py | 23 ++++++----- 3 files changed, 63 insertions(+), 10 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 15ae33f697..e2b294420c 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -256,6 +256,16 @@ $$ ------------------------- +### 20: Amended ITER H90-P H-mode scaling + +Is selected with `i_confinement_time = 20` + +$$ +\tau_{\text{E}} = 0.082 M_{\text{i}}^{0.5} I^{1.02} R^{1.6} \kappa_{95}^{-0.19} B_{\text{T}}^{0.15} P^{-0.47} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index a800021964..7b237dee43 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -755,3 +755,43 @@ def riedel_h_confinement_time( * dnla20**0.105e0 / powerht**0.486e0 ) + + +def iter_h90_p_amended_confinement_time( + pcur: float, + bt: float, + afuel: float, + rmajor: float, + powerht: float, + kappa: float, +) -> float: + """ + Calculate the amended ITER H90-P confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + afuel (float): Fuel atomic mass number + rmajor (float): Plasma major radius [m] + powerht (float): Net Heating power [MW] + kappa (float): Plasma elongation + + Returns: + float: Amended ITER H90-P confinement time [s] + + Notes: + + References: + - J. P. Christiansen et al., “Global energy confinement H-mode database for ITER,” + Nuclear Fusion, vol. 32, no. 2, pp. 291–338, Feb. 1992, + doi: https://doi.org/10.1088/0029-5515/32/2/i11. + ‌ + """ + return ( + 0.082e0 + * pcur**1.02e0 + * bt**0.15e0 + * np.sqrt(afuel) + * rmajor**1.60e0 + / (powerht**0.47e0 * kappa**0.19e0) + ) diff --git a/process/physics.py b/process/physics.py index 2992a248e3..1f1dfcf394 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6977,18 +6977,21 @@ def pcond( # ======================================================================== - elif i_confinement_time == 20: # Amended version of ITER H90-P law - # Nuclear Fusion 32 (1992) 318 - tauee = ( - hfact - * 0.082e0 - * pcur**1.02e0 - * bt**0.15e0 - * np.sqrt(m_fuel_amu) - * rmajor**1.60e0 - / (powerht**0.47e0 * kappa**0.19e0) + # Amended version of ITER H90-P law + elif i_confinement_time == 20: + tauee = hfact * confinement.iter_h90_p_amended_confinement_time( + pcur, + bt, + afuel, + rmajor, + powerht, + kappa, ) + # ========================================================================== + + # ========================================================================== + elif i_confinement_time == 21: # Large Helical Device scaling (stellarators) # S.Sudo, Y.Takeiri, H.Zushi et al., Nuclear Fusion 30 (1990) 11 tauee = ( From c458421b60c6c1b65da1fdfc702bbe2892a4784b Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 16:28:43 +0000 Subject: [PATCH 026/106] =?UTF-8?q?=E2=9C=A8=20Add=20Sudo=20et=20al.=20ste?= =?UTF-8?q?llarators/heliotron=20scaling=20confinement=20time=20calculatio?= =?UTF-8?q?n=20and=20update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 38 +++++++++++++++++++ process/physics.py | 19 +++++----- 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index e2b294420c..f3d7cf658a 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -266,6 +266,16 @@ $$ ------------------------- +### 21: Sudo et al. stellarators/heliotron scaling + +Is selected with `i_confinement_time = 21` + +$$ +\tau_{\text{E}} = 0.17 P^{-0.58} \overline{n}_{20}^{0.69} B^{0.84} a^{2.0} R^{0.75} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 7b237dee43..9e43e9b8e9 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -795,3 +795,41 @@ def iter_h90_p_amended_confinement_time( * rmajor**1.60e0 / (powerht**0.47e0 * kappa**0.19e0) ) + + +def sudo_et_al_confinement_time( + rmajor: float, + rminor: float, + dnla20: float, + bt: float, + powerht: float, +) -> float: + """ + Calculate the Sudo et al. scaling confinement time + + Parameters: + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + + Returns: + float: Sudo et al. confinement time [s] + + Notes: + + References: + - S. Sudo et al., “Scalings of energy confinement and density limit in stellarator/heliotron devices,” + Nuclear Fusion, vol. 30, no. 1, pp. 11–21, Jan. 1990, + doi: https://doi.org/10.1088/0029-5515/30/1/002. + ‌""" + + return ( + 0.17e0 + * rmajor**0.75e0 + * rminor**2 + * dnla20**0.69e0 + * bt**0.84e0 + * powerht ** (-0.58e0) + ) diff --git a/process/physics.py b/process/physics.py index 1f1dfcf394..a7c18d6c9a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6992,18 +6992,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 21: # Large Helical Device scaling (stellarators) - # S.Sudo, Y.Takeiri, H.Zushi et al., Nuclear Fusion 30 (1990) 11 - tauee = ( - hfact - * 0.17e0 - * rmajor**0.75e0 - * rminor**2 - * dnla20**0.69e0 - * bt**0.84e0 - * powerht ** (-0.58e0) + # Sudo et al. scaling (stellarators/heliotron) + elif i_confinement_time == 21: + tauee = hfact * confinement.sudo_et_al_confinement_time( + rmajor, + rminor, + dnla20, + bt, + powerht, ) + # ========================================================================== elif i_confinement_time == 22: # Gyro-reduced Bohm scaling # R.J.Goldston, H.Biglari, G.W.Hammett et al., Bull.Am.Phys.Society, # volume 34, 1964 (1989) From 11e1a68af43b5883e060004b53446f53d020824f Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 16:45:12 +0000 Subject: [PATCH 027/106] =?UTF-8?q?=E2=9C=A8=20Add=20Gyro-reduced=20Bohm?= =?UTF-8?q?=20scaling=20confinement=20time=20calculation=20and=20update=20?= =?UTF-8?q?documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++++ process/confinement_time.py | 36 +++++++++++++++++++ process/physics.py | 21 ++++++----- 3 files changed, 56 insertions(+), 11 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index f3d7cf658a..d1c425ceb2 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -276,6 +276,16 @@ $$ ------------------------- +### 22: Gyro reduced Bohm scaling + +Is selected with `i_confinement_time = 22` + +$$ +\tau_{\text{E}} = 0.25 P^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.4} R^{0.6} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 9e43e9b8e9..34cdf699e6 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -833,3 +833,39 @@ def sudo_et_al_confinement_time( * bt**0.84e0 * powerht ** (-0.58e0) ) + + +def gyro_reduced_bohm_confinement_time( + bt: float, + dnla20: float, + powerht: float, + rminor: float, + rmajor: float, +) -> float: + """ + Calculate the Gyro-reduced Bohm scaling confinement time + + Parameters: + bt (float): Toroidal magnetic field [T] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + powerht (float): Net Heating power [MW] + rminor (float): Plasma minor radius [m] + rmajor (float): Plasma major radius [m] + + Returns: + float: Gyro-reduced Bohm confinement time [s] + + Notes: + + References: + - Goldston, R. J., H. Biglari, and G. W. Hammett. "E× B/B 2 vs. µ B/B as the Cause of Transport in Tokamaks." + Bull. Am. Phys. Soc 34 (1989): 1964. + """ + return ( + 0.25e0 + * bt**0.8e0 + * dnla20**0.6e0 + * powerht ** (-0.6e0) + * rminor**2.4e0 + * rmajor**0.6e0 + ) diff --git a/process/physics.py b/process/physics.py index a7c18d6c9a..86323a59b6 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7003,19 +7003,18 @@ def pcond( ) # ========================================================================== - elif i_confinement_time == 22: # Gyro-reduced Bohm scaling - # R.J.Goldston, H.Biglari, G.W.Hammett et al., Bull.Am.Phys.Society, - # volume 34, 1964 (1989) - tauee = ( - hfact - * 0.25e0 - * bt**0.8e0 - * dnla20**0.6e0 - * powerht ** (-0.6e0) - * rminor**2.4e0 - * rmajor**0.6e0 + + # Gyro-reduced Bohm scaling + elif i_confinement_time == 22: + tauee = hfact * confinement.gyro_reduced_bohm_confinement_time( + bt, + dnla20, + powerht, + rminor, + rmajor, ) + # ========================================================================== elif i_confinement_time == 23: # Lackner-Gottardi stellarator scaling # K.Lackner and N.A.O.Gottardi, Nuclear Fusion, 30, p.767 (1990) iotabar = q # dummy argument q is actual argument iotabar for stellarators From 97809ba8c947871ff7b6b346e8b85aa4ac131096 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 20 Jan 2025 17:07:05 +0000 Subject: [PATCH 028/106] =?UTF-8?q?=E2=9C=A8=20Add=20Lackner-Gottardi=20st?= =?UTF-8?q?ellarator=20scaling=20confinement=20time=20calculation=20and=20?= =?UTF-8?q?update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 41 +++++++++++++++++++ process/physics.py | 24 +++++------ 3 files changed, 63 insertions(+), 12 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index d1c425ceb2..1119784a36 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -286,6 +286,16 @@ $$ ------------------------- +### 23: Lackner-Gottardi Stellerator scaling + +Is selected with `i_confinement_time = 23` + +$$ +\tau_{\text{E}} = 0.17 P^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.0} R q_{95}^{0.4} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 34cdf699e6..ed344204e2 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -869,3 +869,44 @@ def gyro_reduced_bohm_confinement_time( * rminor**2.4e0 * rmajor**0.6e0 ) + + +def lackner_gottardi_stellarator_confinement_time( + rmajor: float, + rminor: float, + dnla20: float, + bt: float, + powerht: float, + q: float, +) -> float: + """ + Calculate the Lackner-Gottardi stellarator scaling confinement time + + Parameters: + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + q (float): Edge safety factor + + Returns: + float: Lackner-Gottardi stellarator confinement time [s] + + Notes: + + References: + - K. Lackner and N. A. O. Gottardi, “Tokamak confinement in relation to plateau scaling,” + Nuclear Fusion, vol. 30, no. 4, pp. 767–770, Apr. 1990, + doi: https://doi.org/10.1088/0029-5515/30/4/018. + ‌ + """ + return ( + 0.17e0 + * rmajor + * rminor**2 + * dnla20**0.6e0 + * bt**0.8e0 + * powerht ** (-0.6e0) + * q**0.4e0 + ) diff --git a/process/physics.py b/process/physics.py index 86323a59b6..d2cf8150c1 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7015,20 +7015,20 @@ def pcond( ) # ========================================================================== - elif i_confinement_time == 23: # Lackner-Gottardi stellarator scaling - # K.Lackner and N.A.O.Gottardi, Nuclear Fusion, 30, p.767 (1990) - iotabar = q # dummy argument q is actual argument iotabar for stellarators - tauee = ( - hfact - * 0.17e0 - * rmajor - * rminor**2 - * dnla20**0.6e0 - * bt**0.8e0 - * powerht ** (-0.6e0) - * iotabar**0.4e0 + + # Lackner-Gottardi stellarator scaling + elif i_confinement_time == 23: + tauee = hfact * confinement.lackner_gottardi_stellarator_confinement_time( + rmajor, + rminor, + dnla20, + bt, + powerht, + q, ) + # ========================================================================== + elif ( i_confinement_time == 24 ): # ITER-93H scaling (ELM-free; multiply by 0.85 for ELMy version) From 5782932d374be6fea9767649b9965fb486e54377 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 21 Jan 2025 09:24:28 +0000 Subject: [PATCH 029/106] =?UTF-8?q?=E2=9C=A8=20Add=20ELM-free=20ITER=20H-m?= =?UTF-8?q?ode=20scaling=20confinement=20time=20calculation=20and=20update?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 47 +++++++++++++++++++ process/physics.py | 29 ++++++------ 3 files changed, 72 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 1119784a36..8fb4264bbc 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -296,6 +296,16 @@ $$ ------------------------- +### 26: ELM-free: ITERH-97P scaling + +Is selected with `i_confinement_time = 26` + +$$ +\tau_{\text{E}} = 0.029 M_{\text{i}}^{0.2} I^{0.9} R^{2.03} \epsilon^{-0.19} \kappa_{95}^{0.92} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.20} P^{-0.66} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index ed344204e2..984449181a 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -910,3 +910,50 @@ def lackner_gottardi_stellarator_confinement_time( * powerht ** (-0.6e0) * q**0.4e0 ) + + +def iter_h97p_confinement_time( + pcur: float, + bt: float, + powerht: float, + dnla19: float, + rmajor: float, + aspect: float, + kappa: float, + afuel: float, +) -> float: + """ + Calculate the ELM-free ITER H-mode scaling - ITER H97-P confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + rmajor (float): Plasma major radius [m] + aspect (float): Aspect ratio + kappa (float): Plasma elongation + afuel (float): Fuel atomic mass number + + Returns: + float: ITER H97-P confinement time [s] + + Notes: + + References: + - I. C. Database and M. W. G. (presented Cordey), “Energy confinement scaling and the extrapolation to ITER,” + Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115–B127, Dec. 1997, + doi: https://doi.org/10.1088/0741-3335/39/12b/009. + ‌ + """ + return ( + 0.031e0 + * pcur**0.95e0 + * bt**0.25e0 + * powerht ** (-0.67e0) + * dnla19**0.35e0 + * rmajor**1.92e0 + * aspect ** (-0.08e0) + * kappa**0.63e0 + * afuel**0.42e0 + ) diff --git a/process/physics.py b/process/physics.py index d2cf8150c1..b7df0131c7 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7048,23 +7048,24 @@ def pcond( * kappa**0.66e0 ) - # Next two are ITER-97 H-mode scalings - # J. G. Cordey et al., EPS Berchtesgaden, 1997 + # ========================================================================== - elif i_confinement_time == 26: # ELM-free: ITERH-97P - tauee = ( - hfact - * 0.031e0 - * pcur**0.95e0 - * bt**0.25e0 - * powerht ** (-0.67e0) - * dnla19**0.35e0 - * rmajor**1.92e0 - * aspect ** (-0.08e0) - * kappa**0.63e0 - * m_fuel_amu**0.42e0 + # ELM-free: ITERH-97P + elif i_confinement_time == 26: + tauee = hfact * confinement.iter_h97p_confinement_time( + pcur, + bt, + powerht, + dnla19, + rmajor, + aspect, + kappa, + afuel, ) + # ========================================================================== + # Next two are ITER-97 H-mode scalings + # J. G. Cordey et al., EPS Berchtesgaden, 1997 elif i_confinement_time == 27: # ELMy: ITERH-97P(y) tauee = ( hfact From 05b06c566c7d7b3791ccee1a5908a09df1fad580 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 21 Jan 2025 09:38:11 +0000 Subject: [PATCH 030/106] =?UTF-8?q?=E2=9C=A8=20Add=20ELMy=20ITER=20H97-P(y?= =?UTF-8?q?)=20scaling=20confinement=20time=20calculation=20and=20update?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 53 +++++++++++++++++++ process/physics.py | 34 +++++++----- 3 files changed, 83 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 8fb4264bbc..8b0d97d89a 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -300,6 +300,16 @@ $$ Is selected with `i_confinement_time = 26` +$$ +\tau_{\text{E}} = 0.031 M_{\text{i}}^{0.42} I^{0.95} R^{1.92} \epsilon^{0.08} \kappa_{95}^{0.63} \overline{n}_{19}^{0.35} B_{\text{T}}^{0.25} P^{-0.67} +$$ + +------------------------- + +### 27: ELMy ITER H-H97-P(y) scaling + +Is selected with `i_confinement_time = 27` + $$ \tau_{\text{E}} = 0.029 M_{\text{i}}^{0.2} I^{0.9} R^{2.03} \epsilon^{-0.19} \kappa_{95}^{0.92} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.20} P^{-0.66} $$ diff --git a/process/confinement_time.py b/process/confinement_time.py index 984449181a..fe6283bf8c 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -957,3 +957,56 @@ def iter_h97p_confinement_time( * kappa**0.63e0 * afuel**0.42e0 ) + + +def iter_h97p_elmy_confinement_time( + pcur: float, + bt: float, + powerht: float, + dnla19: float, + rmajor: float, + aspect: float, + kappa: float, + afuel: float, +) -> float: + """ + Calculate the ELMy ITER H-mode scaling - ITER H97-P(y) confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + rmajor (float): Plasma major radius [m] + aspect (float): Aspect ratio + kappa (float): Plasma elongation + afuel (float): Fuel atomic mass number + + Returns: + float: ITER H97-P(y) confinement time [s] + + Notes: + + References: + - I. C. Database and M. W. G. (presented Cordey), “Energy confinement scaling and the extrapolation to ITER,” + Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115–B127, Dec. 1997, + doi: https://doi.org/10.1088/0741-3335/39/12b/009. + + - International Atomic Energy Agency, Vienna (Austria), ‘Technical basis for the ITER final design report, cost review and safety analysis (FDR)’, + no. no.16. Dec. 1998. + """ + return ( + 0.029e0 + * pcur**0.90e0 + * bt**0.20e0 + * powerht ** (-0.66e0) + * dnla19**0.40e0 + * rmajor**2.03e0 + * aspect ** (-0.19e0) + * kappa**0.92e0 + * afuel**0.2e0 + ) + + +if __name__ == "__main__": + pass \ No newline at end of file diff --git a/process/physics.py b/process/physics.py index b7df0131c7..3a03efac29 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7064,22 +7064,28 @@ def pcond( ) # ========================================================================== - # Next two are ITER-97 H-mode scalings - # J. G. Cordey et al., EPS Berchtesgaden, 1997 - elif i_confinement_time == 27: # ELMy: ITERH-97P(y) - tauee = ( - hfact - * 0.029e0 - * pcur**0.90e0 - * bt**0.20e0 - * powerht ** (-0.66e0) - * dnla19**0.40e0 - * rmajor**2.03e0 - * aspect ** (-0.19e0) - * kappa**0.92e0 - * m_fuel_amu**0.2e0 + # Scaling removed + elif i_confinement_time == 25: + raise ValueError("Scaling removed") + # ========================================================================== + + # ELMy: ITERH-97P(y) + elif i_confinement_time == 27: + tauee = hfact * confinement.iter_h97p_elmy_confinement_time( + pcur, + bt, + powerht, + dnla19, + rmajor, + aspect, + kappa, + afuel, ) + # ========================================================================== + + # ========================================================================== + elif i_confinement_time == 28: # ITER-96P (= ITER-97L) L-mode scaling # S.M.Kaye and the ITER Confinement Database Working Group, # Nuclear Fusion 37 (1997) 1303 From b0a4dab9d4ad80d2044e39040fc3fdbca91276a3 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 21 Jan 2025 09:48:24 +0000 Subject: [PATCH 031/106] =?UTF-8?q?=E2=9C=A8=20Add=20ITER-96P=20(ITER-97L)?= =?UTF-8?q?=20L-mode=20scaling=20confinement=20time=20calculation=20and=20?= =?UTF-8?q?update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++ process/confinement_time.py | 50 ++++++++++++- process/physics.py | 70 +++++++++++++++---- 3 files changed, 114 insertions(+), 16 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 8b0d97d89a..3c9c6c68cc 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -316,6 +316,16 @@ $$ ------------------------- +### 28: ITER-96P (ITER-97L) L-mode scaling + +Is selected with `i_confinement_time = 28` + +$$ +\tau_{\text{E}} = 0.023 M_{\text{i}}^{0.2} I^{0.96} R^{1.83} \epsilon^{-0.06} \kappa_{95}^{0.64} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.03} P^{-0.73} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index fe6283bf8c..5b56541793 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1008,5 +1008,53 @@ def iter_h97p_elmy_confinement_time( ) +def iter_96p_confinement_time( + pcur: float, + bt: float, + kappa95: float, + rmajor: float, + aspect: float, + dnla19: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the ITER-96P (= ITER-97L) L-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + kappa95 (float): Plasma elongation at 95% flux surface + rmajor (float): Plasma major radius [m] + aspect (float): Aspect ratio + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: ITER-96P confinement time [s] + + Notes: + - The thermal energy confinement time is given below + + References: + - S. B. Kaye et al., “ITER L mode confinement database,” + Nuclear Fusion, vol. 37, no. 9, pp. 1303–1328, Sep. 1997, + doi: https://doi.org/10.1088/0029-5515/37/9/i10. + ‌ + """ + return ( + 0.023e0 + * pcur**0.96e0 + * bt**0.03e0 + * kappa95**0.64e0 + * rmajor**1.83e0 + * aspect**0.06e0 + * dnla19**0.40e0 + * afuel**0.20e0 + * powerht ** (-0.73e0) + ) + + if __name__ == "__main__": - pass \ No newline at end of file + pass diff --git a/process/physics.py b/process/physics.py index 3a03efac29..85ff1f1ed1 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7086,23 +7086,23 @@ def pcond( # ========================================================================== - elif i_confinement_time == 28: # ITER-96P (= ITER-97L) L-mode scaling - # S.M.Kaye and the ITER Confinement Database Working Group, - # Nuclear Fusion 37 (1997) 1303 - # N.B. tau_th formula used - tauee = ( - hfact - * 0.023e0 - * pcur**0.96e0 - * bt**0.03e0 - * kappa95**0.64e0 - * rmajor**1.83e0 - * aspect**0.06e0 - * dnla19**0.40e0 - * m_fuel_amu**0.20e0 - * powerht ** (-0.73e0) + # ITER-96P (= ITER-97L) L-mode scaling + elif i_confinement_time == 28: + tauee = hfact * confinement.iter_96p_confinement_time( + pcur, + bt, + kappa95, + rmajor, + aspect, + dnla19, + afuel, + powerht, ) + # ========================================================================== + + # ========================================================================== + elif i_confinement_time == 29: # Valovic modified ELMy-H mode scaling tauee = ( hfact @@ -7117,6 +7117,8 @@ def pcond( * powerht ** (-0.68e0) ) + # ========================================================================== + elif i_confinement_time == 30: # Kaye PPPL Workshop April 1998 L-mode scaling tauee = ( hfact @@ -7131,6 +7133,8 @@ def pcond( * powerht ** (-0.73e0) ) + # ========================================================================== + elif i_confinement_time == 31: # ITERH-PB98P(y), ELMy H-mode scaling tauee = ( hfact @@ -7145,6 +7149,8 @@ def pcond( * m_fuel_amu**0.2e0 ) + # ========================================================================== + elif i_confinement_time == 32: # IPB98(y), ELMy H-mode scaling # Data selection : full ITERH.DB3 # Nuclear Fusion 39 (1999) 2175, Table 5 @@ -7161,6 +7167,8 @@ def pcond( * m_fuel_amu**0.2e0 ) + # ========================================================================== + elif i_confinement_time == 33: # IPB98(y,1), ELMy H-mode scaling # Data selection : full ITERH.DB3 # Nuclear Fusion 39 (1999) 2175, Table 5 @@ -7177,6 +7185,8 @@ def pcond( * m_fuel_amu**0.13e0 ) + # ========================================================================== + elif i_confinement_time == 34: # IPB98(y,2), ELMy H-mode scaling # Data selection : ITERH.DB3, NBI only # Nuclear Fusion 39 (1999) 2175, Table 5 @@ -7193,6 +7203,8 @@ def pcond( * m_fuel_amu**0.19e0 ) + # ========================================================================== + elif i_confinement_time == 35: # IPB98(y,3), ELMy H-mode scaling # Data selection : ITERH.DB3, NBI only, no C-Mod # Nuclear Fusion 39 (1999) 2175, Table 5 @@ -7209,6 +7221,8 @@ def pcond( * m_fuel_amu**0.20e0 ) + # ========================================================================== + elif i_confinement_time == 36: # IPB98(y,4), ELMy H-mode scaling # Data selection : ITERH.DB3, NBI only, ITER like devices # Nuclear Fusion 39 (1999) 2175, Table 5 @@ -7225,6 +7239,8 @@ def pcond( * m_fuel_amu**0.17e0 ) + # ========================================================================== + elif i_confinement_time == 37: # ISS95 stellarator scaling # U. Stroth et al., Nuclear Fusion, 36, p.1063 (1996) # Assumes kappa = 1.0, triang = 0.0 @@ -7240,6 +7256,8 @@ def pcond( * iotabar**0.4e0 ) + # ========================================================================== + elif i_confinement_time == 38: # ISS04 stellarator scaling # H. Yamada et al., Nuclear Fusion, 45, p.1684 (2005) # Assumes kappa = 1.0, triang = 0.0 @@ -7255,6 +7273,8 @@ def pcond( * iotabar**0.41e0 ) + # ========================================================================== + elif i_confinement_time == 39: # DS03 beta-independent H-mode scaling # T. C. Luce, C. C. Petty and J. G. Cordey, # Plasma Phys. Control. Fusion 50 (2008) 043001, eqn.4.13, p.67 @@ -7271,6 +7291,8 @@ def pcond( * m_fuel_amu**0.14e0 ) + # ========================================================================== + elif ( i_confinement_time == 40 ): # "Non-power law" (NPL) Murari energy confinement scaling @@ -7291,6 +7313,8 @@ def pcond( * h ) + # ========================================================================== + elif ( i_confinement_time == 41 ): # Beta independent dimensionless confinement scaling @@ -7308,6 +7332,8 @@ def pcond( * aspect ** (-0.84e0) ) + # ========================================================================== + elif i_confinement_time == 42: # High density relevant confinement scaling # P.T. Lang et al. 2012, IAEA conference proceeding EX/P4-01 # q should be q95: incorrect if i_plasma_current = 2 (ST current scaling) @@ -7331,6 +7357,8 @@ def pcond( * nratio ** (-0.22e0 * np.log(nratio)) ) + # ========================================================================== + elif ( i_confinement_time == 43 ): # Hubbard et al. 2017 I-mode confinement time scaling - nominal @@ -7343,6 +7371,8 @@ def pcond( * powerht ** (-0.29e0) ) + # ========================================================================== + elif ( i_confinement_time == 44 ): # Hubbard et al. 2017 I-mode confinement time scaling - lower @@ -7355,6 +7385,8 @@ def pcond( * powerht ** (-0.33e0) ) + # ========================================================================== + elif ( i_confinement_time == 45 ): # Hubbard et al. 2017 I-mode confinement time scaling - upper @@ -7367,6 +7399,8 @@ def pcond( * powerht ** (-0.25e0) ) + # ========================================================================== + elif i_confinement_time == 46: # NSTX, ELMy H-mode scaling # NSTX scaling with IPB98(y,2) for other variables # Menard 2019, Phil. Trans. R. Soc. A 377:20170440 @@ -7384,6 +7418,8 @@ def pcond( * m_fuel_amu**0.19e0 ) + # ========================================================================== + elif i_confinement_time == 47: # NSTX-Petty08 Hybrid # Linear interpolation between NSTX and Petty08 in eps # Menard 2019, Phil. Trans. R. Soc. A 377:20170440 @@ -7444,6 +7480,8 @@ def pcond( + ((0.6e0 - (1.0e0 / aspect)) / (0.6e0 - 0.4e0)) * taupetty ) + # ========================================================================== + elif i_confinement_time == 48: # NSTX gyro-Bohm (Buxton) # P F Buxton et al. 2019 Plasma Phys. Control. Fusion 61 035006 tauee = ( @@ -7456,6 +7494,8 @@ def pcond( * dnla20 ** (-0.05e0) ) + # ========================================================================== + elif i_confinement_time == 49: # ITPA20 Issue #3164 # The updated ITPA global H-mode confinement database: description and analysis # G. Verdoolaege et al 2021 Nucl. Fusion 61 076006 DOI 10.1088/1741-4326/abdb91 From ffb5c1311eed7e86698486c9de899abc3f643474 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 09:25:14 +0000 Subject: [PATCH 032/106] =?UTF-8?q?=E2=9C=A8=20Add=20IPB98(y)=20ELMy=20H-m?= =?UTF-8?q?ode=20scaling=20confinement=20time=20calculation=20and=20update?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 47 +++++++++++++++++++ process/physics.py | 29 ++++++------ 3 files changed, 72 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 3c9c6c68cc..ec37247c61 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -326,6 +326,16 @@ $$ ------------------------- +### 32: IPB98(y) ELMy H-mode scaling + +Is selected with `i_confinement_time = 32` + +$$ +\tau_{\text{E}} = 0.0365 I^{0.97} B_{\text{T}}^{0.08} \overline{n}_{19}^{0.41} P^{-0.63} R^{1.93} \kappa^{0.67} \epsilon^{0.23} M^{0.2} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 5b56541793..ff32cf1963 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1056,5 +1056,52 @@ def iter_96p_confinement_time( ) +def iter_ipb98y_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the IPB98(y) ELMy H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa (float): Plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: IPB98(y) ELMy H-mode confinement time [s] + + Notes: + - Unlike the other IPB98 scaling laws, the IPB98(y) scaling law uses the true separatrix elongation. + + References: + - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” + Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + ‌ + """ + return ( + 0.0365e0 + * pcur**0.97e0 + * bt**0.08e0 + * dnla19**0.41e0 + * powerht ** (-0.63e0) + * rmajor**1.93e0 + * kappa**0.67e0 + * aspect ** (-0.23e0) + * afuel**0.2e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 85ff1f1ed1..ffd251b7eb 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6690,6 +6690,8 @@ def pcond( str2 = 2.0e0 * (kappa**2) / (1.0e0 + (kappa**2)) tauei = 0.375e0 * rminor**2 / chii * str2 + # ======================================================================== + # Calculate heating power (MW) powerht = ( physics_variables.f_alpha_plasma * alpha_power_total @@ -6713,6 +6715,8 @@ def pcond( # Ensure heating power is positive (shouldn't be necessary) powerht = max(powerht, 1.0e-3) + # ======================================================================== + # Line averaged electron density in scaled units dnla20 = dnla * 1.0e-20 dnla19 = dnla * 1.0e-19 @@ -7151,20 +7155,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 32: # IPB98(y), ELMy H-mode scaling - # Data selection : full ITERH.DB3 - # Nuclear Fusion 39 (1999) 2175, Table 5 - tauee = ( - hfact - * 0.0365e0 - * pcur**0.97e0 - * bt**0.08e0 - * dnla19**0.41e0 - * powerht ** (-0.63e0) - * rmajor**1.93e0 - * kappa**0.67e0 - * aspect ** (-0.23e0) - * m_fuel_amu**0.2e0 + # IPB98(y), ELMy H-mode scaling + elif i_confinement_time == 32: + tauee = hfact * confinement.iter_ipb98y_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa, + aspect, + afuel, ) # ========================================================================== From 8d6a9eec9f6a4b302d8af8e5feccbdcb07be45ea Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 09:29:47 +0000 Subject: [PATCH 033/106] :arrows_counterclockwise: Rename kappaa_IPB to kappa_ipb for consistency in variable naming --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 ++++----- process/physics.py | 24 ++++++------ source/fortran/physics_variables.f90 | 4 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++++-------- tests/integration/data/scan_MFILE.DAT | 18 ++++----- tests/integration/ref_dicts.json | 6 +-- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 38 +++++++++---------- 18 files changed, 80 insertions(+), 80 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index d3ea331c26..30a98fbea0 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -504,7 +504,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7123E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0262E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7167E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.6973E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3365E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index bdd2ba8464..e39adbef57 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -500,7 +500,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 0dc9763700..3c36bef66b 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -500,7 +500,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index f8bc31cbdf..c416e0cd0a 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -500,7 +500,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 4135b80b0e..2a17dfdedc 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -500,7 +500,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 84af76c14e..b12040eaeb 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -357,7 +357,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -1352,7 +1352,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -2347,7 +2347,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -3342,7 +3342,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -4337,7 +4337,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -5332,7 +5332,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -6327,7 +6327,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -7322,7 +7322,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -8317,7 +8317,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/process/physics.py b/process/physics.py index ffd251b7eb..245157965e 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5360,8 +5360,8 @@ def outplas(self): po.ovarre( self.outfile, "Volume measure of elongation", - "(kappaa_IPB)", - physics_variables.kappaa_ipb, + "(kappa_ipb)", + physics_variables.kappa_ipb, "OP ", ) @@ -6731,7 +6731,7 @@ def pcond( kappaa = a_plasma_poloidal / (np.pi * rminor * rminor) # Separatrix kappa defined with plasma volume for IPB scalings - physics_variables.kappaa_ipb = vol_plasma / ( + physics_variables.kappa_ipb = vol_plasma / ( 2.0e0 * np.pi**2 * rminor * rminor * rmajor ) @@ -7181,7 +7181,7 @@ def pcond( * dnla19**0.44e0 * powerht ** (-0.65e0) * rmajor**2.05e0 - * physics_variables.kappaa_ipb**0.72e0 + * physics_variables.kappa_ipb**0.72e0 * aspect ** (-0.57e0) * m_fuel_amu**0.13e0 ) @@ -7199,7 +7199,7 @@ def pcond( * dnla19**0.41e0 * powerht ** (-0.69e0) * rmajor**1.97e0 - * physics_variables.kappaa_ipb**0.78e0 + * physics_variables.kappa_ipb**0.78e0 * aspect ** (-0.58e0) * m_fuel_amu**0.19e0 ) @@ -7217,7 +7217,7 @@ def pcond( * dnla19**0.40e0 * powerht ** (-0.69e0) * rmajor**2.15e0 - * physics_variables.kappaa_ipb**0.78e0 + * physics_variables.kappa_ipb**0.78e0 * aspect ** (-0.64e0) * m_fuel_amu**0.20e0 ) @@ -7235,7 +7235,7 @@ def pcond( * dnla19**0.39e0 * powerht ** (-0.70e0) * rmajor**2.08e0 - * physics_variables.kappaa_ipb**0.76e0 + * physics_variables.kappa_ipb**0.76e0 * aspect ** (-0.69e0) * m_fuel_amu**0.17e0 ) @@ -7350,7 +7350,7 @@ def pcond( * dnla**0.032236e0 * (powerht * 1.0e6) ** (-0.74e0) * rmajor**1.2345e0 - * physics_variables.kappaa_ipb**0.37e0 + * physics_variables.kappa_ipb**0.37e0 * aspect**2.48205e0 * m_fuel_amu**0.2e0 * qratio**0.77e0 @@ -7414,7 +7414,7 @@ def pcond( * dnla19**0.44e0 * powerht ** (-0.73e0) * rmajor**1.97e0 - * physics_variables.kappaa_ipb**0.78e0 + * physics_variables.kappa_ipb**0.78e0 * aspect ** (-0.58e0) * m_fuel_amu**0.19e0 ) @@ -7448,7 +7448,7 @@ def pcond( * dnla19**0.44e0 * powerht ** (-0.73e0) * rmajor**1.97e0 - * physics_variables.kappaa_ipb**0.78e0 + * physics_variables.kappa_ipb**0.78e0 * aspect ** (-0.58e0) * m_fuel_amu**0.19e0 ) @@ -7471,7 +7471,7 @@ def pcond( * dnla19**0.44e0 * powerht ** (-0.73e0) * rmajor**1.97e0 - * physics_variables.kappaa_ipb**0.78e0 + * physics_variables.kappa_ipb**0.78e0 * aspect ** (-0.58e0) * m_fuel_amu**0.19e0 ) @@ -7525,7 +7525,7 @@ def pcond( * powerht ** (-0.669) * rmajor**1.71 * (1 + physics_variables.triang) ** 0.36 - * physics_variables.kappaa_ipb**0.8 + * physics_variables.kappa_ipb**0.8 * eps**0.35 * physics_variables.m_ions_total_amu**0.2 ) diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 0d0b5dda57..3bd86a1f03 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -581,7 +581,7 @@ module physics_variables real(dp) :: kappaa !! plasma elongation calculated as a_plasma_poloidal/(pi.a^2) - real(dp) :: kappaa_IPB + real(dp) :: kappa_ipb !! Volume measure of plasma elongation real(dp) :: ne0 @@ -1061,7 +1061,7 @@ subroutine init_physics_variables kappa = 1.792D0 kappa95 = 1.6D0 kappaa = 0.0D0 - kappaa_IPB = 0.d0 + kappa_ipb = 0.d0 ne0 = 0.0D0 ni0 = 0.0D0 m_s_limit = 0.3D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index a44d3af3c4..407c49db26 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -499,7 +499,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 584a1512a6..773f4f0622 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -500,7 +500,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 970ccfed4f..da95474ed3 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -500,7 +500,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 65640ff111..cfb81eb116 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -500,7 +500,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3585E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 401adbc45b..3c84689d3f 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -497,7 +497,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9482E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7112E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5011E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3534E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 9ddb3ab010..46ce7f3c62 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -502,7 +502,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4772E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9629E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.8476E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8020E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3405E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -1665,7 +1665,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6299E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0016E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7709E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8701E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3345E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -2828,7 +2828,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7864E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0417E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6995E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9230E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3268E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -3991,7 +3991,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8030E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0515E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6373E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9186E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3194E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -5154,7 +5154,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6562E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0113E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7056E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8754E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3316E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -6317,7 +6317,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5083E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9729E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7718E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8065E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3384E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -7480,7 +7480,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5242E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9822E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7090E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8016E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3314E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -8643,7 +8643,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6667E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0212E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6394E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8608E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3207E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -9806,7 +9806,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8077E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0617E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5690E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9150E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3051E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -10969,7 +10969,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8348E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0713E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5115E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9148E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3029E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -12132,7 +12132,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6972E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0306E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5818E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8616E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3208E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -13295,7 +13295,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5548E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9915E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6496E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8033E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3319E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -14458,7 +14458,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5780E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0007E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5910E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8020E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3288E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -15621,7 +15621,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7314E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0398E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5257E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.8639E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3227E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -16784,7 +16784,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8950E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0806E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.4604E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9259E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3165E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 19680aa519..23c4dd9ab0 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -357,7 +357,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -1352,7 +1352,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -2347,7 +2347,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -3342,7 +3342,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -4337,7 +4337,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -5332,7 +5332,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -6327,7 +6327,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -7322,7 +7322,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 @@ -8317,7 +8317,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6812E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6812E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.9243E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.9934E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index e47af581c1..48368275e4 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2890,7 +2890,7 @@ "kappa0": 2390.0, "kappa95": 1.6, "kappaa": 0.0, - "kappaa_IPB": 0.0, + "kappa_ipb": 0.0, "keV_": "1000*e_", "kh2o": 0.651, "ki": null, @@ -9954,7 +9954,7 @@ "kappa0": "", "kappa95": "plasma elongation at 95% surface (calculated if `i_plasma_geometry = 0-3, 6, or 8-10`)", "kappaa": "plasma elongation calculated as a_plasma_poloidal/(pi.a^2)", - "kappaa_IPB": "Volume measure of plasma elongation", + "kappa_ipb": "Volume measure of plasma elongation", "keV_": "", "kh2o": "thermal conductivity of water (W/m/K)", "ki": "", @@ -19169,7 +19169,7 @@ "kappa", "kappa95", "kappaa", - "kappaa_IPB", + "kappa_ipb", "ne0", "ni0", "m_s_limit", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 5c42834a74..ca1f8e51bd 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -497,7 +497,7 @@ Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9482E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7112E-03 OP - Volume_measure_of_elongation____________________________________________ (kappaa_IPB)__________________ 1.6815E+00 OP + Volume_measure_of_elongation____________________________________________ (kappa_ipb)__________________ 1.6815E+00 OP Total_volt-second_requirement_(Wb)______________________________________ (vsstt)_______________________ 5.5011E+02 OP Inductive_volt-seconds_(Wb)_____________________________________________ (vsind)_______________________ 2.3534E+02 OP Ejima_coefficient_______________________________________________________ (gamma)_______________________ 3.0000E-01 diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index ba6b3e4369..a620a14718 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2164,7 +2164,7 @@ class PcondParam(NamedTuple): pden_plasma_rad_mw: Any = None - kappaa_ipb: Any = None + kappa_ipb: Any = None p_plasma_ohmic_mw: Any = None @@ -2250,7 +2250,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2294,7 +2294,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2338,7 +2338,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2382,7 +2382,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2426,7 +2426,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2470,7 +2470,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2514,7 +2514,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2558,7 +2558,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2602,7 +2602,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2646,7 +2646,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2690,7 +2690,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2734,7 +2734,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2778,7 +2778,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2822,7 +2822,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2866,7 +2866,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2910,7 +2910,7 @@ class PcondParam(NamedTuple): i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, - kappaa_ipb=1.68145080681586, + kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, iinvqd=1, @@ -2973,7 +2973,7 @@ def test_pcond(pcondparam, monkeypatch, physics): physics_variables, "pden_plasma_rad_mw", pcondparam.pden_plasma_rad_mw ) - monkeypatch.setattr(physics_variables, "kappaa_ipb", pcondparam.kappaa_ipb) + monkeypatch.setattr(physics_variables, "kappa_ipb", pcondparam.kappa_ipb) monkeypatch.setattr( physics_variables, "p_plasma_ohmic_mw", pcondparam.p_plasma_ohmic_mw @@ -3012,7 +3012,7 @@ def test_pcond(pcondparam, monkeypatch, physics): zeff=pcondparam.zeff, ) - assert physics_variables.kappaa_ipb == pytest.approx(pcondparam.expected_kappaa_ipb) + assert physics_variables.kappa_ipb == pytest.approx(pcondparam.expected_kappaa_ipb) assert kappaa == pytest.approx(pcondparam.expected_kappaa) From 7ce5818f6ece782db022fe9960e3f5d19d1838ea Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 09:49:18 +0000 Subject: [PATCH 034/106] :memo: Add more information about the kappa_ipb change --- process/confinement_time.py | 40 +++++++++++++++------------- process/physics.py | 11 ++++++-- source/fortran/physics_variables.f90 | 2 +- tests/integration/ref_dicts.json | 2 +- 4 files changed, 33 insertions(+), 22 deletions(-) diff --git a/process/confinement_time.py b/process/confinement_time.py index ff32cf1963..fbc88e7d32 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1067,28 +1067,32 @@ def iter_ipb98y_confinement_time( afuel: float, ) -> float: """ - Calculate the IPB98(y) ELMy H-mode scaling confinement time + Calculate the IPB98(y) ELMy H-mode scaling confinement time - Parameters: - pcur (float): Plasma current [MA] - bt (float): Toroidal magnetic field [T] - dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] - rmajor (float): Plasma major radius [m] - kappa (float): Plasma separatrix elongation - aspect (float): Aspect ratio - afuel (float): Fuel atomic mass number + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa (float): Plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number - Returns: - float: IPB98(y) ELMy H-mode confinement time [s] + Returns: + float: IPB98(y) ELMy H-mode confinement time [s] - Notes: - - Unlike the other IPB98 scaling laws, the IPB98(y) scaling law uses the true separatrix elongation. + Notes: + - Unlike the other IPB98 scaling laws, the IPB98(y) scaling law uses the true separatrix elongation. + - See correction paper below for more information + + References: + - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” + Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + + - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” + Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. - References: - - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” - Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. - ‌ """ return ( 0.0365e0 diff --git a/process/physics.py b/process/physics.py index 245157965e..880a68414c 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6731,8 +6731,15 @@ def pcond( kappaa = a_plasma_poloidal / (np.pi * rminor * rminor) # Separatrix kappa defined with plasma volume for IPB scalings - physics_variables.kappa_ipb = vol_plasma / ( - 2.0e0 * np.pi**2 * rminor * rminor * rmajor + # Updated version of kappa used by the IPB98 scalings correction in: + + # None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, + # “Corrections to a sequence of papers in Nuclear Fusion,” Nuclear Fusion, + # vol. 48, no. 9, pp. 099801–099801, Aug. 2008, + # doi: https://doi.org/10.1088/0029-5515/48/9/099801. + + physics_variables.kappa_ipb = vol_(plasma / (2.0 * np.pi * rmajor)) / ( + np.pi * rminor**2 ) # Calculate Neo-Alcator confinement time (used in several scalings) diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 3bd86a1f03..fe489eed97 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -582,7 +582,7 @@ module physics_variables !! plasma elongation calculated as a_plasma_poloidal/(pi.a^2) real(dp) :: kappa_ipb - !! Volume measure of plasma elongation + !! Separatrix elongation calculated for IPB scalings real(dp) :: ne0 !! central electron density (/m3) diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 48368275e4..41b631b88f 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -9954,7 +9954,7 @@ "kappa0": "", "kappa95": "plasma elongation at 95% surface (calculated if `i_plasma_geometry = 0-3, 6, or 8-10`)", "kappaa": "plasma elongation calculated as a_plasma_poloidal/(pi.a^2)", - "kappa_ipb": "Volume measure of plasma elongation", + "kappa_ipb": "Separatrix elongation calculated for IPB scalings", "keV_": "", "kh2o": "thermal conductivity of water (W/m/K)", "ki": "", From 04fc95476614a9c1ac9ea553274a56dc263db9c3 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 09:55:17 +0000 Subject: [PATCH 035/106] =?UTF-8?q?=E2=9C=A8=20Add=20IPB98(y,1)=20ELMy=20H?= =?UTF-8?q?-mode=20scaling=20confinement=20time=20calculation=20and=20upda?= =?UTF-8?q?te=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 11 ++++ process/confinement_time.py | 50 +++++++++++++++++++ process/physics.py | 25 ++++------ 3 files changed, 72 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index ec37247c61..5ffa52d7a5 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -336,6 +336,17 @@ $$ ------------------------- + +### 33: IPB98(y,1) ELMy H-mode scaling + +Is selected with `i_confinement_time = 33` + +$$ +\tau_{\text{E}} = 0.0503 I^{0.91} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.44} P^{-0.65} R^{2.05} \kappa_{\text{IPB}}^{0.72} \epsilon^{0.57} M^{0.13} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index fbc88e7d32..54d587c48a 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1107,5 +1107,55 @@ def iter_ipb98y_confinement_time( ) +def iter_ipb98y1_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa_ipb: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the IPB98(y,1) ELMy H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB sprcific plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: IPB98(y,1) ELMy H-mode confinement time [s] + + Notes: + - See correction paper below for more information about the re-definition of the elongation used. + + References: + - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” + Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + + - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” + Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + + """ + return ( + 0.0503e0 + * pcur**0.91e0 + * bt**0.15e0 + * dnla19**0.44e0 + * powerht ** (-0.65e0) + * rmajor**2.05e0 + * kappa_ipb**0.72e0 + * aspect ** (-0.57e0) + * afuel**0.13e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 880a68414c..8e2ebf3b8f 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7177,20 +7177,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 33: # IPB98(y,1), ELMy H-mode scaling - # Data selection : full ITERH.DB3 - # Nuclear Fusion 39 (1999) 2175, Table 5 - tauee = ( - hfact - * 0.0503e0 - * pcur**0.91e0 - * bt**0.15e0 - * dnla19**0.44e0 - * powerht ** (-0.65e0) - * rmajor**2.05e0 - * physics_variables.kappa_ipb**0.72e0 - * aspect ** (-0.57e0) - * m_fuel_amu**0.13e0 + # IPB98(y,1), ELMy H-mode scaling + elif i_confinement_time == 33: + tauee = hfact * confinement.iter_ipb98y1_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, ) # ========================================================================== From c599e391b020c453148ef523a304fe99248c7a09 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 10:00:42 +0000 Subject: [PATCH 036/106] =?UTF-8?q?=E2=9C=A8=20Add=20IPB98(y,2)=20ELMy=20H?= =?UTF-8?q?-mode=20scaling=20confinement=20time=20calculation=20and=20upda?= =?UTF-8?q?te=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 49 +++++++++++++++++++ process/physics.py | 25 +++++----- 3 files changed, 70 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 5ffa52d7a5..697aa67f6c 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -347,6 +347,16 @@ $$ ------------------------- +### 34: IPB98(y,2) ELMy H-mode scaling + +Is selected with `i_confinement_time = 34` + +$$ +\tau_{\text{E}} = 0.0562 I^{0.93} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.41} P^{-0.69} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 54d587c48a..0d306ff021 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1157,5 +1157,54 @@ def iter_ipb98y1_confinement_time( ) +def iter_ipb98y2_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa_ipb: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the IPB98(y,2) ELMy H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB specific plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: IPB98(y,2) ELMy H-mode confinement time [s] + + Notes: + - See correction paper below for more information about the re-definition of the elongation used. + + References: + - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” + Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + + - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” + Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + """ + return ( + 0.0562e0 + * pcur**0.93e0 + * bt**0.15e0 + * dnla19**0.41e0 + * powerht ** (-0.69e0) + * rmajor**1.97e0 + * kappa_ipb**0.78e0 + * aspect ** (-0.58e0) + * afuel**0.19e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 8e2ebf3b8f..267fed9a26 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7192,20 +7192,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 34: # IPB98(y,2), ELMy H-mode scaling - # Data selection : ITERH.DB3, NBI only - # Nuclear Fusion 39 (1999) 2175, Table 5 - tauee = ( - hfact - * 0.0562e0 - * pcur**0.93e0 - * bt**0.15e0 - * dnla19**0.41e0 - * powerht ** (-0.69e0) - * rmajor**1.97e0 - * physics_variables.kappa_ipb**0.78e0 - * aspect ** (-0.58e0) - * m_fuel_amu**0.19e0 + # IPB98(y,2), ELMy H-mode scaling + elif i_confinement_time == 34: + tauee = hfact * confinement.iter_ipb98y2_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, ) # ========================================================================== From 1288b18c1337ae2cd879db90947a2b947c06a2c9 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 10:05:50 +0000 Subject: [PATCH 037/106] =?UTF-8?q?=E2=9C=A8=20Add=20IPB98(y,3)=20ELMy=20H?= =?UTF-8?q?-mode=20scaling=20confinement=20time=20calculation=20and=20upda?= =?UTF-8?q?te=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 49 +++++++++++++++++++ process/physics.py | 25 +++++----- 3 files changed, 70 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 697aa67f6c..d155fc3967 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -357,6 +357,16 @@ $$ ------------------------- +### 35: IPB98(y,3) ELMy H-mode scaling + +Is selected with `i_confinement_time = 35` + +$$ +\tau_{\text{E}} = 0.0564 I^{0.88} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.4} P^{-0.69} R^{2.15} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.64} M^{0.2} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 0d306ff021..c185411f66 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1206,5 +1206,54 @@ def iter_ipb98y2_confinement_time( ) +def iter_ipb98y3_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa_ipb: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the IPB98(y,3) ELMy H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB specific plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: IPB98(y,3) ELMy H-mode confinement time [s] + + Notes: + - See correction paper below for more information about the re-definition of the elongation used. + + References: + - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” + Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + + - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” + Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + """ + return ( + 0.0564e0 + * pcur**0.88e0 + * bt**0.07e0 + * dnla19**0.40e0 + * powerht ** (-0.69e0) + * rmajor**2.15e0 + * kappa_ipb**0.78e0 + * aspect ** (-0.64e0) + * afuel**0.20e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 267fed9a26..dc20eb7525 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7207,20 +7207,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 35: # IPB98(y,3), ELMy H-mode scaling - # Data selection : ITERH.DB3, NBI only, no C-Mod - # Nuclear Fusion 39 (1999) 2175, Table 5 - tauee = ( - hfact - * 0.0564e0 - * pcur**0.88e0 - * bt**0.07e0 - * dnla19**0.40e0 - * powerht ** (-0.69e0) - * rmajor**2.15e0 - * physics_variables.kappa_ipb**0.78e0 - * aspect ** (-0.64e0) - * m_fuel_amu**0.20e0 + # IPB98(y,3), ELMy H-mode scaling + elif i_confinement_time == 35: + tauee = hfact * confinement.iter_ipb98y3_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, ) # ========================================================================== From 480193f55ad12caaa83b6506d79642078187dcd6 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 10:11:40 +0000 Subject: [PATCH 038/106] =?UTF-8?q?=E2=9C=A8=20Add=20IPB98(y,4)=20ELMy=20H?= =?UTF-8?q?-mode=20scaling=20confinement=20time=20calculation=20and=20upda?= =?UTF-8?q?te=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 49 +++++++++++++++++++ process/physics.py | 25 +++++----- 3 files changed, 70 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index d155fc3967..10660263a3 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -367,6 +367,16 @@ $$ ------------------------- +### 36: IPB98(y,4) ELMy H-mode scaling + +Is selected with `i_confinement_time = 36` + +$$ +\tau_{\text{E}} = 0.0587 I^{0.85} B_{\text{T}}^{0.29} \overline{n}_{19}^{0.39} P^{-0.7} R^{2.08} \kappa_{\text{IPB}}^{0.76} \epsilon^{0.69} M^{0.17} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index c185411f66..adf45febff 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1255,5 +1255,54 @@ def iter_ipb98y3_confinement_time( ) +def iter_ipb98y4_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa_ipb: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the IPB98(y,4) ELMy H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB specific plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: IPB98(y,4) ELMy H-mode confinement time [s] + + Notes: + - See correction paper below for more information about the re-definition of the elongation used. + + References: + - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” + Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + + - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” + Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + """ + return ( + 0.0587e0 + * pcur**0.85e0 + * bt**0.29e0 + * dnla19**0.39e0 + * powerht ** (-0.70e0) + * rmajor**2.08e0 + * kappa_ipb**0.76e0 + * aspect ** (-0.69e0) + * afuel**0.17e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index dc20eb7525..328645a181 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7222,20 +7222,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 36: # IPB98(y,4), ELMy H-mode scaling - # Data selection : ITERH.DB3, NBI only, ITER like devices - # Nuclear Fusion 39 (1999) 2175, Table 5 - tauee = ( - hfact - * 0.0587e0 - * pcur**0.85e0 - * bt**0.29e0 - * dnla19**0.39e0 - * powerht ** (-0.70e0) - * rmajor**2.08e0 - * physics_variables.kappa_ipb**0.76e0 - * aspect ** (-0.69e0) - * m_fuel_amu**0.17e0 + # IPB98(y,4), ELMy H-mode scaling + elif i_confinement_time == 36: + tauee = hfact * confinement.iter_ipb98y4_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, ) # ========================================================================== From ad50367e7c68eb1c9d900be525014453e39cc3b5 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 10:22:46 +0000 Subject: [PATCH 039/106] =?UTF-8?q?=E2=9C=A8=20Add=20ISS95=20stellarator?= =?UTF-8?q?=20scaling=20confinement=20time=20calculation=20and=20update=20?= =?UTF-8?q?documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 11 +++++ process/confinement_time.py | 40 +++++++++++++++++++ process/physics.py | 21 +++++----- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 10660263a3..c93e3a45b0 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -377,6 +377,17 @@ $$ ------------------------- + +### 37: ISS95 stellarator scaling + +Is selected with `i_confinement_time = 37` + +$$ +\tau_{\text{E}} = 0.079 a^{2.21} R^{0.65} P^{-0.59} \overline{n}_{19}^{0.51} B_{\text{T}}^{0.83} \iota_{2/3}^{0.4} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index adf45febff..5acb93b17e 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1304,5 +1304,45 @@ def iter_ipb98y4_confinement_time( ) +def iss95_stellarator_confinement_time( + rminor: float, + rmajor: float, + dnla19: float, + bt: float, + powerht: float, + iotabar: float, +) -> float: + """ + Calculate the ISS95 stellarator scaling confinement time + + Parameters: + rminor (float): Plasma minor radius [m] + rmajor (float): Plasma major radius [m] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + iotabar (float): Rotational transform + + Returns: + float: ISS95 stellarator confinement time [s] + + Notes: + + References: + - U. Stroth et al., “Energy confinement scaling from the international stellarator database,” + vol. 36, no. 8, pp. 1063–1077, Aug. 1996, doi: https://doi.org/10.1088/0029-5515/36/8/i11. + ‌ + """ + return ( + 0.079e0 + * rminor**2.21e0 + * rmajor**0.65e0 + * dnla19**0.51e0 + * bt**0.83e0 + * powerht ** (-0.59e0) + * iotabar**0.4e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 328645a181..e9b90f3ff0 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7237,19 +7237,16 @@ def pcond( # ========================================================================== - elif i_confinement_time == 37: # ISS95 stellarator scaling - # U. Stroth et al., Nuclear Fusion, 36, p.1063 (1996) - # Assumes kappa = 1.0, triang = 0.0 + # ISS95 stellarator scaling + elif i_confinement_time == 37: iotabar = q # dummy argument q is actual argument iotabar for stellarators - tauee = ( - hfact - * 0.079e0 - * rminor**2.21e0 - * rmajor**0.65e0 - * dnla19**0.51e0 - * bt**0.83e0 - * powerht ** (-0.59e0) - * iotabar**0.4e0 + tauee = hfact * confinement.iss95_stellarator_confinement_time( + rminor, + rmajor, + dnla19, + bt, + powerht, + iotabar, ) # ========================================================================== From 8df5886a73ddd24b819bdcef607b17691be1c4b4 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 10:26:39 +0000 Subject: [PATCH 040/106] =?UTF-8?q?=E2=9C=A8=20Add=20ISS04=20stellarator?= =?UTF-8?q?=20scaling=20confinement=20time=20calculation=20and=20update=20?= =?UTF-8?q?documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 11 +++++ process/confinement_time.py | 40 +++++++++++++++++++ process/physics.py | 21 +++++----- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index c93e3a45b0..96dc406e64 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -388,6 +388,17 @@ $$ ------------------------- + +### 38: ISS04 stellarator scaling + +Is selected with `i_confinement_time = 38` + +$$ +\tau_{\text{E}} = 0.134 a^{2.28} R^{0.64} P^{-0.61} \overline{n}_{19}^{0.54} B_{\text{T}}^{0.84} \iota_{2/3}^{0.41} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 5acb93b17e..87031a6f1e 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1344,5 +1344,45 @@ def iss95_stellarator_confinement_time( ) +def iss04_stellarator_confinement_time( + rminor: float, + rmajor: float, + dnla19: float, + bt: float, + powerht: float, + iotabar: float, +) -> float: + """ + Calculate the ISS04 stellarator scaling confinement time + + Parameters: + rminor (float): Plasma minor radius [m] + rmajor (float): Plasma major radius [m] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + iotabar (float): Rotational transform + + Returns: + float: ISS04 stellarator confinement time [s] + + Notes: + + References: + - H. Yamada et al., “Characterization of energy confinement in net-current free plasmas using the extended International Stellarator Database,” + vol. 45, no. 12, pp. 1684–1693, Nov. 2005, doi: https://doi.org/10.1088/0029-5515/45/12/024. + ‌ + """ + return ( + 0.134e0 + * rminor**2.28e0 + * rmajor**0.64e0 + * dnla19**0.54e0 + * bt**0.84e0 + * powerht ** (-0.61e0) + * iotabar**0.41e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index e9b90f3ff0..3296079e85 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7251,19 +7251,16 @@ def pcond( # ========================================================================== - elif i_confinement_time == 38: # ISS04 stellarator scaling - # H. Yamada et al., Nuclear Fusion, 45, p.1684 (2005) - # Assumes kappa = 1.0, triang = 0.0 + # ISS04 stellarator scaling + elif i_confinement_time == 38: iotabar = q # dummy argument q is actual argument iotabar for stellarators - tauee = ( - hfact - * 0.134e0 - * rminor**2.28e0 - * rmajor**0.64e0 - * dnla19**0.54e0 - * bt**0.84e0 - * powerht ** (-0.61e0) - * iotabar**0.41e0 + tauee = hfact * confinement.iss04_stellarator_confinement_time( + rminor, + rmajor, + dnla19, + bt, + powerht, + iotabar, ) # ========================================================================== From 87d8c7b8c3af1d458e5d24792b8bee29631f288d Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 10:34:47 +0000 Subject: [PATCH 041/106] =?UTF-8?q?=E2=9C=A8=20Add=20DS03=20beta-independe?= =?UTF-8?q?nt=20H-mode=20scaling=20confinement=20time=20calculation=20and?= =?UTF-8?q?=20update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 47 +++++++++++++++++++ process/physics.py | 25 +++++----- 3 files changed, 68 insertions(+), 14 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 96dc406e64..303b8da7d3 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -399,6 +399,16 @@ $$ ------------------------- +### 39: DS03 beta-independent H-mode scaling + +Is selected with `i_confinement_time = 39` + +$$ +\tau_{\text{E}} = 0.028 I^{0.83} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.49} P^{-0.55} R^{2.11} \kappa_{95}^{0.75} \epsilon^{0.3} M^{0.14} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 87031a6f1e..22b9681205 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1384,5 +1384,52 @@ def iss04_stellarator_confinement_time( ) +def ds03_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa95: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the DS03 beta-independent H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa95 (float): Plasma elongation at 95% flux surface + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: DS03 beta-independent H-mode confinement time [s] + + Notes: + + References: + - T. C. Luce, C. C. Petty, and J. G. Cordey, “Application of dimensionless parameter scaling techniques to the design and interpretation of magnetic fusion experiments,” + Plasma Physics and Controlled Fusion, vol. 50, no. 4, p. 043001, Mar. 2008, + doi: https://doi.org/10.1088/0741-3335/50/4/043001. + ‌ + """ + return ( + 0.028e0 + * pcur**0.83e0 + * bt**0.07e0 + * dnla19**0.49e0 + * powerht ** (-0.55e0) + * rmajor**2.11e0 + * kappa95**0.75e0 + * aspect ** (-0.3e0) + * afuel**0.14e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 3296079e85..405058a593 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7265,20 +7265,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 39: # DS03 beta-independent H-mode scaling - # T. C. Luce, C. C. Petty and J. G. Cordey, - # Plasma Phys. Control. Fusion 50 (2008) 043001, eqn.4.13, p.67 - tauee = ( - hfact - * 0.028e0 - * pcur**0.83e0 - * bt**0.07e0 - * dnla19**0.49e0 - * powerht ** (-0.55e0) - * rmajor**2.11e0 - * kappa95**0.75e0 - * aspect ** (-0.3e0) - * m_fuel_amu**0.14e0 + # DS03 beta-independent H-mode scaling + elif i_confinement_time == 39: + tauee = hfact * confinement.ds03_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa95, + aspect, + afuel, ) # ========================================================================== From 6cc3aac4bd626c990cd22a255a2030ee189cd2fe Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 10:54:38 +0000 Subject: [PATCH 042/106] =?UTF-8?q?=E2=9C=A8=20Add=20Murari=20"Non-power?= =?UTF-8?q?=20law"=20H-mode=20scaling=20confinement=20time=20calculation?= =?UTF-8?q?=20and=20update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 11 +++++ process/confinement_time.py | 43 +++++++++++++++++++ process/physics.py | 27 ++++-------- tests/unit/test_physics.py | 10 ++--- 4 files changed, 68 insertions(+), 23 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 303b8da7d3..8dc5826f72 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -409,6 +409,17 @@ $$ ------------------------- +### 40: Murari "Non-power law" H-mode scaling + +Is selected with `i_confinement_time = 40` + +$$ +\tau_{\text{E}} = 0.0367 I^{1.006} R^{1.731} \kappa_{\text{IPB}}^{1.45} P^{-0.735} \\ +\times \frac{\overline{n}_{19}^{0.49}}{1+e^\left({-9.403\left(\frac{\overline{n}_{19}^{0.49}}{B_{\text{T}}}\right)^{-1.365}}\right)} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 22b9681205..3b38158938 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1431,5 +1431,48 @@ def ds03_confinement_time( ) +def murari_confinement_time( + pcur: float, + rmajor: float, + kappa_ipb: float, + dnla19: float, + bt: float, + powerht: float, +) -> float: + """ + Calculate the Murari H-mode energy confinement scaling time + + Parameters: + pcur (float): Plasma current [MA] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB specific plasma separatrix elongation + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + + Returns: + float: Murari confinement time [s] + + Notes: + - This scaling uses the IPB defintiion of elongation, see reference for more information. + + References: + - A. Murari, E. Peluso, Michela Gelfusa, I. Lupelli, and P. Gaudio, “A new approach to the formulation and validation of scaling expressions for plasma confinement in tokamaks,” + Nuclear Fusion, vol. 55, no. 7, pp. 073009–073009, Jun. 2015, doi: https://doi.org/10.1088/0029-5515/55/7/073009. + + - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” + Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + ‌ + """ + return ( + 0.0367 + * pcur**1.006 + * rmajor**1.731 + * kappa_ipb**1.450 + * powerht ** (-0.735) + * (dnla19**0.448 / (1.0 + np.exp(-9.403 * (dnla19 / bt) ** -1.365))) + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 405058a593..bb61cdd277 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7280,24 +7280,15 @@ def pcond( # ========================================================================== - elif ( - i_confinement_time == 40 - ): # "Non-power law" (NPL) Murari energy confinement scaling - # Based on the ITPA database of H-mode discharges - # A new approach to the formulation and validation of scaling expressions for plasma confinement in tokamaks - # A. Murari et al 2015 Nucl. Fusion 55 073009, doi:10.1088/0029-5515/55/7/073009 - # Table 4. (Issue #311) - # Note that aspect ratio and M (m_fuel_amu) do not appear, and B (bt) only - # appears in the "saturation factor" h. - h = dnla19**0.448e0 / (1.0e0 + np.exp(-9.403e0 * (bt / dnla19) ** 1.365e0)) - tauee = ( - hfact - * 0.0367e0 - * pcur**1.006e0 - * rmajor**1.731e0 - * kappaa**1.450e0 - * powerht ** (-0.735e0) - * h + # Murari "Non-power law" scaling + elif i_confinement_time == 40: + tauee = hfact * confinement.murari_confinement_time( + pcur, + rmajor, + physics_variables.kappa_ipb, + dnla19, + bt, + powerht, ) # ========================================================================== diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index a620a14718..4fe8acf00a 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2635,11 +2635,11 @@ class PcondParam(NamedTuple): zeff=2.4987360098030775, expected_kappaa_ipb=1.68145080681586, expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081359821043062386, - expected_ptripv=0.072209244483967094, - expected_tauee=3.2718670722507683, - expected_tauei=3.2718670722507683, - expected_taueff=3.2718670722507692, + expected_ptrepv=0.08399287091443618, + expected_ptripv=0.07454615402313478, + expected_tauee=3.169298972363837, + expected_tauei=3.169298972363837, + expected_taueff=3.169298972363837, expected_powerht=290.18368660937881, ), PcondParam( From 7e2db2346ccaa58b1701d47f489effb87e7b5adf Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 11:21:36 +0000 Subject: [PATCH 043/106] =?UTF-8?q?=E2=9C=A8=20Add=20Petty=20H-mode=20scal?= =?UTF-8?q?ing=20confinement=20time=20calculation=20and=20update=20documen?= =?UTF-8?q?tation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 47 +++++++++++++++++++ process/physics.py | 25 ++++------ tests/unit/test_physics.py | 10 ++-- 4 files changed, 72 insertions(+), 20 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 8dc5826f72..a88e93fad0 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -420,6 +420,16 @@ $$ ------------------------- +### 41: Petty H-mode scaling + +Is selected with `i_confinement_time = 41` + +$$ +\tau_{\text{E}} = 0.052 I^{0.75} B_{\text{T}}^{0.3} \overline{n}_{19}^{0.32} P^{-0.47} R^{2.09} \kappa_{\text{IPB}}^{0.88} \epsilon^{0.84} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 3b38158938..8008edc7ea 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1474,5 +1474,52 @@ def murari_confinement_time( ) +def petty_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa_ipb: float, + aspect: float, +) -> float: + """ + Calculate the beta independent dimensionless Petty confinement scaling time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB specific plasma separatrix elongation + aspect (float): Aspect ratio + + Returns: + float: Petty confinement time [s] + + Notes: + - This scaling uses the IPB defintiion of elongation, see reference for more information. + + References: + - C. C. Petty, “Sizing up plasmas using dimensionless parameters,” + Physics of Plasmas, vol. 15, no. 8, Aug. 2008, doi: https://doi.org/10.1063/1.2961043. + + - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” + Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + ‌ + """ + return ( + 0.052e0 + * pcur**0.75e0 + * bt**0.3e0 + * dnla19**0.32e0 + * powerht ** (-0.47e0) + * rmajor**2.09e0 + * kappa_ipb**0.88e0 + * aspect ** (-0.84e0) + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index bb61cdd277..9e6b71f0c8 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7293,21 +7293,16 @@ def pcond( # ========================================================================== - elif ( - i_confinement_time == 41 - ): # Beta independent dimensionless confinement scaling - # C.C. Petty 2008 Phys. Plasmas 15, 080501, equation 36 - # Note that there is no dependence on the average fuel mass 'm_fuel_amu' - tauee = ( - hfact - * 0.052e0 - * pcur**0.75e0 - * bt**0.3e0 - * dnla19**0.32e0 - * powerht ** (-0.47e0) - * rmajor**2.09e0 - * kappaa**0.88e0 - * aspect ** (-0.84e0) + # Petty, beta independent dimensionless scaling + elif i_confinement_time == 41: + tauee = hfact * confinement.petty_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, ) # ========================================================================== diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 4fe8acf00a..53277bd9da 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2679,11 +2679,11 @@ class PcondParam(NamedTuple): zeff=2.4987360098030775, expected_kappaa_ipb=1.68145080681586, expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081513009259203975, - expected_ptripv=0.072345203550858064, - expected_tauee=3.2657182196344126, - expected_tauei=3.2657182196344126, - expected_taueff=3.2657182196344126, + expected_ptrepv=0.0831039731066564, + expected_ptripv=0.07375723096135396, + expected_tauee=3.203198469625145, + expected_tauei=3.203198469625145, + expected_taueff=3.203198469625145, expected_powerht=290.18368660937881, ), PcondParam( From 18fabb74a48bf727bd8a061f1cd4036ce0ce1636 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 13:17:00 +0000 Subject: [PATCH 044/106] =?UTF-8?q?=E2=9C=A8=20Add=20Hubbard=20I-mode=20no?= =?UTF-8?q?minal=20scaling=20confinement=20time=20calculation=20and=20upda?= =?UTF-8?q?te=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++++ process/confinement_time.py | 28 +++++++++++++++++++ process/physics.py | 17 +++++------ 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index a88e93fad0..3509944ce9 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -430,6 +430,16 @@ $$ ------------------------- +### 43: Hubbard I-mode nominal scaling + +Is selected with `i_confinement_time = 43` + +$$ +\tau_{\text{E}} = 0.014 I^{0.68} B_{\text{T}}^{0.77} \overline{n}_{20}^{0.02} P^{-0.29} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 8008edc7ea..c0b0527da8 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1521,5 +1521,33 @@ def petty_confinement_time( ) +def hubbard_nominal_confinement_time( + pcur: float, + bt: float, + dnla20: float, + powerht: float, +) -> float: + """ + Calculate the Hubbard 2017 I-mode confinement time scaling - nominal + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + powerht (float): Net Heating power [MW] + + Returns: + float: Hubbard confinement time [s] + + Notes: + + References: + - A. E. Hubbard et al., “Physics and performance of the I-mode regime over an expanded operating space on Alcator C-Mod,” + Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. + ‌ + """ + return 0.014e0 * pcur**0.68e0 * bt**0.77e0 * dnla20**0.02e0 * powerht ** (-0.29e0) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 9e6b71f0c8..6a052e0edc 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7332,16 +7332,13 @@ def pcond( # ========================================================================== - elif ( - i_confinement_time == 43 - ): # Hubbard et al. 2017 I-mode confinement time scaling - nominal - tauee = ( - hfact - * 0.014e0 - * (plasma_current / 1.0e6) ** 0.68e0 - * bt**0.77e0 - * dnla20**0.02e0 - * powerht ** (-0.29e0) + # Hubbard 2017 I-mode confinement time scaling - nominal + elif i_confinement_time == 43: + tauee = hfact * confinement.hubbard_nominal_confinement_time( + pcur, + bt, + dnla20, + powerht, ) # ========================================================================== From cd5b4e7e378b17a2f056a7117fce452dd91a9b8b Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 13:23:43 +0000 Subject: [PATCH 045/106] =?UTF-8?q?=E2=9C=A8=20Add=20Hubbard=20I-mode=20lo?= =?UTF-8?q?wer=20scaling=20confinement=20time=20calculation=20and=20update?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++++ process/confinement_time.py | 30 +++++++++++++++++++ process/physics.py | 17 +++++------ 3 files changed, 47 insertions(+), 10 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 3509944ce9..bb66448d0d 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -440,6 +440,16 @@ $$ ------------------------- +### 44: Hubbard I-mode lower scaling + +Is selected with `i_confinement_time = 44` + +$$ +\tau_{\text{E}} = 0.014 I^{0.6} B_{\text{T}}^{0.7} \overline{n}_{20}^{-0.03} P^{-0.33} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index c0b0527da8..201bedb08c 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1549,5 +1549,35 @@ def hubbard_nominal_confinement_time( return 0.014e0 * pcur**0.68e0 * bt**0.77e0 * dnla20**0.02e0 * powerht ** (-0.29e0) +def hubbard_lower_confinement_time( + pcur: float, + bt: float, + dnla20: float, + powerht: float, +) -> float: + """ + Calculate the Hubbard 2017 I-mode confinement time scaling - lower + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + powerht (float): Net Heating power [MW] + + Returns: + float: Hubbard confinement time [s] + + Notes: + + References: + - A. E. Hubbard et al., “Physics and performance of the I-mode regime over an expanded operating space on Alcator C-Mod,” + Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. + ‌ + """ + return ( + 0.014e0 * pcur**0.60e0 * bt**0.70e0 * dnla20 ** (-0.03e0) * powerht ** (-0.33e0) + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 6a052e0edc..f92adc5bd1 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7343,16 +7343,13 @@ def pcond( # ========================================================================== - elif ( - i_confinement_time == 44 - ): # Hubbard et al. 2017 I-mode confinement time scaling - lower - tauee = ( - hfact - * 0.014e0 - * (plasma_current / 1.0e6) ** 0.60e0 - * bt**0.70e0 - * dnla20 ** (-0.03e0) - * powerht ** (-0.33e0) + # Hubbard 2017 I-mode confinement time scaling - lower + elif i_confinement_time == 44: + tauee = hfact * confinement.hubbard_lower_confinement_time( + pcur, + bt, + dnla20, + powerht, ) # ========================================================================== From aead417a0032fcc8577c39bc607ea2f695389600 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 13:28:32 +0000 Subject: [PATCH 046/106] =?UTF-8?q?=E2=9C=A8=20Add=20Hubbard=20I-mode=20up?= =?UTF-8?q?per=20scaling=20confinement=20time=20calculation=20and=20update?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++++ process/confinement_time.py | 28 +++++++++++++++++++ process/physics.py | 17 +++++------ 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index bb66448d0d..479a1877b2 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -450,6 +450,16 @@ $$ ------------------------- +### 45: Hubbard I-mode upper scaling + +Is selected with `i_confinement_time = 45` + +$$ +\tau_{\text{E}} = 0.014 I^{0.76} B_{\text{T}}^{0.84} \overline{n}_{20}^{-0.07} P^{-0.25} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 201bedb08c..e7f7a2fda1 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1579,5 +1579,33 @@ def hubbard_lower_confinement_time( ) +def hubbard_upper_confinement_time( + pcur: float, + bt: float, + dnla20: float, + powerht: float, +) -> float: + """ + Calculate the Hubbard 2017 I-mode confinement time scaling - upper + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + powerht (float): Net Heating power [MW] + + Returns: + float: Hubbard confinement time [s] + + Notes: + + References: + - A. E. Hubbard et al., “Physics and performance of the I-mode regime over an expanded operating space on Alcator C-Mod,” + Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. + ‌ + """ + return 0.014e0 * pcur**0.76e0 * bt**0.84e0 * dnla20**0.07 * powerht ** (-0.25e0) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index f92adc5bd1..675a445f17 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7354,16 +7354,13 @@ def pcond( # ========================================================================== - elif ( - i_confinement_time == 45 - ): # Hubbard et al. 2017 I-mode confinement time scaling - upper - tauee = ( - hfact - * 0.014e0 - * (plasma_current / 1.0e6) ** 0.76e0 - * bt**0.84e0 - * dnla20**0.07 - * powerht ** (-0.25e0) + # Hubbard 2017 I-mode confinement time scaling - upper + elif i_confinement_time == 45: + tauee = hfact * confinement.hubbard_upper_confinement_time( + pcur, + bt, + dnla20, + powerht, ) # ========================================================================== From 50427d8ddcc52a0822cf8eac465f40e75a2c4114 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 15:32:44 +0000 Subject: [PATCH 047/106] =?UTF-8?q?=E2=9C=A8=20Add=20Menard=20NSTX=20H-mod?= =?UTF-8?q?e=20scaling=20confinement=20time=20calculation=20and=20update?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 12 +++++ process/confinement_time.py | 53 +++++++++++++++++++ process/physics.py | 26 ++++----- 3 files changed, 76 insertions(+), 15 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 479a1877b2..65a1504d71 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -460,6 +460,18 @@ $$ ------------------------- +------------------------- + +### 46: Menard NSTX H-mode scaling + +Is selected with `i_confinement_time = 46` + +$$ +\tau_{\text{E}} = 0.095 I^{0.75} B_{\text{T}}^{1.08} \overline{n}_{19}^{0.44} P^{-0.73} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index e7f7a2fda1..280c386fd9 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1607,5 +1607,58 @@ def hubbard_upper_confinement_time( return 0.014e0 * pcur**0.76e0 * bt**0.84e0 * dnla20**0.07 * powerht ** (-0.25e0) +def menard_nstx_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa_ipb: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the Menard NSTX ELMy H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB specific plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: Menard NSTX ELMy H-mode confinement time [s] + + Notes: + - "The leading NSTX confinement scaling coefficient is chosen such that the ITER and ST energy confinement times are + identical for a reference NSTX scenario" + - Assumes IPB98(y,2) exponents are applicable where the ST exponents are not yet determined, i.e. + the species mass, major radius, inverse aspect ratio and elongation. Hence here we use the IPB98(y,2) definition + of elongation. + + References: + - J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” + Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440–20170440, Feb. 2019, + doi: https://doi.org/10.1098/rsta.2017.0440. + ‌ + + """ + return ( + 0.095e0 + * pcur**0.57e0 + * bt**1.08e0 + * dnla19**0.44e0 + * powerht ** (-0.73e0) + * rmajor**1.97e0 + * kappa_ipb**0.78e0 + * aspect ** (-0.58e0) + * afuel**0.19e0 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 675a445f17..bbfd877a5f 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7365,21 +7365,17 @@ def pcond( # ========================================================================== - elif i_confinement_time == 46: # NSTX, ELMy H-mode scaling - # NSTX scaling with IPB98(y,2) for other variables - # Menard 2019, Phil. Trans. R. Soc. A 377:20170440 - # Kaye et al. 2006, Nucl. Fusion 46 848 - tauee = ( - hfact - * 0.095e0 - * pcur**0.57e0 - * bt**1.08e0 - * dnla19**0.44e0 - * powerht ** (-0.73e0) - * rmajor**1.97e0 - * physics_variables.kappa_ipb**0.78e0 - * aspect ** (-0.58e0) - * m_fuel_amu**0.19e0 + # Menard NSTX, ELMy H-mode scaling + elif i_confinement_time == 46: + tauee = hfact * confinement.menard_nstx_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, ) # ========================================================================== From f478d934b5cbceeb25e936cd79e4ab15f7fe2418 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 22 Jan 2025 16:15:29 +0000 Subject: [PATCH 048/106] =?UTF-8?q?=E2=9C=A8=20Add=20Menard=20NSTX-Petty08?= =?UTF-8?q?=20hybrid=20confinement=20time=20calculation=20and=20update=20P?= =?UTF-8?q?etty=20scaling=20references=20in=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 18 +++- process/confinement_time.py | 90 ++++++++++++++++++- process/physics.py | 75 +++------------- tests/unit/test_physics.py | 10 +-- 4 files changed, 122 insertions(+), 71 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 65a1504d71..d72314d0c9 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -420,7 +420,7 @@ $$ ------------------------- -### 41: Petty H-mode scaling +### 41: Petty08 H-mode scaling Is selected with `i_confinement_time = 41` @@ -460,7 +460,6 @@ $$ ------------------------- -------------------------- ### 46: Menard NSTX H-mode scaling @@ -472,6 +471,21 @@ $$ ------------------------- +### 47: Menard NSTX-Petty08 hybrid scaling + +Is selected with `i_confinement_time = 47` + +- If $\epsilon \le 0.4 \ (A \ge 2.5)$ apply the [Petty08 scaling](#41-petty-h-mode-scaling) +- If $\epsilon \ge 0.6 \ (A \le 1.7)$ apply the [Menard NSTX scaling](#46-menard-nstx-h-mode-scaling) + +Otherwise: + +$$ +\tau_{\text{E}} = \frac{\epsilon - 0.4}{0.2}\tau_{\text{E,NSTX}}+ \frac{0.6-\epsilon}{0.2}\tau_{\text{E,Petty08}} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 280c386fd9..016a67a736 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1474,7 +1474,7 @@ def murari_confinement_time( ) -def petty_confinement_time( +def petty08_confinement_time( pcur: float, bt: float, dnla19: float, @@ -1484,7 +1484,7 @@ def petty_confinement_time( aspect: float, ) -> float: """ - Calculate the beta independent dimensionless Petty confinement scaling time + Calculate the beta independent dimensionless Petty08 confinement time Parameters: pcur (float): Plasma current [MA] @@ -1496,7 +1496,7 @@ def petty_confinement_time( aspect (float): Aspect ratio Returns: - float: Petty confinement time [s] + float: Petty08 confinement time [s] Notes: - This scaling uses the IPB defintiion of elongation, see reference for more information. @@ -1660,5 +1660,89 @@ def menard_nstx_confinement_time( ) +def menard_nstx_petty08_hybrid_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa_ipb: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the Menard NSTX-Petty hybrid confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa_ipb (float): IPB specific plasma separatrix elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: Menard NSTX-Petty hybrid confinement time [s] + + Notes: + - Assuming a linear interpolation in (1/aspect) between the two scalings + + References: + - J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” + Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440–20170440, Feb. 2019, + doi: https://doi.org/10.1098/rsta.2017.0440. + ‌ + """ + # Equivalent to A > 2.5, use Petty scaling + if (1.0e0 / aspect) <= 0.4e0: + return petty08_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa_ipb, + aspect, + ) + + # Equivalent to A < 1.7, use NSTX scaling + elif (1.0e0 / aspect) >= 0.6e0: + return menard_nstx_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa_ipb, + aspect, + afuel, + ) + else: + return (((1.0e0 / aspect) - 0.4e0) / (0.6e0 - 0.4e0)) * ( + menard_nstx_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa_ipb, + aspect, + afuel, + ) + ) + ((0.6e0 - (1.0e0 / aspect)) / (0.6e0 - 0.4e0)) * ( + petty08_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa_ipb, + aspect, + ) + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index bbfd877a5f..e1fe352e8a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7293,9 +7293,9 @@ def pcond( # ========================================================================== - # Petty, beta independent dimensionless scaling + # Petty08, beta independent dimensionless scaling elif i_confinement_time == 41: - tauee = hfact * confinement.petty_confinement_time( + tauee = hfact * confinement.petty08_confinement_time( pcur, bt, dnla19, @@ -7380,65 +7380,18 @@ def pcond( # ========================================================================== - elif i_confinement_time == 47: # NSTX-Petty08 Hybrid - # Linear interpolation between NSTX and Petty08 in eps - # Menard 2019, Phil. Trans. R. Soc. A 377:20170440 - if (1.0e0 / aspect) <= 0.4e0: - # Petty08, i.e. case (41) - tauee = ( - hfact - * 0.052e0 - * pcur**0.75e0 - * bt**0.3e0 - * dnla19**0.32e0 - * powerht ** (-0.47e0) - * rmajor**2.09e0 - * kappaa**0.88e0 - * aspect ** (-0.84e0) - ) - - elif (1.0e0 / aspect) >= 0.6e0: - # NSTX, i.e.case (46) - tauee = ( - hfact - * 0.095e0 - * pcur**0.57e0 - * bt**1.08e0 - * dnla19**0.44e0 - * powerht ** (-0.73e0) - * rmajor**1.97e0 - * physics_variables.kappa_ipb**0.78e0 - * aspect ** (-0.58e0) - * m_fuel_amu**0.19e0 - ) - - else: - taupetty = ( - 0.052e0 - * pcur**0.75e0 - * bt**0.3e0 - * dnla19**0.32e0 - * powerht ** (-0.47e0) - * rmajor**2.09e0 - * kappaa**0.88e0 - * aspect ** (-0.84e0) - ) - taunstx = ( - 0.095e0 - * pcur**0.57e0 - * bt**1.08e0 - * dnla19**0.44e0 - * powerht ** (-0.73e0) - * rmajor**1.97e0 - * physics_variables.kappa_ipb**0.78e0 - * aspect ** (-0.58e0) - * m_fuel_amu**0.19e0 - ) - - tauee = hfact * ( - (((1.0e0 / aspect) - 0.4e0) / (0.6e0 - 0.4e0)) * taunstx - + ((0.6e0 - (1.0e0 / aspect)) / (0.6e0 - 0.4e0)) * taupetty - ) + # Menard NSTX-Petty08 Hybrid + elif i_confinement_time == 47: + tauee = hfact * confinement.menard_nstx_petty08_hybrid_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, + ) # ========================================================================== diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 53277bd9da..c2d47af1fe 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2943,11 +2943,11 @@ class PcondParam(NamedTuple): zeff=2.4987360098030775, expected_kappaa_ipb=1.68145080681586, expected_kappaa=1.7187938085542791, - expected_ptrepv=0.070108167457759038, - expected_ptripv=0.062223069561580698, - expected_tauee=3.7969687288631331, - expected_tauei=3.7969687288631331, - expected_taueff=3.7969687288631335, + expected_ptrepv=0.07147653259174333, + expected_ptripv=0.06343753403847416, + expected_tauee=3.7242785823911264, + expected_tauei=3.7242785823911264, + expected_taueff=3.7242785823911264, expected_powerht=290.18368660937881, ), ), From 6aba3f47f1573061587f24c8acd1e01e1e072ad8 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 09:51:42 +0000 Subject: [PATCH 049/106] =?UTF-8?q?=E2=9C=A8=20Add=20Buxton=20NSTX=20gyro-?= =?UTF-8?q?Bohm=20confinement=20time=20calculation=20and=20update=20docume?= =?UTF-8?q?ntation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 +++++ process/confinement_time.py | 38 +++++++++++++++++++ process/physics.py | 18 ++++----- 3 files changed, 56 insertions(+), 10 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index d72314d0c9..fbe6381103 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -486,6 +486,16 @@ $$ ------------------------- +### 48: Buxton NSTX Gyro-Bohm H-mode scaling + +Is selected with `i_confinement_time = 48` + +$$ +\tau_{\text{E}} = 0.21 I^{0.54} B_{\text{T}}^{0.91} \overline{n}_{20}^{-0.05} P^{-0.38} R^{2.14} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index 016a67a736..c46f4ea4c7 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1744,5 +1744,43 @@ def menard_nstx_petty08_hybrid_confinement_time( ) +def nstx_gyro_bohm_confinement_time( + pcur: float, + bt: float, + powerht: float, + rmajor: float, + dnla20: float, +) -> float: + """ + Calculate the NSTX gyro-Bohm confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + + Returns: + float: NSTX gyro-Bohm confinement time [s] + + Notes: + + References: + - P. F. Buxton, L. Connor, A. E. Costley, Mikhail Gryaznevich, and S. McNamara, + “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” + vol. 61, no. 3, pp. 035006–035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. + ‌ + """ + return ( + 0.21e0 + * pcur**0.54e0 + * bt**0.91e0 + * powerht ** (-0.38e0) + * rmajor**2.14e0 + * dnla20 ** (-0.05e0) + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index e1fe352e8a..ed10f75591 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7395,16 +7395,14 @@ def pcond( # ========================================================================== - elif i_confinement_time == 48: # NSTX gyro-Bohm (Buxton) - # P F Buxton et al. 2019 Plasma Phys. Control. Fusion 61 035006 - tauee = ( - hfact - * 0.21e0 - * pcur**0.54e0 - * bt**0.91e0 - * powerht ** (-0.38e0) - * rmajor**2.14e0 - * dnla20 ** (-0.05e0) + # NSTX gyro-Bohm (Buxton) + elif i_confinement_time == 48: + tauee = hfact * confinement.nstx_gyro_bohm_confinement_time( + pcur, + bt, + powerht, + rmajor, + dnla20, ) # ========================================================================== From bcdb2ecdb1cc18a76e257a6644716168e229a48e Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 10:18:11 +0000 Subject: [PATCH 050/106] =?UTF-8?q?=E2=9C=A8=20Add=20ITPA20=20H-mode=20sca?= =?UTF-8?q?ling=20confinement=20time=20calculation=20and=20update=20docume?= =?UTF-8?q?ntation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 50 ++++++++++++++++++ process/physics.py | 51 ++++++++----------- 3 files changed, 80 insertions(+), 31 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index fbe6381103..2875c0067c 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -496,6 +496,16 @@ $$ ------------------------- +### 49: ITPA20 H-mode scaling + +Is selected with `i_confinement_time = 49` + +$$ +\tau_{\text{E}} = 0.053 I^{0.98} B_{\text{T}}^{0.22} \overline{n}_{19}^{0.24} P^{-0.669} R^{1.71} \left(1+\delta \right)^{0.36} \kappa_{\text{IPB}}^{0.8} \epsilon^{0.35} M^{0.2} +$$ + +------------------------- + | `i_confinement_time` | scaling law | reference | | :-: | - | - | | 1 | Neo-Alcator (ohmic) | [^1] | diff --git a/process/confinement_time.py b/process/confinement_time.py index c46f4ea4c7..a9c271f15d 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1782,5 +1782,55 @@ def nstx_gyro_bohm_confinement_time( ) +def itpa20_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + triang: float, + kappa_ipb: float, + eps: float, + aion: float, +) -> float: + """ + Calculate the ITPA20 Issue #3164 confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Central line-averaged electron density in units of 10**19 m**-3 + powerht (float): Thermal power lost due to transport through the LCFS [MW] + rmajor (float): Plasma major radius [m] + triang (float): Triangularity + kappa_ipb (float): IPB specific plasma separatrix elongation + eps (float): Inverse aspect ratio + aion (float): Average mass of all ions (amu) + + Returns: + float: ITPA20 confinement time [s] + + Notes: + - Mass term is the effective mass of the plasma, so we assume the total ion mass here + - This scaling uses the IPB defintiion of elongation, see reference for more information. + + References: + - G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” + Nuclear Fusion, vol. 61, no. 7, pp. 076006–076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. + """ + return ( + 0.053 + * pcur**0.98 + * bt**0.22 + * dnla19**0.24 + * powerht ** (-0.669) + * rmajor**1.71 + * (1 + triang) ** 0.36 + * kappa_ipb**0.8 + * eps**0.35 + * aion**0.2 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index ed10f75591..e13ad95768 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7407,39 +7407,28 @@ def pcond( # ========================================================================== - elif i_confinement_time == 49: # ITPA20 Issue #3164 - # The updated ITPA global H-mode confinement database: description and analysis - # G. Verdoolaege et al 2021 Nucl. Fusion 61 076006 DOI 10.1088/1741-4326/abdb91 - - # thermal energy confinement time - # plasma current Ip (MA), - # on-axis vacuum toroidal magnetic field Bt (T) - # "central line-averaged electron density" nebar (1019 m-3) - # thermal power lost due to transport through the LCFS Pl,th (MW) - # major radius Rgeo (m) - # elongation of the LCFS, defined as κa = V/(2πRgeo πa2) - # (with V (m3) the plasma volume inside the LCFS), - # inverse aspect ratio epsilon = a/Rgeo - # effective atomic mass Meff of the plasma - NOT defined, but I have taken it equal to - # m_ions_total_amu = average mass of all ions (amu). - # energy confinement time is given by τE,th = Wth/Pl,th, where Wth is the thermal stored energy. - # The latter is derived from the total stored energy Wtot by subtracting the energy - # content associated to fast particles originating from plasma heating. - - tauee = ( - hfact - * 0.053 - * pcur**0.98 - * bt**0.22 - * dnla19**0.24 - * powerht ** (-0.669) - * rmajor**1.71 - * (1 + physics_variables.triang) ** 0.36 - * physics_variables.kappa_ipb**0.8 - * eps**0.35 - * physics_variables.m_ions_total_amu**0.2 + # ITPA20 H-mode scaling + elif i_confinement_time == 49: + tauee = hfact * confinement.itpa20_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.triang, + physics_variables.kappa_ipb, + eps, + physics_variables.aion, ) + # ========================================================================== + + # ========================================================================== + + # ========================================================================== + + # ========================================================================== + else: error_handling.idiags[0] = i_confinement_time error_handling.report_error(81) From a36292fa123f59a979ac15724d4edffd1fe04515 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 10:38:59 +0000 Subject: [PATCH 051/106] =?UTF-8?q?=F0=9F=94=84=20Refactor=20pcond=20to=20?= =?UTF-8?q?calculate=5Fconfinement=5Ftime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 2 +- process/physics.py | 8 +- process/stellarator.py | 4 +- tests/unit/test_physics.py | 156 +++++++++--------- 4 files changed, 89 insertions(+), 81 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 2875c0067c..943542a2ee 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -3,7 +3,7 @@ The energy confinement time $\tau_E$ is calculated using one of a choice of empirical scalings. ($\tau_E$ is defined below.) Many energy confinement time scaling laws are available within PROCESS, for -tokamaks, RFPs and stellarators. These are calculated in routine `pcond`. The +tokamaks, RFPs and stellarators. These are calculated in routine `calculate_confinement_time()`. The value of `i_confinement_time` determines which of the scalings is used in the plasma energy balance calculation. The table below summarises the available scaling laws. The most commonly used is the so-called IPB98(y,2) scaling. diff --git a/process/physics.py b/process/physics.py index e13ad95768..6e4311b7c7 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2255,7 +2255,7 @@ def physics(self): physics_variables.taueff, physics_variables.tauei, physics_variables.powerht, - ) = self.pcond( + ) = self.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, physics_variables.aspect, @@ -5738,7 +5738,7 @@ def igmarcal(self): taueiz, taueffz, powerhtz, - ) = self.pcond( + ) = self.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, physics_variables.aspect, @@ -6530,7 +6530,7 @@ def fhz(self, hhh): taueiz, taueffz, powerhtz, - ) = self.pcond( + ) = self.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, physics_variables.aspect, @@ -6588,7 +6588,7 @@ def fhz(self, hhh): return fhz @staticmethod - def pcond( + def calculate_confinement_time( m_fuel_amu, alpha_power_total, aspect, diff --git a/process/stellarator.py b/process/stellarator.py index a337837a7a..99ba4226df 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -220,7 +220,7 @@ def stigma(self): physics_variables.tauei, physics_variables.taueff, physics_variables.powerht, - ) = self.physics.pcond( + ) = self.physics.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, physics_variables.aspect, @@ -4461,7 +4461,7 @@ def stphys(self, output): physics_variables.tauei, physics_variables.taueff, physics_variables.powerht, - ) = self.physics.pcond( + ) = self.physics.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, physics_variables.aspect, diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index c2d47af1fe..1efcf076e1 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2157,7 +2157,7 @@ def test_calculate_density_limit(calculatedensitylimitparam, physics): assert dlimit == pytest.approx(calculatedensitylimitparam.expected_dlimit) -class PcondParam(NamedTuple): +class ConfinementTimeParam(NamedTuple): i_rad_loss: Any = None tauee_in: Any = None @@ -2244,9 +2244,9 @@ class PcondParam(NamedTuple): @pytest.mark.parametrize( - "pcondparam", + "confinementtimeparam", ( - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2290,7 +2290,7 @@ class PcondParam(NamedTuple): expected_taueff=21.17616899712392, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2334,7 +2334,7 @@ class PcondParam(NamedTuple): expected_taueff=3.2679051814806366, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2378,7 +2378,7 @@ class PcondParam(NamedTuple): expected_taueff=3.2731572946627923, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2422,7 +2422,7 @@ class PcondParam(NamedTuple): expected_taueff=2.2040075681235445, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2466,7 +2466,7 @@ class PcondParam(NamedTuple): expected_taueff=3.2739047552801135, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2510,7 +2510,7 @@ class PcondParam(NamedTuple): expected_taueff=3.2692026799851455, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2554,7 +2554,7 @@ class PcondParam(NamedTuple): expected_taueff=3.6611421391548529, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2598,7 +2598,7 @@ class PcondParam(NamedTuple): expected_taueff=3.3898077909969717, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2642,7 +2642,7 @@ class PcondParam(NamedTuple): expected_taueff=3.169298972363837, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2686,7 +2686,7 @@ class PcondParam(NamedTuple): expected_taueff=3.203198469625145, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2730,7 +2730,7 @@ class PcondParam(NamedTuple): expected_taueff=3.6416666339340686, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2774,7 +2774,7 @@ class PcondParam(NamedTuple): expected_taueff=3.2693119926464513, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2818,7 +2818,7 @@ class PcondParam(NamedTuple): expected_taueff=3.2694535383156871, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2862,7 +2862,7 @@ class PcondParam(NamedTuple): expected_taueff=3.2694029195542003, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2906,7 +2906,7 @@ class PcondParam(NamedTuple): expected_taueff=3.3442231132583502, expected_powerht=290.18368660937881, ), - PcondParam( + ConfinementTimeParam( i_rad_loss=1, tauee_in=0, pden_plasma_rad_mw=0.11824275660100725, @@ -2952,78 +2952,86 @@ class PcondParam(NamedTuple): ), ), ) -def test_pcond(pcondparam, monkeypatch, physics): +def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): """ - Automatically generated Regression Unit Test for pcond. + Automatically generated Regression Unit Test for calculate_confinement_time(). This test was generated using data from tests/regression/scenarios/large-tokamak/IN.DAT. - :param pcondparam: the data used to mock and assert in this test. - :type pcondparam: pcondparam + :param confinementtimeparam: the data used to mock and assert in this test. + :type confinementtimeparam: confinementtimeparam :param monkeypatch: pytest fixture used to mock module/class variables :type monkeypatch: _pytest.monkeypatch.monkeypatch """ - monkeypatch.setattr(physics_variables, "i_rad_loss", pcondparam.i_rad_loss) - - monkeypatch.setattr(physics_variables, "tauee_in", pcondparam.tauee_in) - monkeypatch.setattr( - physics_variables, "pden_plasma_rad_mw", pcondparam.pden_plasma_rad_mw + physics_variables, "i_rad_loss", confinementtimeparam.i_rad_loss ) - monkeypatch.setattr(physics_variables, "kappa_ipb", pcondparam.kappa_ipb) + monkeypatch.setattr(physics_variables, "tauee_in", confinementtimeparam.tauee_in) monkeypatch.setattr( - physics_variables, "p_plasma_ohmic_mw", pcondparam.p_plasma_ohmic_mw + physics_variables, "pden_plasma_rad_mw", confinementtimeparam.pden_plasma_rad_mw ) - monkeypatch.setattr(physics_variables, "f_alpha_plasma", pcondparam.f_alpha_plasma) + monkeypatch.setattr(physics_variables, "kappa_ipb", confinementtimeparam.kappa_ipb) - kappaa, ptrepv, ptripv, tauee, tauei, taueff, powerht = physics.pcond( - iinvqd=pcondparam.iinvqd, - i_confinement_time=pcondparam.i_confinement_time, - ignite=pcondparam.ignite, - m_fuel_amu=pcondparam.m_fuel_amu, - alpha_power_total=pcondparam.alpha_power_total, - aspect=pcondparam.aspect, - bt=pcondparam.bt, - dene=pcondparam.dene, - nd_ions_total=pcondparam.nd_ions_total, - dnla=pcondparam.dnla, - eps=pcondparam.eps, - hfact=pcondparam.hfact, - kappa=pcondparam.kappa, - kappa95=pcondparam.kappa95, - non_alpha_charged_power=pcondparam.non_alpha_charged_power, - pinjmw=pcondparam.pinjmw, - plasma_current=pcondparam.plasma_current, - pcoreradpv=pcondparam.pcoreradpv, - q=pcondparam.q, - qstar=pcondparam.qstar, - rmajor=pcondparam.rmajor, - rminor=pcondparam.rminor, - _te=pcondparam.te, - ten=pcondparam.ten, - tin=pcondparam.tin, - vol_plasma=pcondparam.vol_plasma, - a_plasma_poloidal=pcondparam.a_plasma_poloidal, - zeff=pcondparam.zeff, + monkeypatch.setattr( + physics_variables, "p_plasma_ohmic_mw", confinementtimeparam.p_plasma_ohmic_mw ) - assert physics_variables.kappa_ipb == pytest.approx(pcondparam.expected_kappaa_ipb) - - assert kappaa == pytest.approx(pcondparam.expected_kappaa) - - assert powerht == pytest.approx(pcondparam.expected_powerht) - - assert ptrepv == pytest.approx(pcondparam.expected_ptrepv) - - assert ptripv == pytest.approx(pcondparam.expected_ptripv) - - assert tauee == pytest.approx(pcondparam.expected_tauee) - - assert taueff == pytest.approx(pcondparam.expected_taueff) - - assert tauei == pytest.approx(pcondparam.expected_tauei) + monkeypatch.setattr( + physics_variables, "f_alpha_plasma", confinementtimeparam.f_alpha_plasma + ) + + kappaa, ptrepv, ptripv, tauee, tauei, taueff, powerht = ( + physics.calculate_confinement_time( + iinvqd=confinementtimeparam.iinvqd, + i_confinement_time=confinementtimeparam.i_confinement_time, + ignite=confinementtimeparam.ignite, + m_fuel_amu=confinementtimeparam.m_fuel_amu, + alpha_power_total=confinementtimeparam.alpha_power_total, + aspect=confinementtimeparam.aspect, + bt=confinementtimeparam.bt, + dene=confinementtimeparam.dene, + nd_ions_total=confinementtimeparam.nd_ions_total, + dnla=confinementtimeparam.dnla, + eps=confinementtimeparam.eps, + hfact=confinementtimeparam.hfact, + kappa=confinementtimeparam.kappa, + kappa95=confinementtimeparam.kappa95, + non_alpha_charged_power=confinementtimeparam.non_alpha_charged_power, + pinjmw=confinementtimeparam.pinjmw, + plasma_current=confinementtimeparam.plasma_current, + pcoreradpv=confinementtimeparam.pcoreradpv, + q=confinementtimeparam.q, + qstar=confinementtimeparam.qstar, + rmajor=confinementtimeparam.rmajor, + rminor=confinementtimeparam.rminor, + _te=confinementtimeparam.te, + ten=confinementtimeparam.ten, + tin=confinementtimeparam.tin, + vol_plasma=confinementtimeparam.vol_plasma, + a_plasma_poloidal=confinementtimeparam.a_plasma_poloidal, + zeff=confinementtimeparam.zeff, + ) + ) + + assert physics_variables.kappa_ipb == pytest.approx( + confinementtimeparam.expected_kappaa_ipb + ) + + assert kappaa == pytest.approx(confinementtimeparam.expected_kappaa) + + assert powerht == pytest.approx(confinementtimeparam.expected_powerht) + + assert ptrepv == pytest.approx(confinementtimeparam.expected_ptrepv) + + assert ptripv == pytest.approx(confinementtimeparam.expected_ptripv) + + assert tauee == pytest.approx(confinementtimeparam.expected_tauee) + + assert taueff == pytest.approx(confinementtimeparam.expected_taueff) + + assert tauei == pytest.approx(confinementtimeparam.expected_tauei) From 6481673f0f25c360ff94030d0f5e15c5db1ebe57 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 11:07:58 +0000 Subject: [PATCH 052/106] =?UTF-8?q?=E2=9C=A8=20Add=20ITER-93=20ELM-free=20?= =?UTF-8?q?H-mode=20scaling=20confinement=20time=20calculation=20and=20upd?= =?UTF-8?q?ate=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 10 ++++ process/confinement_time.py | 46 +++++++++++++++++++ process/physics.py | 36 ++++++--------- 3 files changed, 71 insertions(+), 21 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 943542a2ee..0d41626951 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -296,6 +296,16 @@ $$ ------------------------- +### 24: ITER 93 ELM-free H-mode scaling + +Is selected with `i_confinement_time = 24` + +$$ +\tau_{\text{E}} = 0.036 I^{1.06} B_{\text{T}}^{0.32} P^{-0.67} R^{1.79} \epsilon^{-0.11} \kappa^{0.66} \overline{n}_{20}^{0.17} M_{\text{i}}^{0.41} +$$ + +------------------------- + ### 26: ELM-free: ITERH-97P scaling Is selected with `i_confinement_time = 26` diff --git a/process/confinement_time.py b/process/confinement_time.py index a9c271f15d..c9021bfd84 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -672,6 +672,52 @@ def lackner_gottardi_confinement_time( ) +def iter_93h_confinement_time( + pcur: float, + bt: float, + powerht: float, + afuel: float, + rmajor: float, + dnla20: float, + aspect: float, + kappa: float, +) -> float: + """ + Calculate the ITER-93H scaling ELM-free confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + afuel (float): Fuel atomic mass number + rmajor (float): Plasma major radius [m] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + aspect (float): Aspect ratio + kappa (float): Plasma elongation + + Returns: + float: ITER-93H confinement time [s] + + Notes: + + References: + - K. Thomsen et al., “ITER H mode confinement database update,” + vol. 34, no. 1, pp. 131–167, Jan. 1994, doi: https://doi.org/10.1088/0029-5515/34/1/i10. + + """ + return ( + 0.036e0 + * pcur**1.06e0 + * bt**0.32e0 + * powerht ** (-0.67e0) + * afuel**0.41e0 + * rmajor**1.79e0 + * dnla20**0.17e0 + * aspect**0.11e0 + * kappa**0.66e0 + ) + + def neo_kaye_confinement_time( pcur: float, rmajor: float, diff --git a/process/physics.py b/process/physics.py index 6e4311b7c7..2cac29ceba 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7040,26 +7040,24 @@ def calculate_confinement_time( # ========================================================================== - elif ( - i_confinement_time == 24 - ): # ITER-93H scaling (ELM-free; multiply by 0.85 for ELMy version) - # S.Kaye and the ITER Joint Central Team and Home Teams, in Plasma - # Physics and Controlled Nuclear Fusion Research (Proc. 15th - # Int. Conf., Seville, 1994) IAEA-CN-60/E-P-3 - tauee = ( - hfact - * 0.053e0 - * pcur**1.06e0 - * bt**0.32e0 - * powerht ** (-0.67e0) - * m_fuel_amu**0.41e0 - * rmajor**1.79e0 - * dnla20**0.17e0 - * aspect**0.11e0 - * kappa**0.66e0 + # ITER_93 ELM-free H-mode scaling + elif i_confinement_time == 24: + tauee = hfact * confinement.iter_93h_confinement_time( + pcur, + bt, + powerht, + afuel, + rmajor, + dnla20, + aspect, + kappa, ) # ========================================================================== + # Scaling removed + elif i_confinement_time == 25: + raise ValueError("Scaling removed") + # ========================================================================== # ELM-free: ITERH-97P elif i_confinement_time == 26: @@ -7075,10 +7073,6 @@ def calculate_confinement_time( ) # ========================================================================== - # Scaling removed - elif i_confinement_time == 25: - raise ValueError("Scaling removed") - # ========================================================================== # ELMy: ITERH-97P(y) elif i_confinement_time == 27: From c23151f3839821681621aee64b86c99f3ec11a09 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 14:14:43 +0000 Subject: [PATCH 053/106] =?UTF-8?q?=E2=9C=85=20Fix=20integration=20test=20?= =?UTF-8?q?indexing=20fail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 6 ++-- source/fortran/input.f90 | 2 +- source/fortran/physics_variables.f90 | 53 ++-------------------------- 3 files changed, 6 insertions(+), 55 deletions(-) diff --git a/process/physics.py b/process/physics.py index 2cac29ceba..58ac0f9b0a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5152,7 +5152,7 @@ def outplas(self): po.oblnkl(self.outfile) tauelaw = f2py_compatible_to_string( - physics_variables.tauscl[physics_variables.i_confinement_time - 1] + physics_variables.tauscl[physics_variables.i_confinement_time] ) po.ocmmnt( @@ -5729,7 +5729,7 @@ def igmarcal(self): # for iisc in range(32, 48): # Put the ITPA value first - for iisc in [50, 34, 37, 38, 39, 46, 47, 48]: + for iisc in [49, 34, 37, 38, 39, 46, 47, 48]: ( physics_variables.kappaa, ptrez, @@ -5773,7 +5773,7 @@ def igmarcal(self): po.ocmmnt( self.outfile, - f"{'':>2}{f2py_compatible_to_string(physics_variables.tauscl[iisc - 1]):<32}" + f"{'':>2}{f2py_compatible_to_string(physics_variables.tauscl[iisc]):<32}" f"{taueez:<26.3f}{physics_variables.hfac[iisc - 1]:.3f}", ) diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index 6a50828f2a..0f9dd21317 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -661,7 +661,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) call parse_int_variable('i_rad_loss', i_rad_loss, 0, 2, & 'Switch for radiation loss term inclusion in power balance') case ('i_confinement_time') - call parse_int_variable('i_confinement_time', i_confinement_time, 0, ipnlaws, & + call parse_int_variable('i_confinement_time', i_confinement_time, 0, ipnlaws-1, & 'Switch for confinement scaling law') case ('i_plasma_wall_gap') call parse_int_variable('i_plasma_wall_gap', i_plasma_wall_gap, 0, 1, & diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index fe489eed97..25e64c8834 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -421,7 +421,8 @@ module physics_variables integer :: i_confinement_time !! switch for energy confinement time scaling law (see description in `tauscl`) - character*24, parameter, dimension(ipnlaws) :: tauscl = (/ & + !! tauscl(ipnlaws) : labels describing energy confinement scaling laws + character*24, parameter, dimension(ipnlaws) :: tauscl = (/ & 'Input tauee_in ', & 'Neo-Alcator (ohmic)', & 'Mirnov (H)', & @@ -472,56 +473,6 @@ module physics_variables 'NSTX-Petty08 Hybrid (H)', & 'NSTX gyro-Bohm Buxton(H)', & 'ITPA20 (H)' /) - !! tauscl(ipnlaws) : labels describing energy confinement scaling laws:
              - !!
            • ( 1) Neo-Alcator (ohmic) - !!
            • ( 2) Mirnov (H-mode) - !!
            • ( 3) Merezkhin-Muhkovatov (L-mode) - !!
            • ( 4) Shimomura (H-mode) - !!
            • ( 5) Kaye-Goldston (L-mode) - !!
            • ( 6) ITER 89-P (L-mode) - !!
            • ( 7) ITER 89-O (L-mode) - !!
            • ( 8) Rebut-Lallia (L-mode) - !!
            • ( 9) Goldston (L-mode) - !!
            • (10) T10 (L-mode) - !!
            • (11) JAERI-88 (L-mode) - !!
            • (12) Kaye-Big Complex (L-mode) - !!
            • (13) ITER H90-P (H-mode) - !!
            • (14) ITER Mix (L-mode) - !!
            • (15) Riedel (L-mode) - !!
            • (16) Christiansen (L-mode) - !!
            • (17) Lackner-Gottardi (L-mode) - !!
            • (18) Neo-Kaye (L-mode) - !!
            • (19) Riedel (H-mode) - !!
            • (20) ITER H90-P amended (H-mode) - !!
            • (21) LHD (stellarator) - !!
            • (22) Gyro-reduced Bohm (stellarator) - !!
            • (23) Lackner-Gottardi (stellarator) - !!
            • (24) ITER-93H (H-mode) - !!
            • (25) OBSOLETE - !!
            • (26) ITER H-97P ELM-free (H-mode) - !!
            • (27) ITER H-97P ELMy (H-mode) - !!
            • (28) ITER-96P (=ITER-97L) (L-mode) - !!
            • (29) Valovic modified ELMy (H-mode) - !!
            • (30) Kaye PPPL April 98 (L-mode) - !!
            • (31) ITERH-PB98P(y) (H-mode) - !!
            • (32) IPB98(y) (H-mode) - !!
            • (33) IPB98(y,1) (H-mode) - !!
            • (34) IPB98(y,2) (H-mode) - !!
            • (35) IPB98(y,3) (H-mode) - !!
            • (36) IPB98(y,4) (H-mode) - !!
            • (37) ISS95 (stellarator) - !!
            • (38) ISS04 (stellarator) - !!
            • (39) DS03 (H-mode) - !!
            • (40) Murari et al non-power law (H-mode) - !!
            • (41) Petty 2008 (H-mode) - !!
            • (42) Lang et al. 2012 (H-mode) - !!
            • (43) Hubbard 2017 (I-mode) - nominal - !!
            • (44) Hubbard 2017 (I-mode) - lower bound - !!
            • (45) Hubbard 2017 (I-mode) - upper bound - !!
            • (46) NSTX (H-mode; Spherical tokamak) - !!
            • (47) NSTX-Petty08 Hybrid (H-mode) - !!
            • (48) NSTX gyro-Bohm (Buxton) (H-mode; Spherical tokamak) - !!
            • (49) Use input tauee_in
            integer :: i_plasma_wall_gap !! Switch for plasma-first wall clearances at the mid-plane: From 07d38d24bc22be883e8d882563f166dc24be1011 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 14:38:27 +0000 Subject: [PATCH 054/106] :fire: Remove igmarcal function and put functionality into outplas --- process/output.py | 3 -- process/physics.py | 95 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 5 deletions(-) diff --git a/process/output.py b/process/output.py index 25cce160b7..272d5a03c6 100644 --- a/process/output.py +++ b/process/output.py @@ -42,9 +42,6 @@ def write(models, _outfile): # Writing the output from physics.f90 into OUT.DAT + MFILE.DAT models.physics.outplas() - # TODO what is this? not in caller.f90 - models.physics.igmarcal() - # TODO what is this? Not in caller.f90? models.current_drive.cudriv(output=True) diff --git a/process/physics.py b/process/physics.py index 58ac0f9b0a..b4537d8aec 100644 --- a/process/physics.py +++ b/process/physics.py @@ -3749,7 +3749,9 @@ def outplas(self): "(iotabar)", stellarator_variables.iotabar, ) - + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + po.oblnkl(self.outfile) po.osubhd(self.outfile, "Beta Information :") if physics_variables.i_beta_component == 0: po.ovarrf( @@ -3943,6 +3945,10 @@ def outplas(self): "OP", ) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + po.oblnkl(self.outfile) + po.osubhd(self.outfile, "Temperature and Density (volume averaged) :") po.ovarrf( self.outfile, @@ -4087,9 +4093,12 @@ def outplas(self): "OP ", ) + po.oblnkl(self.outfile) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) po.oblnkl(self.outfile) - po.ocmmnt(self.outfile, "Impurities") + po.ocmmnt(self.outfile, "Impurities:") po.oblnkl(self.outfile) po.ocmmnt(self.outfile, "Plasma ion densities / electron density:") @@ -4280,6 +4289,10 @@ def outplas(self): physics_variables.alphap, ) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + po.oblnkl(self.outfile) + if stellarator_variables.istell == 0: po.osubhd(self.outfile, "Density Limit using different models :") po.ovarre( @@ -4354,6 +4367,10 @@ def outplas(self): "OP ", ) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + po.oblnkl(self.outfile) + po.osubhd(self.outfile, "Fuel Constituents :") po.ovarrf( self.outfile, @@ -4565,6 +4582,10 @@ def outplas(self): "OP ", ) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + po.oblnkl(self.outfile) + po.osubhd(self.outfile, "Radiation Power (excluding SOL):") po.ovarre( self.outfile, @@ -4910,6 +4931,10 @@ def outplas(self): "OP ", ) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + po.oblnkl(self.outfile) + if stellarator_variables.istell == 0: po.osubhd(self.outfile, "H-mode Power Threshold Scalings :") @@ -5323,6 +5348,68 @@ def outplas(self): self.outfile, " (= stored energy including fast particles / loss power including radiation", ) + po.oheadr(self.outfile, "Energy confinement times, and required H-factors :") + po.ocmmnt( + self.outfile, + f"{'':>5}{'scaling law':<25}{'confinement time (s)':<25}H-factor for", + ) + po.ocmmnt( + self.outfile, + f"{'':>34}{'for H = 1':<20}power balance", + ) + + # for iisc in range(32, 48): + # Put the ITPA value first + for iisc in [49, 34, 37, 38, 39, 46, 47, 48]: + ( + physics_variables.kappaa, + ptrez, + ptriz, + taueez, + taueiz, + taueffz, + powerhtz, + ) = self.calculate_confinement_time( + physics_variables.afuel, + physics_variables.alpha_power_total, + physics_variables.aspect, + physics_variables.bt, + physics_variables.dnitot, + physics_variables.dene, + physics_variables.dnla, + physics_variables.eps, + 1.0, + physics_variables.iinvqd, + iisc, + physics_variables.ignite, + physics_variables.kappa, + physics_variables.kappa95, + physics_variables.non_alpha_charged_power, + current_drive_variables.pinjmw, + physics_variables.plasma_current, + physics_variables.pcoreradpv, + physics_variables.rmajor, + physics_variables.rminor, + physics_variables.te, + physics_variables.ten, + physics_variables.tin, + physics_variables.q, + physics_variables.qstar, + physics_variables.plasma_volume, + physics_variables.xarea, + physics_variables.zeff, + ) + + physics_variables.hfac[iisc - 1] = self.fhfac(iisc) + + po.ocmmnt( + self.outfile, + f"{'':>2}{f2py_compatible_to_string(physics_variables.tauscl[iisc]):<32}" + f"{taueez:<26.3f}{physics_variables.hfac[iisc - 1]:.3f}", + ) + + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) if stellarator_variables.istell == 0: # Issues 363 Output dimensionless plasma parameters MDK @@ -5365,6 +5452,10 @@ def outplas(self): "OP ", ) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + po.oblnkl(self.outfile) + po.osubhd(self.outfile, "Plasma Volt-second Requirements :") po.ovarre( self.outfile, From 2cd4daceaaec1969a2a1a611a39c5beaf7adefb5 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 14:41:29 +0000 Subject: [PATCH 055/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20taup=20to=20t?= =?UTF-8?q?=5Falpha=5Fconfinement=20for=20clarity=20and=20update=20related?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 8 +- examples/data/large_tokamak_1_MFILE.DAT | 8 +- examples/data/large_tokamak_2_MFILE.DAT | 8 +- examples/data/large_tokamak_3_MFILE.DAT | 8 +- examples/data/large_tokamak_4_MFILE.DAT | 8 +- examples/data/large_tokamak_IN.DAT | 2 +- examples/data/scan_MFILE.DAT | 54 +++++------ examples/data/scan_example_file_IN.DAT | 2 +- process/physics.py | 20 ++-- process/stellarator.py | 2 +- source/fortran/constraint_equations.f90 | 18 ++-- source/fortran/constraint_variables.f90 | 4 +- source/fortran/input.f90 | 4 +- source/fortran/iteration_variables.f90 | 2 +- source/fortran/numerics.f90 | 6 +- source/fortran/physics_variables.f90 | 4 +- source/fortran/scan.f90 | 6 +- .../data/large_tokamak_1_MFILE.DAT | 8 +- .../data/large_tokamak_2_MFILE.DAT | 8 +- .../data/large_tokamak_3_MFILE.DAT | 8 +- .../data/large_tokamak_4_MFILE.DAT | 8 +- tests/integration/data/large_tokamak_IN.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 8 +- .../data/large_tokamak_once_through.IN.DAT | 4 +- tests/integration/data/scan_2D_MFILE.DAT | 92 +++++++++---------- tests/integration/data/scan_MFILE.DAT | 54 +++++------ tests/integration/ref_dicts.json | 20 ++-- .../input_files/large_tokamak.IN.DAT | 2 +- .../input_files/large_tokamak_nof.IN.DAT | 2 +- .../large_tokamak_once_through.IN.DAT | 4 +- .../input_files/st_regression.IN.DAT | 6 +- tests/unit/data/large_tokamak_IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 8 +- tests/unit/test_physics.py | 12 ++- 34 files changed, 207 insertions(+), 205 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 30a98fbea0..b745e3f783 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -176,7 +176,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ 2.0761E-13 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.2975E-12 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ -0.0000E+00 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -4.7055E-09 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -4.7055E-09 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ 3.0487E-13 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -4.9472E-13 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ 1.2901E-13 @@ -497,8 +497,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.8997E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9376E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2315E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.8919E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2315E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.8919E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8266E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7123E-02 OP @@ -1346,7 +1346,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index e39adbef57..dfa66570d6 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -177,7 +177,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -493,8 +493,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 3c36bef66b..09a4fc909f 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -177,7 +177,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -493,8 +493,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index c416e0cd0a..dd067217d8 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -177,7 +177,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -493,8 +493,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 2a17dfdedc..3610abc709 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -177,7 +177,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -493,8 +493,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_IN.DAT b/examples/data/large_tokamak_IN.DAT index fc4372db13..c55ce454c9 100644 --- a/examples/data/large_tokamak_IN.DAT +++ b/examples/data/large_tokamak_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index b12040eaeb..dcb4c3bf89 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -163,7 +163,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 2.1072E-13 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 9.0616E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -9.2149E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 7.0988E-13 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 7.0988E-13 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -350,8 +350,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -1158,7 +1158,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 6.4393E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.3700E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -4.4409E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7518E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7518E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -1345,8 +1345,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -2153,7 +2153,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 3.7748E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.2701E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -7.7716E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7296E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7296E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -2340,8 +2340,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -3148,7 +3148,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 2.2204E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.1480E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -3.3307E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.5963E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.5963E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -3335,8 +3335,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -4143,7 +4143,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 5.7732E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.0392E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -9.9920E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.8406E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.8406E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -4330,8 +4330,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -5138,7 +5138,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 6.8834E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 9.5257E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -1.2212E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9738E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9738E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -5325,8 +5325,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -6133,7 +6133,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 1.9984E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 8.0380E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -1.2212E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9516E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9516E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -6320,8 +6320,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -7128,7 +7128,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 1.1102E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 7.8382E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -7.7716E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.2847E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.2847E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -7315,8 +7315,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -8123,7 +8123,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 4.2188E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 6.8168E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -1.2212E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.6399E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.6399E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -8310,8 +8310,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP diff --git a/examples/data/scan_example_file_IN.DAT b/examples/data/scan_example_file_IN.DAT index 994a839f3d..a38a0254e8 100644 --- a/examples/data/scan_example_file_IN.DAT +++ b/examples/data/scan_example_file_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/process/physics.py b/process/physics.py index b4537d8aec..31a781857f 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2327,7 +2327,7 @@ def physics(self): physics_module.fusrat, physics_variables.qfuel, physics_variables.rndfuel, - physics_variables.taup, + physics_variables.t_alpha_confinement, ) = self.phyaux( physics_variables.aspect, physics_variables.dene, @@ -2986,7 +2986,7 @@ def phyaux( fusrat : output real : number of fusion reactions per second qfuel : output real : fuelling rate for D-T (nucleus-pairs/sec) rndfuel: output real : fuel burnup rate (reactions/s) - taup : output real : (alpha) particle confinement time (s) + t_alpha_confinement : output real : (alpha) particle confinement time (s) This subroutine calculates extra physics related items needed by other parts of the code """ @@ -3003,9 +3003,9 @@ def phyaux( # Number of alphas / alpha production rate if alpha_rate_density_total != 0.0: - taup = nd_alphas / alpha_rate_density_total + t_alpha_confinement = nd_alphas / alpha_rate_density_total else: # only likely if DD is only active fusion reaction - taup = 0.0 + t_alpha_confinement = 0.0 # Fractional burnup @@ -3035,7 +3035,7 @@ def phyaux( qfuel = rndfuel / burnup - return burnup, dntau, figmer, fusrat, qfuel, rndfuel, taup + return burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement @staticmethod def plasma_ohmic_heating( @@ -5319,21 +5319,21 @@ def outplas(self): po.ovarrf( self.outfile, "Alpha particle confinement time (s)", - "(taup)", - physics_variables.taup, + "(t_alpha_confinement)", + physics_variables.t_alpha_confinement, "OP ", ) # Note alpha confinement time is no longer equal to fuel particle confinement time. po.ovarrf( self.outfile, "Alpha particle/energy confinement time ratio", - "(taup/taueff)", - physics_variables.taup / physics_variables.taueff, + "(t_alpha_confinement/taueff)", + physics_variables.t_alpha_confinement / physics_variables.taueff, "OP ", ) po.ovarrf( self.outfile, - "Lower limit on taup/taueff", + "Lower limit on t_alpha_confinement/taueff", "(taulimit)", constraint_variables.taulimit, ) diff --git a/process/stellarator.py b/process/stellarator.py index 99ba4226df..3037ed6576 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -4514,7 +4514,7 @@ def stphys(self, output): fusrat, physics_variables.qfuel, physics_variables.rndfuel, - physics_variables.taup, + physics_variables.t_alpha_confinement, ) = self.physics.phyaux( physics_variables.aspect, physics_variables.dene, diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 9a4418c0f8..4b9d63f760 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -227,7 +227,7 @@ subroutine constraint_eqns(m,ieqn,cc,con,err,symbol,units) case (60); call constraint_eqn_060(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! Equation for availability limit case (61); call constraint_eqn_061(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) - ! Lower limit on taup/taueff the ratio of alpha particle to energy confinement times + ! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times case (62); call constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! Upper limit on niterpump (vacuum_model = simple) case (63); call constraint_eqn_063(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) @@ -2446,21 +2446,21 @@ subroutine constraint_eqn_061(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) end subroutine constraint_eqn_061 subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) - !! Lower limit on taup/taueff the ratio of alpha particle to energy confinement times + !! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times !! author: P B Lloyd, CCFE, Culham Science Centre !! args : output structure : residual error; constraint value; !! residual error in physical units; output string; units string - !! Lower limit on taup/taueff the ratio of alpha particle to energy confinement times + !! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times !! #=# physics !! #=#=# ftaulimit, taulimit !! and hence also optional here. !! Logic change during pre-factoring: err, symbol, units will be assigned only if present. - !! ftaulimit : input real : f-value for lower limit on taup/taueff the ratio of alpha particle to energy confinement - !! taup : input real : alpha particle confinement time (s) + !! ftaulimit : input real : f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement + !! t_alpha_confinement : input real : alpha particle confinement time (s) !! taueff : input real : global thermal energy confinement time (sec) - !! taulimit : input real : Lower limit on taup/taueff the ratio of alpha particle to energy confinement times + !! taulimit : input real : Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times use constraint_variables, only: ftaulimit, taulimit - use physics_variables, only: taup, taueff + use physics_variables, only: t_alpha_confinement, taueff implicit none real(dp), intent(out) :: tmp_cc real(dp), intent(out) :: tmp_con @@ -2468,9 +2468,9 @@ subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) character(len=1), intent(out) :: tmp_symbol character(len=10), intent(out) :: tmp_units - tmp_cc = 1.0D0 - ftaulimit * (taup / taueff) / taulimit + tmp_cc = 1.0D0 - ftaulimit * (t_alpha_confinement / taueff) / taulimit tmp_con = taulimit - tmp_err = (taup / taueff) * tmp_cc + tmp_err = (t_alpha_confinement / taueff) * tmp_cc tmp_symbol = '>' tmp_units = '' diff --git a/source/fortran/constraint_variables.f90 b/source/fortran/constraint_variables.f90 index 0c954b5847..710d0d6033 100644 --- a/source/fortran/constraint_variables.f90 +++ b/source/fortran/constraint_variables.f90 @@ -280,11 +280,11 @@ module constraint_variables !! allowable neutron wall-load (MW/m2) (`constraint equation 8`) real(dp) :: taulimit - !! Lower limit on taup/taueff the ratio of alpha particle to energy confinement + !! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement !! times (`constraint equation 62`) real(dp) :: ftaulimit - !! f-value for lower limit on taup/taueff the ratio of alpha particle to energy + !! f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy !! confinement times (`constraint equation 62`, `iteration variable 110`) real(dp) :: fniterpump diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index 0f9dd21317..03d0adf9ff 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -604,7 +604,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 'f-value for Eich critical separatrix density') case ('ftaulimit') call parse_real_variable('ftaulimit', ftaulimit, 0.001D0, 1.0D0, & - 'f-value for lower limit on taup/taueff the ratio of alpha particle to energy confinement times') + 'f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times') case ('f_tritium') call parse_real_variable('f_tritium', f_tritium, 0.0D0, 1.0D0, & 'Tritium fuel fraction') @@ -753,7 +753,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 'Input electron energy confinement time (sec) (i_confinement_time=48 only)') case ('taulimit') call parse_real_variable('taulimit', taulimit, 1.0D0, 100.0D0, & - 'Lower limit on taup/taueff the ratio of alpha particle to energy confinement times') + 'Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times') case ('teped') call parse_real_variable('teped', teped, 0.0D0, 20.0D0, & diff --git a/source/fortran/iteration_variables.f90 b/source/fortran/iteration_variables.f90 index 3ec8a1714d..cecf892f4a 100755 --- a/source/fortran/iteration_variables.f90 +++ b/source/fortran/iteration_variables.f90 @@ -2387,7 +2387,7 @@ end subroutine set_itv_109 !--------------------------------- subroutine init_itv_110 - !!
          • (110) ftaulimit: Lower limit on taup/taueff the ratio of alpha + !!
          • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha use numerics, only: lablxc, boundl, boundu implicit none !! particle to energy confinement times (f-value for equation 62) diff --git a/source/fortran/numerics.f90 b/source/fortran/numerics.f90 index 742c8844d4..f5a0a51a71 100755 --- a/source/fortran/numerics.f90 +++ b/source/fortran/numerics.f90 @@ -162,7 +162,7 @@ module numerics !!
          • (59) Neutral beam shine-through fraction upper limit (NBI) (itv 105,6,19,4 ) !!
          • (60) Central solenoid temperature margin lower limit (SCTF) (itv 106) !!
          • (61) Minimum availability value (itv 107) - !!
          • (62) taup/taueff the ratio of particle to energy confinement times (itv 110) + !!
          • (62) t_alpha_confinement/taueff the ratio of particle to energy confinement times (itv 110) !!
          • (63) The number of ITER-like vacuum pumps niterpump < tfno (itv 111) !!
          • (64) Zeff less than or equal to zeffmax (itv 112) !!
          • (65) Dump time set by VV loads (itv 56, 113) @@ -311,7 +311,7 @@ module numerics !!
          • (107) favail (f-value for equation 61) !!
          • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4) !!
          • (109) f_nd_alpha_electron: thermal alpha density / electron density - !!
          • (110) ftaulimit: Lower limit on taup/taueff the ratio of alpha + !!
          • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha !!
          • (111) fniterpump: f-value for constraint that number !!
          • (112) fzeffmax: f-value for max Zeff (f-value for equation 64) !!
          • (113) ftaucq: f-value for minimum quench time (f-value for equation 65) @@ -516,7 +516,7 @@ subroutine init_numerics() 'NB shine-through frac upper limit', & 'CS temperature margin lower limit', & 'Minimum availability value ', & - 'taup/taueff ', & + 't_alpha_confinement/taueff ', & 'number of ITER-like vacuum pumps ', & 'Zeff limit ', & 'Dump time set by VV stress ', & diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 25e64c8834..49f7b19a2d 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -829,7 +829,7 @@ module physics_variables real(dp) :: tauei !! ion energy confinement time (sec) - real(dp) :: taup + real(dp) :: t_alpha_confinement !! alpha particle confinement time (sec) real(dp) :: te @@ -1101,7 +1101,7 @@ subroutine init_physics_variables tauee_in = 0.0D0 taueff = 0.0D0 tauei = 0.0D0 - taup = 0.0D0 + t_alpha_confinement = 0.0D0 te = 12.9D0 te0 = 0.0D0 ten = 0.0D0 diff --git a/source/fortran/scan.f90 b/source/fortran/scan.f90 index a7cdf9d51b..95aa09de0a 100644 --- a/source/fortran/scan.f90 +++ b/source/fortran/scan.f90 @@ -368,7 +368,7 @@ subroutine scan_1d_write_plot(iscan, outvar) plabel(55) = 'Winding_pack_area_TFC(m2)' plabel(56) = 'Conductor_area_TFC_(m2)__' plabel(57) = 'Area_TF_inboard_leg_(m2)_' - plabel(58) = 'Taup/taueff_lower_limit__' + plabel(58) = 't_alpha_confinement/taueff_lower_limit__' plabel(59) = 'Plasma_temp_at_sep_[keV]_' plabel(60) = 'SOL_density_at_OMP_______' plabel(61) = 'Power_through__separatrix' @@ -556,7 +556,7 @@ subroutine scan_2d_write_plot(iscan, outvar, sweep_1_vals, sweep_2_vals) plabel(55) = 'Winding_pack_area_TFC(m2)' plabel(56) = 'Conductor_area_TFC_(m2)__' plabel(57) = 'Area_TF_inboard_leg_(m2)_' - plabel(58) = 'Taup/taueff_lower_limit__' + plabel(58) = 't_alpha_confinement/taueff_lower_limit__' plabel(59) = 'Plasma_temp_at_sep_[keV]_' plabel(60) = 'SOL_density_at_OMP_______' plabel(61) = 'Power_through__separatrix' @@ -717,7 +717,7 @@ subroutine scan_select(nwp, swp, iscn, vlab, xlab) vlab = 'OBSOLETE' ; xlab = 'OBSOLETE' case (31) taulimit = swp(iscn) - vlab = 'taulimit' ; xlab = 'Taup/taueff_lower_limit' + vlab = 'taulimit' ; xlab = 't_alpha_confinement/taueff_lower_limit' case (32) epsvmc = swp(iscn) vlab = 'epsvmc' ; xlab = 'VMCON error tolerance' diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index 407c49db26..f16caa1929 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -176,7 +176,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -492,8 +492,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1340,7 +1340,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 773f4f0622..fd31031747 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -177,7 +177,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -493,8 +493,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index da95474ed3..3b709c7f58 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -177,7 +177,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -493,8 +493,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index cfb81eb116..9c1f4048d9 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -177,7 +177,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.9894E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0631E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 8.0251E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -1.8772E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.0026E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.6044E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.9637E-08 @@ -493,8 +493,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.9512E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_IN.DAT b/tests/integration/data/large_tokamak_IN.DAT index fc4372db13..c55ce454c9 100644 --- a/tests/integration/data/large_tokamak_IN.DAT +++ b/tests/integration/data/large_tokamak_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 3c84689d3f..a6c7df24f2 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -173,7 +173,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (eq_con035)___________________ 2.5260E-08 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (eq_con036)___________________ -5.6001E-07 CS_temperature_margin_lower_limit_normalised_residue____________________ (eq_con060)___________________ 2.0134E-08 - taup/taueff_______________________normalised_residue____________________ (eq_con062)___________________ 8.9807E-09 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (eq_con062)___________________ 8.9807E-09 Dump_time_set_by_VV_stress________normalised_residue____________________ (eq_con065)___________________ -2.4337E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (eq_con072)___________________ 9.6351E-09 ne0_>_neped_______________________normalised_residue____________________ (eq_con081)___________________ -4.2434E-10 @@ -490,8 +490,8 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2016E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.8629E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.8629E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP @@ -1342,7 +1342,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_once_through.IN.DAT b/tests/integration/data/large_tokamak_once_through.IN.DAT index 127658e34a..e4ff1d9366 100644 --- a/tests/integration/data/large_tokamak_once_through.IN.DAT +++ b/tests/integration/data/large_tokamak_once_through.IN.DAT @@ -28,7 +28,7 @@ icc = 34 * Dump voltage upper limit icc = 35 * J_winding pack icc = 36 * TF coil temperature margin lower limit icc = 60 * Central solenoid temperature margin lower limit -icc = 62 * taup +icc = 62 * t_alpha_confinement icc = 65 * Dump time set by VV loads icc = 72 * central solenoid shear stress limit icc = 81 * Ne @@ -143,7 +143,7 @@ powfmax = 3000 * maximum fusion power (MW) (`constraint equation 9`) psepbqarmax = 10.0 * maximum ratio of Psep*Bt/qAR (MWT/m) (`constraint equation 68`) t_burn_min = 7200.0 * minimum burn time (s) (KE - no longer itv;; see issue #706) walalw = 2.0 * allowable neutron wall-load (MW/m2) (`constraint equation 8`) -taulimit = 5.0 * Lower limit on taup/taueff the ratio of alpha particle to energy confinement +taulimit = 5.0 * Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement *-------------------Constraints--------------------* diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 46ce7f3c62..f5e2af2174 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -178,7 +178,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ 7.8000E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.4213E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 4.6484E-05 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ -9.6978E-09 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ -9.6978E-09 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -2.8820E-06 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 5.1115E-08 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -4.5348E-10 @@ -495,8 +495,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9249E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.7889E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9961E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.3150E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9961E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.3150E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7855E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4772E-02 OP @@ -1341,7 +1341,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.4472E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.8789E-06 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 4.7630E-07 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 1.6466E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 1.6466E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.5585E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 2.5270E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.8388E-07 @@ -1658,8 +1658,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9493E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8240E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9751E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2760E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9751E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2760E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7767E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6299E-02 OP @@ -2504,7 +2504,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -9.1601E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.4938E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 1.2148E-07 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 4.0204E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 4.0204E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ 8.6457E-09 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 2.7688E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -2.0499E-07 @@ -2821,8 +2821,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8985E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9727E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2781E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9727E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2781E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7693E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7864E-02 OP @@ -3667,7 +3667,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -4.5992E-08 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.3423E-07 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 2.7461E-09 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 5.0140E-09 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 5.0140E-09 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -4.9924E-09 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -7.2194E-09 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.2207E-08 @@ -3984,8 +3984,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8956E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9773E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2692E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9773E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2692E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7816E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8030E-02 OP @@ -4830,7 +4830,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -5.4139E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.1524E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 2.9374E-04 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 1.9112E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 1.9112E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.9676E-10 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 2.1794E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.4200E-07 @@ -5147,8 +5147,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9667E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8995E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9645E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2382E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9645E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2382E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7788E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6562E-02 OP @@ -5993,7 +5993,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -7.7137E-08 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -6.1117E-07 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 1.5638E-07 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 7.4437E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 7.4437E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -1.9285E-08 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 9.9959E-08 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -7.1825E-08 @@ -6310,8 +6310,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9600E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8676E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9471E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1873E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9471E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1873E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7790E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5083E-02 OP @@ -7156,7 +7156,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.5874E-10 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -7.0445E-09 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 4.0051E-07 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 1.4231E-10 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 1.4231E-10 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -5.6338E-10 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 3.8021E-10 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -2.1321E-10 @@ -7473,8 +7473,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9644E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8858E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9508E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1836E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9508E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1836E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7872E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5242E-02 OP @@ -8319,7 +8319,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -8.8298E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.6561E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 3.7655E-07 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.7289E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.7289E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ 8.1912E-09 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 3.4642E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -8.6625E-08 @@ -8636,8 +8636,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9674E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9000E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9498E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1813E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9498E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1813E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7862E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6667E-02 OP @@ -9482,7 +9482,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.8347E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.3019E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 6.7123E-08 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 9.5743E-08 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 9.5743E-08 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ 2.0652E-08 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -1.1469E-08 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -6.9271E-07 @@ -9799,8 +9799,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9602E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8564E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9521E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1847E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9521E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1847E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8077E-02 OP @@ -10645,7 +10645,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.7863E-08 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -7.7700E-08 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 6.4469E-09 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.7281E-09 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.7281E-09 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -3.0400E-09 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -5.2765E-09 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.5415E-08 @@ -10962,8 +10962,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9743E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9158E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9576E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1905E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9576E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1905E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7946E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8348E-02 OP @@ -11808,7 +11808,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -7.2277E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.5913E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 3.3506E-06 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 5.5515E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 5.5515E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ 9.6315E-09 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 8.0210E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.3476E-07 @@ -12125,8 +12125,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9837E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0058E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9558E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1851E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9558E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1851E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7900E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6972E-02 OP @@ -12971,7 +12971,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -6.1107E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.1757E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ -1.5934E-05 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.1734E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.1734E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -9.9875E-10 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 3.6338E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -2.3810E-07 @@ -13288,8 +13288,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9823E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0074E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9518E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1733E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9518E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1733E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7896E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5548E-02 OP @@ -14134,7 +14134,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -3.5323E-08 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -1.0064E-07 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ -1.7649E-07 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 4.2442E-09 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 4.2442E-09 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ -3.9280E-09 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ -5.1050E-09 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -1.8063E-08 @@ -14451,8 +14451,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9938E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0607E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9571E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1764E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9571E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1764E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7957E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5780E-02 OP @@ -15297,7 +15297,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -2.6215E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.1735E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ 3.3676E-04 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.5009E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.5009E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ 1.4775E-09 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 4.1478E-07 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -7.9048E-07 @@ -15614,8 +15614,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0064E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1011E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9628E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.1990E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9628E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1990E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7926E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7314E-02 OP @@ -16460,7 +16460,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (normres017)__________________ -1.5498E-07 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (normres018)__________________ -2.3625E-05 CS_temperature_margin_lower_limit_normalised_residue____________________ (normres019)__________________ -1.3710E-04 - taup/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.7519E-07 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres020)__________________ 3.7519E-07 Dump_time_set_by_VV_stress________normalised_residue____________________ (normres021)__________________ 2.9548E-08 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 8.1857E-10 ne0_>_neped_______________________normalised_residue____________________ (normres023)__________________ -8.6256E-07 @@ -16777,8 +16777,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0193E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1467E+01 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.9687E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.2221E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9687E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2221E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8950E-02 OP @@ -17636,7 +17636,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 23c4dd9ab0..391bf24678 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -163,7 +163,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 2.1072E-13 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 9.0616E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -9.2149E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 7.0988E-13 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 7.0988E-13 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -350,8 +350,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -1158,7 +1158,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 6.4393E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.3700E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -4.4409E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7518E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7518E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -1345,8 +1345,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -2153,7 +2153,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 3.7748E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.2701E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -7.7716E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7296E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.7296E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -2340,8 +2340,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -3148,7 +3148,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 2.2204E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.1480E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -3.3307E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.5963E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.5963E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -3335,8 +3335,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -4143,7 +4143,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 5.7732E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 1.0392E-13 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -9.9920E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.8406E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.8406E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -4330,8 +4330,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -5138,7 +5138,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 6.8834E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 9.5257E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -1.2212E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9738E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9738E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -5325,8 +5325,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -6133,7 +6133,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 1.9984E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 8.0380E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -1.2212E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9516E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 4.9516E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -6320,8 +6320,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -7128,7 +7128,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 1.1102E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 7.8382E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -7.7716E-16 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.2847E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.2847E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -7315,8 +7315,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -8123,7 +8123,7 @@ CS_temperature_margin_lower_limit_normalised_residue____________________ (normres021)__________________ 4.2188E-15 CS_Tresca_yield_criterion_________normalised_residue____________________ (normres022)__________________ 6.8168E-14 Peak_toroidal_field_upper_limit___normalised_residue____________________ (normres023)__________________ -1.2212E-15 - taup/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.6399E-14 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (normres024)__________________ 5.6399E-14 # Final Feasible Point # # Plant Availability # Allowable_blanket_neutron_fluence_(MW-yr/m2)____________________________ (abktflnc)____________________ 1.5000E+01 @@ -8310,8 +8310,8 @@ Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 5.0000E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 41b631b88f..7c12e6c17f 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2958,7 +2958,7 @@ "NBshine-throughfracupperlimit", "CStemperaturemarginlowerlimit", "Minimumavailabilityvalue", - "taup/taueff", + "t_alpha_confinement/taueff", "numberofITER-likevacuumpumps", "Zefflimit", "DumptimesetbyVVstress", @@ -7431,7 +7431,7 @@ "taufall": 0.0, "taulimit": 5.0, "taumax": 10.0, - "taup": 0.0, + "t_alpha_confinement": 0.0, "tauratio": 1.0, "tauscl": [ "'Neo-Alcator      (ohmic)'", @@ -9636,7 +9636,7 @@ "fstrcond": "f-value for maxiumum TF coil conduit Tresca yield criterion\n (`constraint equation 32`, `iteration variable 49`)", "ftar": "fraction of power to the lower divertor in double null configuration\n (`i_single_null = 0` only) (default assumes SN)", "ftaucq": "f-value for calculated minimum TF quench time\n (`constraint equation 65`, `iteration variable 113`)", - "ftaulimit": "f-value for lower limit on taup/taueff the ratio of alpha particle to energy\n confinement times (`constraint equation 62`, `iteration variable 110`)", + "ftaulimit": "f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy\n confinement times (`constraint equation 62`, `iteration variable 110`)", "ftbr": "f-value for minimum tritium breeding ratio (`constraint equation 52`, `iteration variable 89`)", "ft_burn": "f-value for minimum burn time (`constraint equation 13`, `iteration variable 21`)", "ftcycl": "f-value for cycle time (`constraint equation 42`, `iteration variable 67`)", @@ -9960,10 +9960,10 @@ "ki": "", "kron": "", "ksic": "power fraction for outboard double-null scrape-off plasma", - "lablcc": "lablcc(ipeqns) : labels describing constraint equations (corresponding itvs)
              \n
              \n
            • ( 1) Beta (consistency equation) (itv 5)\n
            • ( 2) Global power balance (consistency equation) (itv 10,1,2,3,4,6,11)\n
            • ( 3) Ion power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
            • ( 4) Electron power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
            • ( 5) Density upper limit (itv 9,1,2,3,4,5,6)\n
            • ( 6) (Epsilon x beta poloidal) upper limit (itv 8,1,2,3,4,6)\n
            • ( 7) Beam ion density (NBI) (consistency equation) (itv 7)\n
            • ( 8) Neutron wall load upper limit (itv 14,1,2,3,4,6)\n
            • ( 9) Fusion power upper limit (itv 26,1,2,3,4,6)\n
            • (10) Toroidal field 1/R (consistency equation) (itv 12,1,2,3,13 )\n
            • (11) Radial build (consistency equation) (itv 3,1,13,16,29,42,61)\n
            • (12) Volt second lower limit (STEADY STATE) (itv 15,1,2,3)\n
            • (13) Burn time lower limit (PULSE) (itv 21,1,16,17,29,42,44,61)\n (itv 19,1,2,3,6)\n
            • (14) Neutral beam decay lengths to plasma centre (NBI) (consistency equation)\n
            • (15) LH power threshold limit (itv 103)\n
            • (16) Net electric power lower limit (itv 25,1,2,3)\n
            • (17) Radiation fraction upper limit (itv 28)\n
            • (18) Divertor heat load upper limit (itv 27)\n
            • (19) MVA upper limit (itv 30)\n
            • (20) Neutral beam tangency radius upper limit (NBI) (itv 33,31,3,13)\n
            • (21) Plasma minor radius lower limit (itv 32)\n
            • (22) Divertor collisionality upper limit (itv 34,43)\n
            • (23) Conducting shell to plasma minor radius ratio upper limit\n (itv 104,1,74)\n
            • (24) Beta upper limit (itv 36,1,2,3,4,6,18)\n
            • (25) Peak toroidal field upper limit (itv 35,3,13,29)\n
            • (26) Central solenoid EOF current density upper limit (ipfres=0)\n (itv 38,37,41,12)\n
            • (27) Central solenoid BOP current density upper limit (ipfres=0)\n (itv 39,37,41,12)\n
            • (28) Fusion gain Q lower limit (itv 45,47,40)\n
            • (29) Inboard radial build consistency (itv 3,1,13,16,29,42,61)\n
            • (30) Injection power upper limit (itv 46,47,11)\n
            • (31) TF coil case stress upper limit (SCTF) (itv 48,56,57,58,59,60,24)\n
            • (32) TF coil conduit stress upper limit (SCTF) (itv 49,56,57,58,59,60,24)\n
            • (33) I_op / I_critical (TF coil) (SCTF) (itv 50,56,57,58,59,60,24)\n
            • (34) Dump voltage upper limit (SCTF) (itv 51,52,56,57,58,59,60,24)\n
            • (35) J_winding pack/J_protection upper limit (SCTF) (itv 53,56,57,58,59,60,24)\n
            • (36) TF coil temperature margin lower limit (SCTF) (itv 54,55,56,57,58,59,60,24)\n
            • (37) Current drive gamma upper limit (itv 40,47)\n
            • (38) First wall coolant temperature rise upper limit (itv 62)\n
            • (39) First wall peak temperature upper limit (itv 63)\n
            • (40) Start-up injection power lower limit (PULSE) (itv 64)\n
            • (41) Plasma current ramp-up time lower limit (PULSE) (itv 66,65)\n
            • (42) Cycle time lower limit (PULSE) (itv 17,67,65)\n
            • (43) Average centrepost temperature\n (TART) (consistency equation) (itv 13,20,69,70)\n
            • (44) Peak centrepost temperature upper limit (TART) (itv 68,69,70)\n
            • (45) Edge safety factor lower limit (TART) (itv 71,1,2,3)\n
            • (46) Equation for Ip/Irod upper limit (TART) (itv 72,2,60)\n
            • (47) NOT USED\n
            • (48) Poloidal beta upper limit (itv 79,2,3,18)\n
            • (49) NOT USED\n
            • (50) IFE repetition rate upper limit (IFE)\n
            • (51) Startup volt-seconds consistency (PULSE) (itv 16,29,3,1)\n
            • (52) Tritium breeding ratio lower limit (itv 89,90,91)\n
            • (53) Neutron fluence on TF coil upper limit (itv 92,93,94)\n
            • (54) Peak TF coil nuclear heating upper limit (itv 95,93,94)\n
            • (55) Vacuum vessel helium concentration upper limit iblanket =2 (itv 96,93,94)\n
            • (56) Pseparatrix/Rmajor upper limit (itv 97,1,3)\n
            • (57) NOT USED\n
            • (58) NOT USED\n
            • (59) Neutral beam shine-through fraction upper limit (NBI) (itv 105,6,19,4 )\n
            • (60) Central solenoid temperature margin lower limit (SCTF) (itv 106)\n
            • (61) Minimum availability value (itv 107)\n
            • (62) taup/taueff the ratio of particle to energy confinement times (itv 110)\n
            • (63) The number of ITER-like vacuum pumps niterpump < tfno (itv 111)\n
            • (64) Zeff less than or equal to zeffmax (itv 112)\n
            • (65) Dump time set by VV loads (itv 56, 113)\n
            • (66) Limit on rate of change of energy in poloidal field\n (Use iteration variable 65(t_current_ramp_up), 115)\n
            • (67) Simple Radiation Wall load limit (itv 116, 4,6)\n
            • (68) Psep * Bt / qAR upper limit (itv 117)\n
            • (69) ensure separatrix power = the value from Kallenbach divertor (itv 118)\n
            • (70) ensure that teomp = separatrix temperature in the pedestal profile,\n (itv 119 (tesep))\n
            • (71) ensure that neomp = separatrix density (nesep) x neratio\n
            • (72) central solenoid shear stress limit (Tresca yield criterion) (itv 123 foh_stress)\n
            • (73) Psep >= Plh + Paux (itv 137 (fplhsep))\n
            • (74) TFC quench < tmax_croco (itv 141 (fcqt))\n
            • (75) TFC current/copper area < Maximum (itv 143 f_coppera_m2)\n
            • (76) Eich critical separatrix density\n
            • (77) TF coil current per turn upper limit\n
            • (78) Reinke criterion impurity fraction lower limit (itv 147 freinke)\n
            • (79) Peak CS field upper limit (itv 149 fbmaxcs)\n
            • (80) Divertor power lower limit pdivt (itv 153 fpdivlim)\n
            • (81) Ne(0) > ne(ped) constraint (itv 154 fne0)\n
            • (82) toroidalgap > tftort constraint (itv 171 ftoroidalgap)\n
            • (83) Radial build consistency for stellarators (itv 172 f_avspace)\n
            • (84) Lower limit for beta (itv 173 fbeta_min)\n
            • (85) Constraint for CP lifetime\n
            • (86) Constraint for TF coil turn dimension\n
            • (87) Constraint for cryogenic power\n
            • (88) Constraint for TF coil strain absolute value\n
            • (89) Constraint for CS coil quench protection\n
            • (90) Checking if the design point is ECRH ignitable (itv 164 fecrh_ignition)
            \n\n\n\n", + "lablcc": "lablcc(ipeqns) : labels describing constraint equations (corresponding itvs)
              \n
              \n
            • ( 1) Beta (consistency equation) (itv 5)\n
            • ( 2) Global power balance (consistency equation) (itv 10,1,2,3,4,6,11)\n
            • ( 3) Ion power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
            • ( 4) Electron power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
            • ( 5) Density upper limit (itv 9,1,2,3,4,5,6)\n
            • ( 6) (Epsilon x beta poloidal) upper limit (itv 8,1,2,3,4,6)\n
            • ( 7) Beam ion density (NBI) (consistency equation) (itv 7)\n
            • ( 8) Neutron wall load upper limit (itv 14,1,2,3,4,6)\n
            • ( 9) Fusion power upper limit (itv 26,1,2,3,4,6)\n
            • (10) Toroidal field 1/R (consistency equation) (itv 12,1,2,3,13 )\n
            • (11) Radial build (consistency equation) (itv 3,1,13,16,29,42,61)\n
            • (12) Volt second lower limit (STEADY STATE) (itv 15,1,2,3)\n
            • (13) Burn time lower limit (PULSE) (itv 21,1,16,17,29,42,44,61)\n (itv 19,1,2,3,6)\n
            • (14) Neutral beam decay lengths to plasma centre (NBI) (consistency equation)\n
            • (15) LH power threshold limit (itv 103)\n
            • (16) Net electric power lower limit (itv 25,1,2,3)\n
            • (17) Radiation fraction upper limit (itv 28)\n
            • (18) Divertor heat load upper limit (itv 27)\n
            • (19) MVA upper limit (itv 30)\n
            • (20) Neutral beam tangency radius upper limit (NBI) (itv 33,31,3,13)\n
            • (21) Plasma minor radius lower limit (itv 32)\n
            • (22) Divertor collisionality upper limit (itv 34,43)\n
            • (23) Conducting shell to plasma minor radius ratio upper limit\n (itv 104,1,74)\n
            • (24) Beta upper limit (itv 36,1,2,3,4,6,18)\n
            • (25) Peak toroidal field upper limit (itv 35,3,13,29)\n
            • (26) Central solenoid EOF current density upper limit (ipfres=0)\n (itv 38,37,41,12)\n
            • (27) Central solenoid BOP current density upper limit (ipfres=0)\n (itv 39,37,41,12)\n
            • (28) Fusion gain Q lower limit (itv 45,47,40)\n
            • (29) Inboard radial build consistency (itv 3,1,13,16,29,42,61)\n
            • (30) Injection power upper limit (itv 46,47,11)\n
            • (31) TF coil case stress upper limit (SCTF) (itv 48,56,57,58,59,60,24)\n
            • (32) TF coil conduit stress upper limit (SCTF) (itv 49,56,57,58,59,60,24)\n
            • (33) I_op / I_critical (TF coil) (SCTF) (itv 50,56,57,58,59,60,24)\n
            • (34) Dump voltage upper limit (SCTF) (itv 51,52,56,57,58,59,60,24)\n
            • (35) J_winding pack/J_protection upper limit (SCTF) (itv 53,56,57,58,59,60,24)\n
            • (36) TF coil temperature margin lower limit (SCTF) (itv 54,55,56,57,58,59,60,24)\n
            • (37) Current drive gamma upper limit (itv 40,47)\n
            • (38) First wall coolant temperature rise upper limit (itv 62)\n
            • (39) First wall peak temperature upper limit (itv 63)\n
            • (40) Start-up injection power lower limit (PULSE) (itv 64)\n
            • (41) Plasma current ramp-up time lower limit (PULSE) (itv 66,65)\n
            • (42) Cycle time lower limit (PULSE) (itv 17,67,65)\n
            • (43) Average centrepost temperature\n (TART) (consistency equation) (itv 13,20,69,70)\n
            • (44) Peak centrepost temperature upper limit (TART) (itv 68,69,70)\n
            • (45) Edge safety factor lower limit (TART) (itv 71,1,2,3)\n
            • (46) Equation for Ip/Irod upper limit (TART) (itv 72,2,60)\n
            • (47) NOT USED\n
            • (48) Poloidal beta upper limit (itv 79,2,3,18)\n
            • (49) NOT USED\n
            • (50) IFE repetition rate upper limit (IFE)\n
            • (51) Startup volt-seconds consistency (PULSE) (itv 16,29,3,1)\n
            • (52) Tritium breeding ratio lower limit (itv 89,90,91)\n
            • (53) Neutron fluence on TF coil upper limit (itv 92,93,94)\n
            • (54) Peak TF coil nuclear heating upper limit (itv 95,93,94)\n
            • (55) Vacuum vessel helium concentration upper limit iblanket =2 (itv 96,93,94)\n
            • (56) Pseparatrix/Rmajor upper limit (itv 97,1,3)\n
            • (57) NOT USED\n
            • (58) NOT USED\n
            • (59) Neutral beam shine-through fraction upper limit (NBI) (itv 105,6,19,4 )\n
            • (60) Central solenoid temperature margin lower limit (SCTF) (itv 106)\n
            • (61) Minimum availability value (itv 107)\n
            • (62) t_alpha_confinement/taueff the ratio of particle to energy confinement times (itv 110)\n
            • (63) The number of ITER-like vacuum pumps niterpump < tfno (itv 111)\n
            • (64) Zeff less than or equal to zeffmax (itv 112)\n
            • (65) Dump time set by VV loads (itv 56, 113)\n
            • (66) Limit on rate of change of energy in poloidal field\n (Use iteration variable 65(t_current_ramp_up), 115)\n
            • (67) Simple Radiation Wall load limit (itv 116, 4,6)\n
            • (68) Psep * Bt / qAR upper limit (itv 117)\n
            • (69) ensure separatrix power = the value from Kallenbach divertor (itv 118)\n
            • (70) ensure that teomp = separatrix temperature in the pedestal profile,\n (itv 119 (tesep))\n
            • (71) ensure that neomp = separatrix density (nesep) x neratio\n
            • (72) central solenoid shear stress limit (Tresca yield criterion) (itv 123 foh_stress)\n
            • (73) Psep >= Plh + Paux (itv 137 (fplhsep))\n
            • (74) TFC quench < tmax_croco (itv 141 (fcqt))\n
            • (75) TFC current/copper area < Maximum (itv 143 f_coppera_m2)\n
            • (76) Eich critical separatrix density\n
            • (77) TF coil current per turn upper limit\n
            • (78) Reinke criterion impurity fraction lower limit (itv 147 freinke)\n
            • (79) Peak CS field upper limit (itv 149 fbmaxcs)\n
            • (80) Divertor power lower limit pdivt (itv 153 fpdivlim)\n
            • (81) Ne(0) > ne(ped) constraint (itv 154 fne0)\n
            • (82) toroidalgap > tftort constraint (itv 171 ftoroidalgap)\n
            • (83) Radial build consistency for stellarators (itv 172 f_avspace)\n
            • (84) Lower limit for beta (itv 173 fbeta_min)\n
            • (85) Constraint for CP lifetime\n
            • (86) Constraint for TF coil turn dimension\n
            • (87) Constraint for cryogenic power\n
            • (88) Constraint for TF coil strain absolute value\n
            • (89) Constraint for CS coil quench protection\n
            • (90) Checking if the design point is ECRH ignitable (itv 164 fecrh_ignition)
            \n\n\n\n", "lablmm": "lablmm(ipnfoms) : labels describing figures of merit:
              \n
              \n
            • ( 1) major radius\n
            • ( 2) not used\n
            • ( 3) neutron wall load\n
            • ( 4) P_tf + P_pf\n
            • ( 5) fusion gain Q\n
            • ( 6) cost of electricity\n
            • ( 7) capital cost (direct cost if ireactor=0,\n constructed cost otherwise)\n
            • ( 8) aspect ratio\n
            • ( 9) divertor heat load\n
            • (10) toroidal field\n
            • (11) total injected power\n
            • (12) hydrogen plant capital cost OBSOLETE\n
            • (13) hydrogen production rate OBSOLETE\n
            • (14) pulse length\n
            • (15) plant availability factor (N.B. requires\n iavail=1 to be set)\n
            • (16) linear combination of major radius (minimised) and pulse length (maximised)\n note: FoM should be minimised only!\n
            • (17) net electrical output\n
            • (18) Null Figure of Merit\n
            • (19) linear combination of big Q and pulse length (maximised)\n note: FoM should be minimised only!
            \n\n\n", - "lablxc": "lablxc(ipnvars) : labels describing iteration variables
              \n
              \n
            • ( 1) aspect\n
            • ( 2) bt\n
            • ( 3) rmajor\n
            • ( 4) te\n
            • ( 5) beta\n
            • ( 6) dene\n
            • ( 7) f_nd_beam_electron\n
            • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
            • ( 9) fdene (f-value for equation 5)\n
            • (10) hfact\n
            • (11) pheat\n
            • (12) oacdcp\n
            • (13) dr_tf_inboard (NOT RECOMMENDED)\n
            • (14) fwalld (f-value for equation 8)\n
            • (15) fvs (f-value for equation 12)\n
            • (16) dr_cs\n
            • (17) tdwell\n
            • (18) q\n
            • (19) beam_energy\n
            • (20) tcpav\n
            • (21) ftburn (f-value for equation 13)\n
            • (22) NOT USED\n
            • (23) fcoolcp\n
            • (24) NOT USED\n
            • (25) fpnetel (f-value for equation 16)\n
            • (26) ffuspow (f-value for equation 9)\n
            • (27) fhldiv (f-value for equation 18)\n
            • (28) fradpwr (f-value for equation 17), total radiation fraction\n
            • (29) dr_bore\n
            • (30) fmva (f-value for equation 19)\n
            • (31) gapomin\n
            • (32) frminor (f-value for equation 21)\n
            • (33) fportsz (f-value for equation 20)\n
            • (34) fdivcol (f-value for equation 22)\n
            • (35) fpeakb (f-value for equation 25)\n
            • (36) fbeta_max (f-value for equation 24)\n
            • (37) coheof\n
            • (38) fjohc (f-value for equation 26)\n
            • (39) fjohc0 (f-value for equation 27)\n
            • (40) fgamcd (f-value for equation 37)\n
            • (41) fcohbop\n
            • (42) dr_cs_tf_gap\n
            • (43) NOT USED\n
            • (44) fvsbrnni\n
            • (45) fqval (f-value for equation 28)\n
            • (46) fpinj (f-value for equation 30)\n
            • (47) feffcd\n
            • (48) fstrcase (f-value for equation 31)\n
            • (49) fstrcond (f-value for equation 32)\n
            • (50) fiooic (f-value for equation 33)\n
            • (51) fvdump (f-value for equation 34)\n
            • (52) vdalw\n
            • (53) fjprot (f-value for equation 35)\n
            • (54) ftmargtf (f-value for equation 36)\n
            • (55) NOT USED\n
            • (56) tdmptf\n
            • (57) thkcas\n
            • (58) thwcndut\n
            • (59) fcutfsu\n
            • (60) cpttf\n
            • (61) dr_shld_vv_gap_inboard\n
            • (62) fdtmp (f-value for equation 38)\n
            • (63) ftpeak (f-value for equation 39)\n
            • (64) fauxmn (f-value for equation 40)\n
            • (65) tohs\n
            • (66) ftohs (f-value for equation 41)\n
            • (67) ftcycl (f-value for equation 42)\n
            • (68) fptemp (f-value for equation 44)\n
            • (69) rcool\n
            • (70) vcool\n
            • (71) fq (f-value for equation 45)\n
            • (72) fipir (f-value for equation 46)\n
            • (73) dr_fw_plasma_gap_inboard\n
            • (74) dr_fw_plasma_gap_outboard\n
            • (75) tfootfi\n
            • (76) NOT USED\n
            • (77) NOT USED\n
            • (78) NOT USED\n
            • (79) fbeta_poloidal (f-value for equation 48)\n
            • (80) NOT USED\n
            • (81) edrive\n
            • (82) drveff\n
            • (83) tgain\n
            • (84) chrad\n
            • (85) pdrive\n
            • (86) frrmax (f-value for equation 50)\n
            • (87) NOT USED\n
            • (88) NOT USED\n
            • (89) ftbr (f-value for equation 52)\n
            • (90) blbuith\n
            • (91) blbuoth\n
            • (92) fflutf (f-value for equation 53)\n
            • (93) dr_shld_inboard\n
            • (94) dr_shld_outboard\n
            • (95) fptfnuc (f-value for equation 54)\n
            • (96) fvvhe (f-value for equation 55)\n
            • (97) fpsepr (f-value for equation 56)\n
            • (98) li6enrich\n
            • (99) NOT USED\n
            • (100) NOT USED\n
            • (101) NOT USED\n
            • (102) fimpvar\n
            • (103) flhthresh (f-value for equation 15)\n
            • (104)fr_conducting_wall (f-value for equation 23)\n
            • (105) fnbshinef (f-value for equation 59)\n
            • (106) ftmargoh (f-value for equation 60)\n
            • (107) favail (f-value for equation 61)\n
            • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
            • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
            • (110) ftaulimit: Lower limit on taup/taueff the ratio of alpha\n
            • (111) fniterpump: f-value for constraint that number\n
            • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
            • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
            • (114) fw_channel_length: Length of a single first wall channel\n
            • (115) fpoloidalpower: f-value for max rate of change of\n
            • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
            • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
            • (118) fpsep: f-value to ensure separatrix power is less than\n
            • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
            • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
            • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
            • (122) oh_steel_frac : streel fraction of Central Solenoid\n
            • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
            • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
            • (125) fimp(3) : Beryllium density fraction relative to electron density\n
            • (126) fimp(4) : Carbon density fraction relative to electron density\n
            • (127) fimp(5) : Nitrogen fraction relative to electron density\n
            • (128) fimp(6) : Oxygen density fraction relative to electron density\n
            • (129) fimp(7) : Neon density fraction relative to electron density\n
            • (130) fimp(8) : Silicon density fraction relative to electron density\n
            • (131) fimp(9) : Argon density fraction relative to electron density\n
            • (132) fimp(10) : Iron density fraction relative to electron density\n
            • (133) fimp(11) : Nickel density fraction relative to electron density\n
            • (134) fimp(12) : Krypton density fraction relative to electron density\n
            • (135) fimp(13) : Xenon density fraction relative to electron density\n
            • (136) fimp(14) : Tungsten density fraction relative to electron density\n
            • (137) fplhsep (f-value for equation 73)\n
            • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
            • (139) copper_thick : thickness of copper layer in tape (m)\n
            • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
            • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
            • (142) nesep : electron density at separatrix [m-3]\n
            • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
            • (144) fnesep : Eich critical electron density at separatrix\n
            • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
            • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
            • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
            • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
            • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
            • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
            • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
            • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
            • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
            • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
            • (157) fvssu : F-value for available to required start up flux (con. 51)\n
            • (158) croco_thick : Thickness of CroCo copper tube (m)\n
            • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
            • (160) f_avspace (f-value for equation 83)\n
            • (161) fbeta_min (f-value for equation 84)\n
            • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
            • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
            • (164) f_crypmw : f-value for cryogenic plant power\n
            • (165) fstr_wp : f-value for TF coil strain absolute value\n
            • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
            • (167) fecrh_ignition: f-value for equation 90\n
            • (168) EMPTY : Description\n
            • (169) EMPTY : Description\n
            • (170) EMPTY : Description\n
            • (171) EMPTY : Description\n
            • (172) EMPTY : Description\n
            • (173) EMPTY : Description\n
            • (174) EMPTY : Description\n
            • (175) EMPTY : Description\n\n\n\n", - "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                \n
                \n
              • ( 1) aspect\n
              • ( 2) bt\n
              • ( 3) rmajor\n
              • ( 4) te\n
              • ( 5) beta\n
              • ( 6) dene\n
              • ( 7) f_nd_beam_electron\n
              • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
              • ( 9) fdene (f-value for equation 5)\n
              • (10) hfact\n
              • (11) pheat\n
              • (12) oacdcp\n
              • (13) dr_tf_inboard (NOT RECOMMENDED)\n
              • (14) fwalld (f-value for equation 8)\n
              • (15) fvs (f-value for equation 12)\n
              • (16) dr_cs\n
              • (17) t_between_pulse\n
              • (18) q\n
              • (19) beam_energy\n
              • (20) tcpav\n
              • (21) ft_burn (f-value for equation 13)\n
              • (22) NOT USED\n
              • (23) fcoolcp\n
              • (24) NOT USED\n
              • (25) fpnetel (f-value for equation 16)\n
              • (26) ffuspow (f-value for equation 9)\n
              • (27) fhldiv (f-value for equation 18)\n
              • (28) fradpwr (f-value for equation 17), total radiation fraction\n
              • (29) dr_bore\n
              • (30) fmva (f-value for equation 19)\n
              • (31) gapomin\n
              • (32) frminor (f-value for equation 21)\n
              • (33) fportsz (f-value for equation 20)\n
              • (34) fdivcol (f-value for equation 22)\n
              • (35) fpeakb (f-value for equation 25)\n
              • (36) fbeta_max (f-value for equation 24)\n
              • (37) coheof\n
              • (38) fjohc (f-value for equation 26)\n
              • (39) fjohc0 (f-value for equation 27)\n
              • (40) fgamcd (f-value for equation 37)\n
              • (41) fcohbop\n
              • (42) dr_cs_tf_gap\n
              • (43) NOT USED\n
              • (44) fvsbrnni\n
              • (45) fqval (f-value for equation 28)\n
              • (46) fpinj (f-value for equation 30)\n
              • (47) feffcd\n
              • (48) fstrcase (f-value for equation 31)\n
              • (49) fstrcond (f-value for equation 32)\n
              • (50) fiooic (f-value for equation 33)\n
              • (51) fvdump (f-value for equation 34)\n
              • (52) vdalw\n
              • (53) fjprot (f-value for equation 35)\n
              • (54) ftmargtf (f-value for equation 36)\n
              • (55) NOT USED\n
              • (56) tdmptf\n
              • (57) thkcas\n
              • (58) thwcndut\n
              • (59) fcutfsu\n
              • (60) cpttf\n
              • (61) dr_shld_vv_gap_inboard\n
              • (62) fdtmp (f-value for equation 38)\n
              • (63) ftpeak (f-value for equation 39)\n
              • (64) fauxmn (f-value for equation 40)\n
              • (65) t_current_ramp_up\n
              • (66) ft_current_ramp_up (f-value for equation 41)\n
              • (67) ftcycl (f-value for equation 42)\n
              • (68) fptemp (f-value for equation 44)\n
              • (69) rcool\n
              • (70) vcool\n
              • (71) fq (f-value for equation 45)\n
              • (72) fipir (f-value for equation 46)\n
              • (73) dr_fw_plasma_gap_inboard\n
              • (74) dr_fw_plasma_gap_outboard\n
              • (75) tfootfi\n
              • (76) NOT USED\n
              • (77) NOT USED\n
              • (78) NOT USED\n
              • (79) fbetap (f-value for equation 48)\n
              • (80) NOT USED\n
              • (81) edrive\n
              • (82) drveff\n
              • (83) tgain\n
              • (84) chrad\n
              • (85) pdrive\n
              • (86) frrmax (f-value for equation 50)\n
              • (87) NOT USED\n
              • (88) NOT USED\n
              • (89) ftbr (f-value for equation 52)\n
              • (90) blbuith\n
              • (91) blbuoth\n
              • (92) fflutf (f-value for equation 53)\n
              • (93) dr_shld_inboard\n
              • (94) dr_shld_outboard\n
              • (95) fptfnuc (f-value for equation 54)\n
              • (96) fvvhe (f-value for equation 55)\n
              • (97) fpsepr (f-value for equation 56)\n
              • (98) li6enrich\n
              • (99) NOT USED\n
              • (100) NOT USED\n
              • (101) NOT USED\n
              • (102) fimpvar\n
              • (103) flhthresh (f-value for equation 15)\n
              • (104)fr_conducting_wall (f-value for equation 23)\n
              • (105) fnbshinef (f-value for equation 59)\n
              • (106) ftmargoh (f-value for equation 60)\n
              • (107) favail (f-value for equation 61)\n
              • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
              • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
              • (110) ftaulimit: Lower limit on taup/taueff the ratio of alpha\n
              • (111) fniterpump: f-value for constraint that number\n
              • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
              • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
              • (114) fw_channel_length: Length of a single first wall channel\n
              • (115) fpoloidalpower: f-value for max rate of change of\n
              • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
              • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
              • (118) fpsep: f-value to ensure separatrix power is less than\n
              • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
              • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
              • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
              • (122) oh_steel_frac : streel fraction of Central Solenoid\n
              • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
              • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
              • (125) fimp(3) : Beryllium density fraction relative to electron density\n
              • (126) fimp(4) : Carbon density fraction relative to electron density\n
              • (127) fimp(5) : Nitrogen fraction relative to electron density\n
              • (128) fimp(6) : Oxygen density fraction relative to electron density\n
              • (129) fimp(7) : Neon density fraction relative to electron density\n
              • (130) fimp(8) : Silicon density fraction relative to electron density\n
              • (131) fimp(9) : Argon density fraction relative to electron density\n
              • (132) fimp(10) : Iron density fraction relative to electron density\n
              • (133) fimp(11) : Nickel density fraction relative to electron density\n
              • (134) fimp(12) : Krypton density fraction relative to electron density\n
              • (135) fimp(13) : Xenon density fraction relative to electron density\n
              • (136) fimp(14) : Tungsten density fraction relative to electron density\n
              • (137) fplhsep (f-value for equation 73)\n
              • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
              • (139) copper_thick : thickness of copper layer in tape (m)\n
              • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
              • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
              • (142) nesep : electron density at separatrix [m-3]\n
              • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
              • (144) fnesep : Eich critical electron density at separatrix\n
              • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
              • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
              • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
              • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
              • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
              • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
              • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
              • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
              • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
              • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
              • (157) fvssu : F-value for available to required start up flux (con. 51)\n
              • (158) croco_thick : Thickness of CroCo copper tube (m)\n
              • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
              • (160) f_avspace (f-value for equation 83)\n
              • (161) fbeta_min (f-value for equation 84)\n
              • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
              • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
              • (164) f_crypmw : f-value for cryogenic plant power\n
              • (165) fstr_wp : f-value for TF coil strain absolute value\n
              • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
              • (167) fecrh_ignition: f-value for equation 90\n
              • (168) EMPTY : Description\n
              • (169) EMPTY : Description\n
              • (170) EMPTY : Description\n
              • (171) EMPTY : Description\n
              • (172) EMPTY : Description\n
              • (173) EMPTY : Description\n
              • (174) EMPTY : Description\n
              • (175) EMPTY : Description\n\n\n\n", + "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                  \n
                  \n
                • ( 1) aspect\n
                • ( 2) bt\n
                • ( 3) rmajor\n
                • ( 4) te\n
                • ( 5) beta\n
                • ( 6) dene\n
                • ( 7) f_nd_beam_electron\n
                • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                • ( 9) fdene (f-value for equation 5)\n
                • (10) hfact\n
                • (11) pheat\n
                • (12) oacdcp\n
                • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                • (14) fwalld (f-value for equation 8)\n
                • (15) fvs (f-value for equation 12)\n
                • (16) dr_cs\n
                • (17) tdwell\n
                • (18) q\n
                • (19) beam_energy\n
                • (20) tcpav\n
                • (21) ftburn (f-value for equation 13)\n
                • (22) NOT USED\n
                • (23) fcoolcp\n
                • (24) NOT USED\n
                • (25) fpnetel (f-value for equation 16)\n
                • (26) ffuspow (f-value for equation 9)\n
                • (27) fhldiv (f-value for equation 18)\n
                • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                • (29) dr_bore\n
                • (30) fmva (f-value for equation 19)\n
                • (31) gapomin\n
                • (32) frminor (f-value for equation 21)\n
                • (33) fportsz (f-value for equation 20)\n
                • (34) fdivcol (f-value for equation 22)\n
                • (35) fpeakb (f-value for equation 25)\n
                • (36) fbeta_max (f-value for equation 24)\n
                • (37) coheof\n
                • (38) fjohc (f-value for equation 26)\n
                • (39) fjohc0 (f-value for equation 27)\n
                • (40) fgamcd (f-value for equation 37)\n
                • (41) fcohbop\n
                • (42) dr_cs_tf_gap\n
                • (43) NOT USED\n
                • (44) fvsbrnni\n
                • (45) fqval (f-value for equation 28)\n
                • (46) fpinj (f-value for equation 30)\n
                • (47) feffcd\n
                • (48) fstrcase (f-value for equation 31)\n
                • (49) fstrcond (f-value for equation 32)\n
                • (50) fiooic (f-value for equation 33)\n
                • (51) fvdump (f-value for equation 34)\n
                • (52) vdalw\n
                • (53) fjprot (f-value for equation 35)\n
                • (54) ftmargtf (f-value for equation 36)\n
                • (55) NOT USED\n
                • (56) tdmptf\n
                • (57) thkcas\n
                • (58) thwcndut\n
                • (59) fcutfsu\n
                • (60) cpttf\n
                • (61) dr_shld_vv_gap_inboard\n
                • (62) fdtmp (f-value for equation 38)\n
                • (63) ftpeak (f-value for equation 39)\n
                • (64) fauxmn (f-value for equation 40)\n
                • (65) tohs\n
                • (66) ftohs (f-value for equation 41)\n
                • (67) ftcycl (f-value for equation 42)\n
                • (68) fptemp (f-value for equation 44)\n
                • (69) rcool\n
                • (70) vcool\n
                • (71) fq (f-value for equation 45)\n
                • (72) fipir (f-value for equation 46)\n
                • (73) dr_fw_plasma_gap_inboard\n
                • (74) dr_fw_plasma_gap_outboard\n
                • (75) tfootfi\n
                • (76) NOT USED\n
                • (77) NOT USED\n
                • (78) NOT USED\n
                • (79) fbeta_poloidal (f-value for equation 48)\n
                • (80) NOT USED\n
                • (81) edrive\n
                • (82) drveff\n
                • (83) tgain\n
                • (84) chrad\n
                • (85) pdrive\n
                • (86) frrmax (f-value for equation 50)\n
                • (87) NOT USED\n
                • (88) NOT USED\n
                • (89) ftbr (f-value for equation 52)\n
                • (90) blbuith\n
                • (91) blbuoth\n
                • (92) fflutf (f-value for equation 53)\n
                • (93) dr_shld_inboard\n
                • (94) dr_shld_outboard\n
                • (95) fptfnuc (f-value for equation 54)\n
                • (96) fvvhe (f-value for equation 55)\n
                • (97) fpsepr (f-value for equation 56)\n
                • (98) li6enrich\n
                • (99) NOT USED\n
                • (100) NOT USED\n
                • (101) NOT USED\n
                • (102) fimpvar\n
                • (103) flhthresh (f-value for equation 15)\n
                • (104)fr_conducting_wall (f-value for equation 23)\n
                • (105) fnbshinef (f-value for equation 59)\n
                • (106) ftmargoh (f-value for equation 60)\n
                • (107) favail (f-value for equation 61)\n
                • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha\n
                • (111) fniterpump: f-value for constraint that number\n
                • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                • (114) fw_channel_length: Length of a single first wall channel\n
                • (115) fpoloidalpower: f-value for max rate of change of\n
                • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                • (118) fpsep: f-value to ensure separatrix power is less than\n
                • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                • (126) fimp(4) : Carbon density fraction relative to electron density\n
                • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                • (129) fimp(7) : Neon density fraction relative to electron density\n
                • (130) fimp(8) : Silicon density fraction relative to electron density\n
                • (131) fimp(9) : Argon density fraction relative to electron density\n
                • (132) fimp(10) : Iron density fraction relative to electron density\n
                • (133) fimp(11) : Nickel density fraction relative to electron density\n
                • (134) fimp(12) : Krypton density fraction relative to electron density\n
                • (135) fimp(13) : Xenon density fraction relative to electron density\n
                • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                • (137) fplhsep (f-value for equation 73)\n
                • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                • (139) copper_thick : thickness of copper layer in tape (m)\n
                • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                • (142) nesep : electron density at separatrix [m-3]\n
                • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                • (144) fnesep : Eich critical electron density at separatrix\n
                • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                • (160) f_avspace (f-value for equation 83)\n
                • (161) fbeta_min (f-value for equation 84)\n
                • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                • (164) f_crypmw : f-value for cryogenic plant power\n
                • (165) fstr_wp : f-value for TF coil strain absolute value\n
                • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                • (167) fecrh_ignition: f-value for equation 90\n
                • (168) EMPTY : Description\n
                • (169) EMPTY : Description\n
                • (170) EMPTY : Description\n
                • (171) EMPTY : Description\n
                • (172) EMPTY : Description\n
                • (173) EMPTY : Description\n
                • (174) EMPTY : Description\n
                • (175) EMPTY : Description\n\n\n\n", + "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                    \n
                    \n
                  • ( 1) aspect\n
                  • ( 2) bt\n
                  • ( 3) rmajor\n
                  • ( 4) te\n
                  • ( 5) beta\n
                  • ( 6) dene\n
                  • ( 7) f_nd_beam_electron\n
                  • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                  • ( 9) fdene (f-value for equation 5)\n
                  • (10) hfact\n
                  • (11) pheat\n
                  • (12) oacdcp\n
                  • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                  • (14) fwalld (f-value for equation 8)\n
                  • (15) fvs (f-value for equation 12)\n
                  • (16) dr_cs\n
                  • (17) t_between_pulse\n
                  • (18) q\n
                  • (19) beam_energy\n
                  • (20) tcpav\n
                  • (21) ft_burn (f-value for equation 13)\n
                  • (22) NOT USED\n
                  • (23) fcoolcp\n
                  • (24) NOT USED\n
                  • (25) fpnetel (f-value for equation 16)\n
                  • (26) ffuspow (f-value for equation 9)\n
                  • (27) fhldiv (f-value for equation 18)\n
                  • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                  • (29) dr_bore\n
                  • (30) fmva (f-value for equation 19)\n
                  • (31) gapomin\n
                  • (32) frminor (f-value for equation 21)\n
                  • (33) fportsz (f-value for equation 20)\n
                  • (34) fdivcol (f-value for equation 22)\n
                  • (35) fpeakb (f-value for equation 25)\n
                  • (36) fbeta_max (f-value for equation 24)\n
                  • (37) coheof\n
                  • (38) fjohc (f-value for equation 26)\n
                  • (39) fjohc0 (f-value for equation 27)\n
                  • (40) fgamcd (f-value for equation 37)\n
                  • (41) fcohbop\n
                  • (42) dr_cs_tf_gap\n
                  • (43) NOT USED\n
                  • (44) fvsbrnni\n
                  • (45) fqval (f-value for equation 28)\n
                  • (46) fpinj (f-value for equation 30)\n
                  • (47) feffcd\n
                  • (48) fstrcase (f-value for equation 31)\n
                  • (49) fstrcond (f-value for equation 32)\n
                  • (50) fiooic (f-value for equation 33)\n
                  • (51) fvdump (f-value for equation 34)\n
                  • (52) vdalw\n
                  • (53) fjprot (f-value for equation 35)\n
                  • (54) ftmargtf (f-value for equation 36)\n
                  • (55) NOT USED\n
                  • (56) tdmptf\n
                  • (57) thkcas\n
                  • (58) thwcndut\n
                  • (59) fcutfsu\n
                  • (60) cpttf\n
                  • (61) dr_shld_vv_gap_inboard\n
                  • (62) fdtmp (f-value for equation 38)\n
                  • (63) ftpeak (f-value for equation 39)\n
                  • (64) fauxmn (f-value for equation 40)\n
                  • (65) t_current_ramp_up\n
                  • (66) ft_current_ramp_up (f-value for equation 41)\n
                  • (67) ftcycl (f-value for equation 42)\n
                  • (68) fptemp (f-value for equation 44)\n
                  • (69) rcool\n
                  • (70) vcool\n
                  • (71) fq (f-value for equation 45)\n
                  • (72) fipir (f-value for equation 46)\n
                  • (73) dr_fw_plasma_gap_inboard\n
                  • (74) dr_fw_plasma_gap_outboard\n
                  • (75) tfootfi\n
                  • (76) NOT USED\n
                  • (77) NOT USED\n
                  • (78) NOT USED\n
                  • (79) fbetap (f-value for equation 48)\n
                  • (80) NOT USED\n
                  • (81) edrive\n
                  • (82) drveff\n
                  • (83) tgain\n
                  • (84) chrad\n
                  • (85) pdrive\n
                  • (86) frrmax (f-value for equation 50)\n
                  • (87) NOT USED\n
                  • (88) NOT USED\n
                  • (89) ftbr (f-value for equation 52)\n
                  • (90) blbuith\n
                  • (91) blbuoth\n
                  • (92) fflutf (f-value for equation 53)\n
                  • (93) dr_shld_inboard\n
                  • (94) dr_shld_outboard\n
                  • (95) fptfnuc (f-value for equation 54)\n
                  • (96) fvvhe (f-value for equation 55)\n
                  • (97) fpsepr (f-value for equation 56)\n
                  • (98) li6enrich\n
                  • (99) NOT USED\n
                  • (100) NOT USED\n
                  • (101) NOT USED\n
                  • (102) fimpvar\n
                  • (103) flhthresh (f-value for equation 15)\n
                  • (104)fr_conducting_wall (f-value for equation 23)\n
                  • (105) fnbshinef (f-value for equation 59)\n
                  • (106) ftmargoh (f-value for equation 60)\n
                  • (107) favail (f-value for equation 61)\n
                  • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                  • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                  • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha\n
                  • (111) fniterpump: f-value for constraint that number\n
                  • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                  • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                  • (114) fw_channel_length: Length of a single first wall channel\n
                  • (115) fpoloidalpower: f-value for max rate of change of\n
                  • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                  • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                  • (118) fpsep: f-value to ensure separatrix power is less than\n
                  • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                  • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                  • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                  • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                  • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                  • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                  • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                  • (126) fimp(4) : Carbon density fraction relative to electron density\n
                  • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                  • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                  • (129) fimp(7) : Neon density fraction relative to electron density\n
                  • (130) fimp(8) : Silicon density fraction relative to electron density\n
                  • (131) fimp(9) : Argon density fraction relative to electron density\n
                  • (132) fimp(10) : Iron density fraction relative to electron density\n
                  • (133) fimp(11) : Nickel density fraction relative to electron density\n
                  • (134) fimp(12) : Krypton density fraction relative to electron density\n
                  • (135) fimp(13) : Xenon density fraction relative to electron density\n
                  • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                  • (137) fplhsep (f-value for equation 73)\n
                  • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                  • (139) copper_thick : thickness of copper layer in tape (m)\n
                  • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                  • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                  • (142) nesep : electron density at separatrix [m-3]\n
                  • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                  • (144) fnesep : Eich critical electron density at separatrix\n
                  • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                  • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                  • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                  • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                  • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                  • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                  • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                  • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                  • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                  • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                  • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                  • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                  • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                  • (160) f_avspace (f-value for equation 83)\n
                  • (161) fbeta_min (f-value for equation 84)\n
                  • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                  • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                  • (164) f_crypmw : f-value for cryogenic plant power\n
                  • (165) fstr_wp : f-value for TF coil strain absolute value\n
                  • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                  • (167) fecrh_ignition: f-value for equation 90\n
                  • (168) EMPTY : Description\n
                  • (169) EMPTY : Description\n
                  • (170) EMPTY : Description\n
                  • (171) EMPTY : Description\n
                  • (172) EMPTY : Description\n
                  • (173) EMPTY : Description\n
                  • (174) EMPTY : Description\n
                  • (175) EMPTY : Description\n\n\n\n", "lambda_EU": "Decay length in EUROFER [cm]", "lambda_He_VV": "Decay length [cm]", "lambda_n_BZ_IB": "Decay length in IB BZ [cm]", @@ -10736,9 +10736,9 @@ "taueff": "global thermal energy confinement time (sec)", "tauei": "ion energy confinement time (sec)", "taufall": "Lithium Fall Time (s)", - "taulimit": "Lower limit on taup/taueff the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", + "taulimit": "Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", "taumax": "Maximum allowed energy confinement time (s)", - "taup": "alpha particle confinement time (sec)", + "t_alpha_confinement": "alpha particle confinement time (sec)", "tauratio": "tauratio /1.0/ : ratio of He and pellet particle confinement times", "tauscl": "tauscl(ipnlaws) : labels describing energy confinement scaling laws:
                      \n \n
                    • ( 1) Neo-Alcator (ohmic)\n
                    • ( 2) Mirnov (H-mode)\n
                    • ( 3) Merezkhin-Muhkovatov (L-mode)\n
                    • ( 4) Shimomura (H-mode)\n
                    • ( 5) Kaye-Goldston (L-mode)\n
                    • ( 6) ITER 89-P (L-mode)\n
                    • ( 7) ITER 89-O (L-mode)\n
                    • ( 8) Rebut-Lallia (L-mode)\n
                    • ( 9) Goldston (L-mode)\n
                    • (10) T10 (L-mode)\n
                    • (11) JAERI-88 (L-mode)\n
                    • (12) Kaye-Big Complex (L-mode)\n
                    • (13) ITER H90-P (H-mode)\n
                    • (14) ITER Mix (L-mode)\n
                    • (15) Riedel (L-mode)\n
                    • (16) Christiansen (L-mode)\n
                    • (17) Lackner-Gottardi (L-mode)\n
                    • (18) Neo-Kaye (L-mode)\n
                    • (19) Riedel (H-mode)\n
                    • (20) ITER H90-P amended (H-mode)\n
                    • (21) LHD (stellarator)\n
                    • (22) Gyro-reduced Bohm (stellarator)\n
                    • (23) Lackner-Gottardi (stellarator)\n
                    • (24) ITER-93H (H-mode)\n
                    • (25) OBSOLETE\n
                    • (26) ITER H-97P ELM-free (H-mode)\n
                    • (27) ITER H-97P ELMy (H-mode)\n
                    • (28) ITER-96P (=ITER-97L) (L-mode)\n
                    • (29) Valovic modified ELMy (H-mode)\n
                    • (30) Kaye PPPL April 98 (L-mode)\n
                    • (31) ITERH-PB98P(y) (H-mode)\n
                    • (32) IPB98(y) (H-mode)\n
                    • (33) IPB98(y,1) (H-mode)\n
                    • (34) IPB98(y,2) (H-mode)\n
                    • (35) IPB98(y,3) (H-mode)\n
                    • (36) IPB98(y,4) (H-mode)\n
                    • (37) ISS95 (stellarator)\n
                    • (38) ISS04 (stellarator)\n
                    • (39) DS03 (H-mode)\n
                    • (40) Murari et al non-power law (H-mode)\n
                    • (41) Petty 2008 (H-mode)\n
                    • (42) Lang et al. 2012 (H-mode)\n
                    • (43) Hubbard 2017 (I-mode) - nominal\n
                    • (44) Hubbard 2017 (I-mode) - lower bound\n
                    • (45) Hubbard 2017 (I-mode) - upper bound\n
                    • (46) NSTX (H-mode; Spherical tokamak)\n
                    • (47) NSTX-Petty08 Hybrid (H-mode)\n
                    • (48) Use input tauee_in
                    \n\n\n", "tbeamin": "permitted neutral beam e-decay lengths to plasma centre", @@ -11450,7 +11450,7 @@ "name": "Minimum availability value" }, "62": { - "name": "taup" + "name": "t_alpha_confinement" }, "63": { "name": "The number of ITER" @@ -19257,7 +19257,7 @@ "tauee_in", "taueff", "tauei", - "taup", + "t_alpha_confinement", "te", "te0", "ten", diff --git a/tests/regression/input_files/large_tokamak.IN.DAT b/tests/regression/input_files/large_tokamak.IN.DAT index f474331ed8..29980b92ec 100644 --- a/tests/regression/input_files/large_tokamak.IN.DAT +++ b/tests/regression/input_files/large_tokamak.IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/regression/input_files/large_tokamak_nof.IN.DAT b/tests/regression/input_files/large_tokamak_nof.IN.DAT index 7c98ef9aac..e27c493af9 100644 --- a/tests/regression/input_files/large_tokamak_nof.IN.DAT +++ b/tests/regression/input_files/large_tokamak_nof.IN.DAT @@ -113,7 +113,7 @@ tmargmin = 1.5 icc = 60 tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 taulimit = 5.0 diff --git a/tests/regression/input_files/large_tokamak_once_through.IN.DAT b/tests/regression/input_files/large_tokamak_once_through.IN.DAT index b883a67a50..642722fb56 100644 --- a/tests/regression/input_files/large_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/large_tokamak_once_through.IN.DAT @@ -28,7 +28,7 @@ icc = 34 * Dump voltage upper limit icc = 35 * J_winding pack icc = 36 * TF coil temperature margin lower limit icc = 60 * Central solenoid temperature margin lower limit -icc = 62 * taup +icc = 62 * t_alpha_confinement icc = 65 * Dump time set by VV loads icc = 72 * central solenoid shear stress limit icc = 81 * Ne @@ -143,7 +143,7 @@ powfmax = 3000 * maximum fusion power (MW) (`constraint equation 9`) psepbqarmax = 10.0 * maximum ratio of Psep*Bt/qAR (MWT/m) (`constraint equation 68`) t_burn_min = 7200.0 * minimum burn time (s) (KE - no longer itv;; see issue #706) walalw = 2.0 * allowable neutron wall-load (MW/m2) (`constraint equation 8`) -taulimit = 5.0 * Lower limit on taup/taueff the ratio of alpha particle to energy confinement +taulimit = 5.0 * Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement *-------------------Constraints--------------------* diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index cfcf294bc3..a5bf624376 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -451,15 +451,15 @@ boundu(21) = 10.0 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ icc = 62 -* DESCRIPTION: taup/taueff ratio of particle to energy confinement times +* DESCRIPTION: t_alpha_confinement/taueff ratio of particle to energy confinement times * JUSTIFICATION: Used to constrain helium fraction -* VARIABLES: taueff,taup calculated in-situ +* VARIABLES: taueff,t_alpha_confinement calculated in-situ ixc = 110 ftaulimit = 1.0 boundl(110) = 0.01 boundu(110) = 1.0 -* DESCRIPTION: f-value for lower limit on taup/taueff the ratio of alpha particle to energy confinement times +* DESCRIPTION: f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times * JUSTIFICATION: Calculate He fraction consistent with tau ratio taulimit = 5.0 diff --git a/tests/unit/data/large_tokamak_IN.DAT b/tests/unit/data/large_tokamak_IN.DAT index a506f48517..85bcd2866f 100644 --- a/tests/unit/data/large_tokamak_IN.DAT +++ b/tests/unit/data/large_tokamak_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index ca1f8e51bd..bb02fafd1f 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -173,7 +173,7 @@ J_winding_pack/J_protection_limit_normalised_residue____________________ (eq_con035)___________________ 2.5260E-08 TF_coil_temp._margin_lower_limit__normalised_residue____________________ (eq_con036)___________________ -5.6001E-07 CS_temperature_margin_lower_limit_normalised_residue____________________ (eq_con060)___________________ 2.0134E-08 - taup/taueff_______________________normalised_residue____________________ (eq_con062)___________________ 8.9807E-09 + t_alpha_confinement/taueff_______________________normalised_residue____________________ (eq_con062)___________________ 8.9807E-09 Dump_time_set_by_VV_stress________normalised_residue____________________ (eq_con065)___________________ -2.4337E-07 CS_Tresca_yield_criterion_________normalised_residue____________________ (eq_con072)___________________ 9.6351E-09 ne0_>_neped_______________________normalised_residue____________________ (eq_con081)___________________ -4.2434E-10 @@ -490,8 +490,8 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 - Alpha_particle_confinement_time_(s)_____________________________________ (taup)________________________ 2.2016E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (taup/taueff)_________________ 6.8629E+00 + Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 + Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.8629E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP @@ -1342,7 +1342,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on taup/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 1efcf076e1..d31079a6ad 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -1866,7 +1866,7 @@ class PhyauxParam(NamedTuple): expected_rndfuel: Any = None - expected_taup: Any = None + expected_t_alpha_confinement: Any = None @pytest.mark.parametrize( @@ -1891,7 +1891,7 @@ class PhyauxParam(NamedTuple): expected_fusrat=3.7484146722826997e20, expected_qfuel=1.8389516394951276e21, expected_rndfuel=3.7484146722826997e20, - expected_taup=37.993985551650177, + expected_t_alpha_confinement=37.993985551650177, ), PhyauxParam( tauratio=1, @@ -1912,7 +1912,7 @@ class PhyauxParam(NamedTuple): expected_fusrat=3.7467489360461772e20, expected_qfuel=1.8378092331723546e21, expected_rndfuel=3.7467489360461772e20, - expected_taup=38.010876984618747, + expected_t_alpha_confinement=38.010876984618747, ), ), ) @@ -1933,7 +1933,7 @@ def test_phyaux(phyauxparam, monkeypatch, physics): monkeypatch.setattr(physics_variables, "burnup_in", phyauxparam.burnup_in) - burnup, dntau, figmer, fusrat, qfuel, rndfuel, taup = physics.phyaux( + burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement = physics.phyaux( aspect=phyauxparam.aspect, dene=phyauxparam.dene, nd_fuel_ions=phyauxparam.nd_fuel_ions, @@ -1958,7 +1958,9 @@ def test_phyaux(phyauxparam, monkeypatch, physics): assert rndfuel == pytest.approx(phyauxparam.expected_rndfuel) - assert taup == pytest.approx(phyauxparam.expected_taup) + assert t_alpha_confinement == pytest.approx( + phyauxparam.expected_t_alpha_confinement + ) def test_rether(): From bd936a0b4a1dd29c7d129810ba792e61cc1408a5 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 14:51:32 +0000 Subject: [PATCH 056/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20tauei=20to=20t?= =?UTF-8?q?=5Fion=5Fconfinement=20for=20clarity=20and=20update=20related?= =?UTF-8?q?=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 ++++----- process/physics.py | 18 ++++----- process/stellarator.py | 4 +- source/fortran/physics_variables.f90 | 4 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++++------- tests/integration/data/scan_MFILE.DAT | 18 ++++----- tests/integration/ref_dicts.json | 6 +-- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 40 ++++++++++--------- 19 files changed, 81 insertions(+), 79 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index b745e3f783..e8a78239b4 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -490,7 +490,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1808E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2379E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2379E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2379E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2379E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.6225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2095E+21 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index dfa66570d6..77e592d1fa 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 09a4fc909f..90403382fa 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index dd067217d8..f838b10b3d 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 3610abc709..f1aa781377 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index dcb4c3bf89..1b02ede5ba 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -343,7 +343,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -1338,7 +1338,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -2333,7 +2333,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -3328,7 +3328,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -4323,7 +4323,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -5318,7 +5318,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -6313,7 +6313,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -7308,7 +7308,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -8303,7 +8303,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP diff --git a/process/physics.py b/process/physics.py index 31a781857f..2fbf142ab8 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2253,7 +2253,7 @@ def physics(self): physics_variables.ptripv, physics_variables.tauee, physics_variables.taueff, - physics_variables.tauei, + physics_variables.t_ion_confinement, physics_variables.powerht, ) = self.calculate_confinement_time( physics_variables.m_fuel_amu, @@ -5205,8 +5205,8 @@ def outplas(self): po.ovarrf( self.outfile, "Ion energy confinement time (s)", - "(tauei)", - physics_variables.tauei, + "(t_ion_confinement)", + physics_variables.t_ion_confinement, "OP ", ) po.ovarrf( @@ -6746,7 +6746,7 @@ def calculate_confinement_time( ptripv : output real : ion transport power (MW/m3) tauee : output real : electron energy confinement time (s) taueff : output real : global energy confinement time (s) - tauei : output real : ion energy confinement time (s) + t_ion_confinement : output real : ion energy confinement time (s) powerht : output real : heating power (MW) assumed in calculation This subroutine calculates the energy confinement time using one of a large number of scaling laws, and the @@ -6779,7 +6779,7 @@ def calculate_confinement_time( / ((np.sqrt(tin)) * (bt**2)) ) str2 = 2.0e0 * (kappa**2) / (1.0e0 + (kappa**2)) - tauei = 0.375e0 * rminor**2 / chii * str2 + t_ion_confinement = 0.375e0 * rminor**2 / chii * str2 # ======================================================================== @@ -7521,22 +7521,22 @@ def calculate_confinement_time( # Ion energy confinement time # N.B. Overwrites earlier calculation above - tauei = tauee + t_ion_confinement = tauee # Calculation of the transport power loss terms # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV # (here, tin and ten are in keV, and ptrepv and ptripv are in MW/m3) - ptripv = 2.403e-22 * nd_ions_total * tin / tauei + ptripv = 2.403e-22 * nd_ions_total * tin / t_ion_confinement ptrepv = 2.403e-22 * dene * ten / tauee ratio = nd_ions_total / dene * tin / ten # Global energy confinement time - taueff = (ratio + 1.0e0) / (ratio / tauei + 1.0e0 / tauee) + taueff = (ratio + 1.0e0) / (ratio / t_ion_confinement + 1.0e0 / tauee) - return kappaa, ptrepv, ptripv, tauee, tauei, taueff, powerht + return kappaa, ptrepv, ptripv, tauee, t_ion_confinement, taueff, powerht def calculate_poloidal_beta(btot, bp, beta): diff --git a/process/stellarator.py b/process/stellarator.py index 3037ed6576..f23258bc6e 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -217,7 +217,7 @@ def stigma(self): physics_variables.ptrepv, physics_variables.ptripv, physics_variables.tauee, - physics_variables.tauei, + physics_variables.t_ion_confinement, physics_variables.taueff, physics_variables.powerht, ) = self.physics.calculate_confinement_time( @@ -4458,7 +4458,7 @@ def stphys(self, output): physics_variables.ptrepv, physics_variables.ptripv, physics_variables.tauee, - physics_variables.tauei, + physics_variables.t_ion_confinement, physics_variables.taueff, physics_variables.powerht, ) = self.physics.calculate_confinement_time( diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 49f7b19a2d..afde627a19 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -826,7 +826,7 @@ module physics_variables real(dp) :: taueff !! global thermal energy confinement time (sec) - real(dp) :: tauei + real(dp) :: t_ion_confinement !! ion energy confinement time (sec) real(dp) :: t_alpha_confinement @@ -1100,7 +1100,7 @@ subroutine init_physics_variables tauee = 0.0D0 tauee_in = 0.0D0 taueff = 0.0D0 - tauei = 0.0D0 + t_ion_confinement = 0.0D0 t_alpha_confinement = 0.0D0 te = 12.9D0 te0 = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index f16caa1929..31238408c0 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index fd31031747..aa5ea3dd97 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 3b709c7f58..d0e83e4a0f 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 9c1f4048d9..30d7ff08a9 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index a6c7df24f2..41694d7ec7 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -482,7 +482,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7733E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2080E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2080E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index f5e2af2174..1e842f916c 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -488,7 +488,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1671E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1609E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1609E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1609E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1609E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5403E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0737E+21 OP @@ -1651,7 +1651,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1660E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1472E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1472E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1472E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1472E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5390E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0722E+21 OP @@ -2814,7 +2814,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1665E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1421E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1421E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1421E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1421E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5425E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0764E+21 OP @@ -3977,7 +3977,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1778E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1540E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1540E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1540E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1540E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5409E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0999E+21 OP @@ -5140,7 +5140,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1743E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1491E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1491E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1491E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1491E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5361E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0940E+21 OP @@ -6303,7 +6303,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1735E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1469E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1469E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1469E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1469E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5258E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0815E+21 OP @@ -7466,7 +7466,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1842E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1547E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1547E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1547E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1547E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5216E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1016E+21 OP @@ -8629,7 +8629,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1867E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1544E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1544E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1544E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1544E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5240E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1045E+21 OP @@ -9792,7 +9792,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1917E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1563E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1563E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1563E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1563E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5211E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1009E+21 OP @@ -10955,7 +10955,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1622E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1622E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1622E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1622E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1279E+21 OP @@ -12118,7 +12118,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1940E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1621E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1621E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1621E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1621E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5304E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1377E+21 OP @@ -13281,7 +13281,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1912E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1617E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1617E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1617E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1617E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5280E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1347E+21 OP @@ -14444,7 +14444,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1687E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1687E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1687E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1687E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5289E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1612E+21 OP @@ -15607,7 +15607,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1663E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1663E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1663E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1663E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5365E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1706E+21 OP @@ -16770,7 +16770,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1640E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.1640E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1640E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1640E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5446E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1807E+21 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 391bf24678..d166ec3575 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -343,7 +343,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -1338,7 +1338,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -2333,7 +2333,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -3328,7 +3328,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -4323,7 +4323,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -5318,7 +5318,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -6313,7 +6313,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -7308,7 +7308,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP @@ -8303,7 +8303,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 7c12e6c17f..41a2d0d4e7 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7427,7 +7427,7 @@ "tauee": 0.0, "tauee_in": 0.0, "taueff": 0.0, - "tauei": 0.0, + "t_ion_confinement": 0.0, "taufall": 0.0, "taulimit": 5.0, "taumax": 10.0, @@ -10734,7 +10734,7 @@ "tauee": "electron energy confinement time (sec)", "tauee_in": "Input electron energy confinement time (sec) (`i_confinement_time=48 only`)", "taueff": "global thermal energy confinement time (sec)", - "tauei": "ion energy confinement time (sec)", + "t_ion_confinement": "ion energy confinement time (sec)", "taufall": "Lithium Fall Time (s)", "taulimit": "Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", "taumax": "Maximum allowed energy confinement time (s)", @@ -19256,7 +19256,7 @@ "tauee", "tauee_in", "taueff", - "tauei", + "t_ion_confinement", "t_alpha_confinement", "te", "te0", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index bb02fafd1f..ccf6351c02 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -482,7 +482,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7733E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2080E+00 - Ion_energy_confinement_time_(s)_________________________________________ (tauei)_______________________ 3.2080E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index d31079a6ad..467c297f90 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2242,7 +2242,7 @@ class ConfinementTimeParam(NamedTuple): expected_taueff: Any = None - expected_tauei: Any = None + expected_t_ion_confinement: Any = None @pytest.mark.parametrize( @@ -2288,7 +2288,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.012570664670798823, expected_ptripv=0.011156836223364355, expected_tauee=21.17616899712392, - expected_tauei=21.17616899712392, + expected_t_ion_confinement=21.17616899712392, expected_taueff=21.17616899712392, expected_powerht=290.18368660937881, ), @@ -2332,7 +2332,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.081458458765440875, expected_ptripv=0.072296788376262536, expected_tauee=3.2679051814806361, - expected_tauei=3.2679051814806361, + expected_t_ion_confinement=3.2679051814806361, expected_taueff=3.2679051814806366, expected_powerht=290.18368660937881, ), @@ -2376,7 +2376,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.081327750398391824, expected_ptripv=0.072180780839479111, expected_tauee=3.2731572946627923, - expected_tauei=3.2731572946627923, + expected_t_ion_confinement=3.2731572946627923, expected_taueff=3.2731572946627923, expected_powerht=290.18368660937881, ), @@ -2420,7 +2420,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.12077931279593926, expected_ptripv=0.10719520783694242, expected_tauee=2.2040075681235445, - expected_tauei=2.2040075681235445, + expected_t_ion_confinement=2.2040075681235445, expected_taueff=2.2040075681235445, expected_powerht=290.18368660937881, ), @@ -2464,7 +2464,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.081309182573405442, expected_ptripv=0.072164301346324039, expected_tauee=3.2739047552801135, - expected_tauei=3.2739047552801135, + expected_t_ion_confinement=3.2739047552801135, expected_taueff=3.2739047552801135, expected_powerht=290.18368660937881, ), @@ -2508,7 +2508,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08142612910014517, expected_ptripv=0.072268094843318462, expected_tauee=3.269202679985145, - expected_tauei=3.269202679985145, + expected_t_ion_confinement=3.269202679985145, expected_taueff=3.2692026799851455, expected_powerht=290.18368660937881, ), @@ -2552,7 +2552,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.072709146314778414, expected_ptripv=0.064531515128155068, expected_tauee=3.6611421391548524, - expected_tauei=3.6611421391548524, + expected_t_ion_confinement=3.6611421391548524, expected_taueff=3.6611421391548529, expected_powerht=290.18368660937881, ), @@ -2596,7 +2596,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.078529089520063822, expected_ptripv=0.069696886639614319, expected_tauee=3.3898077909969717, - expected_tauei=3.3898077909969717, + expected_t_ion_confinement=3.3898077909969717, expected_taueff=3.3898077909969717, expected_powerht=290.18368660937881, ), @@ -2640,7 +2640,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08399287091443618, expected_ptripv=0.07454615402313478, expected_tauee=3.169298972363837, - expected_tauei=3.169298972363837, + expected_t_ion_confinement=3.169298972363837, expected_taueff=3.169298972363837, expected_powerht=290.18368660937881, ), @@ -2684,7 +2684,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.0831039731066564, expected_ptripv=0.07375723096135396, expected_tauee=3.203198469625145, - expected_tauei=3.203198469625145, + expected_t_ion_confinement=3.203198469625145, expected_taueff=3.203198469625145, expected_powerht=290.18368660937881, ), @@ -2728,7 +2728,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.073097992274882811, expected_ptripv=0.064876627403966491, expected_tauee=3.6416666339340682, - expected_tauei=3.6416666339340682, + expected_t_ion_confinement=3.6416666339340682, expected_taueff=3.6416666339340686, expected_powerht=290.18368660937881, ), @@ -2772,7 +2772,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.081423406537449478, expected_ptripv=0.072265678488503571, expected_tauee=3.2693119926464509, - expected_tauei=3.2693119926464509, + expected_t_ion_confinement=3.2693119926464509, expected_taueff=3.2693119926464513, expected_powerht=290.18368660937881, ), @@ -2816,7 +2816,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.081419881443596701, expected_ptripv=0.072262549863580605, expected_tauee=3.2694535383156871, - expected_tauei=3.2694535383156871, + expected_t_ion_confinement=3.2694535383156871, expected_taueff=3.2694535383156871, expected_powerht=290.18368660937881, ), @@ -2860,7 +2860,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.081421142032658531, expected_ptripv=0.072263668673609824, expected_tauee=3.2694029195542003, - expected_tauei=3.2694029195542003, + expected_t_ion_confinement=3.2694029195542003, expected_taueff=3.2694029195542003, expected_powerht=290.18368660937881, ), @@ -2904,7 +2904,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.079599509500323962, expected_ptripv=0.070646915991500636, expected_tauee=3.3442231132583498, - expected_tauei=3.3442231132583498, + expected_t_ion_confinement=3.3442231132583498, expected_taueff=3.3442231132583502, expected_powerht=290.18368660937881, ), @@ -2948,7 +2948,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.07147653259174333, expected_ptripv=0.06343753403847416, expected_tauee=3.7242785823911264, - expected_tauei=3.7242785823911264, + expected_t_ion_confinement=3.7242785823911264, expected_taueff=3.7242785823911264, expected_powerht=290.18368660937881, ), @@ -2987,7 +2987,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): physics_variables, "f_alpha_plasma", confinementtimeparam.f_alpha_plasma ) - kappaa, ptrepv, ptripv, tauee, tauei, taueff, powerht = ( + kappaa, ptrepv, ptripv, tauee, t_ion_confinement, taueff, powerht = ( physics.calculate_confinement_time( iinvqd=confinementtimeparam.iinvqd, i_confinement_time=confinementtimeparam.i_confinement_time, @@ -3036,4 +3036,6 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): assert taueff == pytest.approx(confinementtimeparam.expected_taueff) - assert tauei == pytest.approx(confinementtimeparam.expected_tauei) + assert t_ion_confinement == pytest.approx( + confinementtimeparam.expected_t_ion_confinement + ) From 27575043782275ebb591d68e72a1f0933e6f4d8d Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 14:54:24 +0000 Subject: [PATCH 057/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20tauee=20to=20t?= =?UTF-8?q?=5Felectron=5Fconfinement=20for=20clarity=20and=20update=20rela?= =?UTF-8?q?ted=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proc-pages/physics-models/error.txt | 2 +- .../physics-models/plasma_confinement.md | 2 +- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +- process/confinement_time.py | 4 +- process/io/variable_metadata.py | 2 +- process/physics.py | 295 ++++++++++-------- process/stellarator.py | 4 +- source/fortran/physics_variables.f90 | 4 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +- tests/integration/data/scan_MFILE.DAT | 18 +- tests/integration/ref_dicts.json | 6 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 70 +++-- 23 files changed, 266 insertions(+), 211 deletions(-) diff --git a/documentation/proc-pages/physics-models/error.txt b/documentation/proc-pages/physics-models/error.txt index b1a48e55a0..5b74c07fb0 100644 --- a/documentation/proc-pages/physics-models/error.txt +++ b/documentation/proc-pages/physics-models/error.txt @@ -967,7 +967,7 @@ J. Menard 2019, Phil. Trans. R. Soc. A 377:201704401\strut \begin{minipage}[t]{0.05\columnwidth}\centering\strut 48\strut \end{minipage} & \begin{minipage}[t]{0.03\columnwidth}\raggedright\strut -Use input \texttt{tauee\_in}\strut +Use input \texttt{t_electron_confinement\_in}\strut \end{minipage} & \begin{minipage}[t]{0.03\columnwidth}\raggedright\strut \strut \end{minipage}\tabularnewline diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 0d41626951..3f3b97e108 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -44,7 +44,7 @@ allowance for radiation. This is not recommended for power plant models. Is selected with `i_confinement_time = 0` $$ -\tau_{\text{E}} = \mathtt{tauee\_in} +\tau_{\text{E}} = \mathtt{t_electron_confinement\_in} $$ ------------ diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index e8a78239b4..7c86eb2cf2 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -491,7 +491,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1808E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2379E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2379E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2379E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2379E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.6225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2095E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.8997E+02 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 77e592d1fa..68cc45a429 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 90403382fa..4aff57522f 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index f838b10b3d..a748734bc6 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index f1aa781377..d1e9c57e8d 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 1b02ede5ba..61ff11e3f8 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -344,7 +344,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -1339,7 +1339,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -2334,7 +2334,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -3329,7 +3329,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -4324,7 +4324,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -5319,7 +5319,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -6314,7 +6314,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -7309,7 +7309,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -8304,7 +8304,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP diff --git a/process/confinement_time.py b/process/confinement_time.py index c9021bfd84..2b490e7a62 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -385,7 +385,7 @@ def t10_confinement_time( """ denfac = dnla20 * rmajor * qstar / (1.3e0 * bt) denfac = min(1.0e0, denfac) - tauee = ( + t_electron_confinement = ( 0.095e0 * rmajor * rminor @@ -395,7 +395,7 @@ def t10_confinement_time( / powerht**0.4e0 * (zeff**2 * pcur**4 / (rmajor * rminor * qstar**3 * kappa95**1.5e0)) ** 0.08e0 ) - return tauee + return t_electron_confinement def jaeri_confinement_time( diff --git a/process/io/variable_metadata.py b/process/io/variable_metadata.py index 405c44a760..b75d26e746 100644 --- a/process/io/variable_metadata.py +++ b/process/io/variable_metadata.py @@ -388,7 +388,7 @@ class VariableMetadata: description="Efficiency of electron cyclotron heating", units="", ), - "tauee": VariableMetadata( + "t_electron_confinement": VariableMetadata( latex=r"$\tau_E$", description="Electron energy confinement time (sec)", units="s", diff --git a/process/physics.py b/process/physics.py index 2fbf142ab8..7dd3145879 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2251,7 +2251,7 @@ def physics(self): physics_variables.kappaa, physics_variables.ptrepv, physics_variables.ptripv, - physics_variables.tauee, + physics_variables.t_electron_confinement, physics_variables.taueff, physics_variables.t_ion_confinement, physics_variables.powerht, @@ -5212,8 +5212,8 @@ def outplas(self): po.ovarrf( self.outfile, "Electron energy confinement time (s)", - "(tauee)", - physics_variables.tauee, + "(t_electron_confinement)", + physics_variables.t_electron_confinement, "OP ", ) po.ovarre( @@ -6744,7 +6744,7 @@ def calculate_confinement_time( zeff : input real : plasma effective charge ptrepv : output real : electron transport power (MW/m3) ptripv : output real : ion transport power (MW/m3) - tauee : output real : electron energy confinement time (s) + t_electron_confinement : output real : electron energy confinement time (s) taueff : output real : global energy confinement time (s) t_ion_confinement : output real : ion energy confinement time (s) powerht : output real : heating power (MW) assumed in calculation @@ -6841,15 +6841,15 @@ def calculate_confinement_time( # ======================================================================== # User defined confinement time - if i_confinement_time == 0: # tauee is an input - tauee = hfact * physics_variables.tauee_in + if i_confinement_time == 0: # t_electron_confinement is an input + t_electron_confinement = hfact * physics_variables.tauee_in # ======================================================================== # Nec-Alcator(NA) OH scaling if i_confinement_time == 1: - # tauee = taueena - tauee = hfact * confinement.neo_alcator_confinement_time( + # t_electron_confinement = taueena + t_electron_confinement = hfact * confinement.neo_alcator_confinement_time( n20, rminor, rmajor, qstar ) @@ -6857,21 +6857,26 @@ def calculate_confinement_time( # "Mirnov"-like scaling (H-mode) elif i_confinement_time == 2: # Mirnov scaling (H-mode) - tauee = hfact * confinement.mirnov_confinement_time(rminor, kappa95, pcur) + t_electron_confinement = hfact * confinement.mirnov_confinement_time( + rminor, kappa95, pcur + ) # ======================================================================== # Merezhkin-Mukhovatov (MM) OH/L-mode scaling elif i_confinement_time == 3: - tauee = hfact * confinement.merezhkin_muhkovatov_confinement_time( - rmajor, rminor, kappa95, qstar, dnla20, afuel, ten + t_electron_confinement = ( + hfact + * confinement.merezhkin_muhkovatov_confinement_time( + rmajor, rminor, kappa95, qstar, dnla20, afuel, ten + ) ) # ======================================================================== # Shimomura (S) optimized H-mode scaling elif i_confinement_time == 4: - tauee = hfact * confinement.shimomura_confinement_time( + t_electron_confinement = hfact * confinement.shimomura_confinement_time( rmajor, rminor, bt, kappa95, afuel ) @@ -6879,18 +6884,20 @@ def calculate_confinement_time( # Kaye-Goldston scaling (L-mode) elif i_confinement_time == 5: - tauee = hfact * confinement.kaye_goldston_confinement_time( + t_electron_confinement = hfact * confinement.kaye_goldston_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ) if iinvqd != 0: - tauee = 1.0e0 / np.sqrt(1.0e0 / taueena**2 + 1.0e0 / tauee**2) + t_electron_confinement = 1.0e0 / np.sqrt( + 1.0e0 / taueena**2 + 1.0e0 / t_electron_confinement**2 + ) # ======================================================================== # ITER Power scaling - ITER 89-P (L-mode) elif i_confinement_time == 6: - tauee = hfact * confinement.iter_89P_confinement_time( + t_electron_confinement = hfact * confinement.iter_89P_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ) @@ -6898,14 +6905,14 @@ def calculate_confinement_time( # ITER Offset linear scaling - ITER 89-O (L-mode) elif i_confinement_time == 7: - tauee = hfact * confinement.iter_89_0_confinement_time( + t_electron_confinement = hfact * confinement.iter_89_0_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ) # ======================================================================== # Rebut-Lallia offset linear scaling (L-mode) elif i_confinement_time == 8: - tauee = hfact * confinement.rebut_lallia_confinement_time( + t_electron_confinement = hfact * confinement.rebut_lallia_confinement_time( rminor, rmajor, kappa, @@ -6921,18 +6928,20 @@ def calculate_confinement_time( # Goldston scaling (L-mode) elif i_confinement_time == 9: # Goldston scaling (L-mode) - tauee = hfact * confinement.goldston_confinement_time( + t_electron_confinement = hfact * confinement.goldston_confinement_time( pcur, rmajor, rminor, kappa95, afuel, powerht ) if iinvqd != 0: - tauee = 1.0e0 / np.sqrt(1.0e0 / taueena**2 + 1.0e0 / tauee**2) + t_electron_confinement = 1.0e0 / np.sqrt( + 1.0e0 / taueena**2 + 1.0e0 / t_electron_confinement**2 + ) # ======================================================================== # T-10 scaling (L-mode) elif i_confinement_time == 10: - tauee = hfact * confinement.t10_confinement_time( + t_electron_confinement = hfact * confinement.t10_confinement_time( dnla20, rmajor, qstar, bt, rminor, kappa95, powerht, zeff, pcur ) @@ -6940,7 +6949,7 @@ def calculate_confinement_time( # JAERI / Odajima-Shimomura L-mode scaling elif i_confinement_time == 11: # JAERI scaling - tauee = hfact * confinement.jaeri_confinement_time( + t_electron_confinement = hfact * confinement.jaeri_confinement_time( kappa95, rminor, afuel, @@ -6957,7 +6966,7 @@ def calculate_confinement_time( # Kaye "big" L-mode scaling (based only on big tokamak data) elif i_confinement_time == 12: - tauee = hfact * confinement.kaye_big_confinement_time( + t_electron_confinement = hfact * confinement.kaye_big_confinement_time( rmajor, rminor, bt, @@ -6972,7 +6981,7 @@ def calculate_confinement_time( # ITER H90-P H-mode scaling elif i_confinement_time == 13: - tauee = hfact * confinement.iter_h90_p_confinement_time( + t_electron_confinement = hfact * confinement.iter_h90_p_confinement_time( pcur, rmajor, rminor, @@ -6989,7 +6998,7 @@ def calculate_confinement_time( # Minimum of ITER 89-P and ITER 89-O elif i_confinement_time == 14: - tauee = min( + t_electron_confinement = min( hfact * confinement.iter_89P_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht @@ -7004,7 +7013,7 @@ def calculate_confinement_time( # Riedel scaling (L-mode) elif i_confinement_time == 15: - tauee = hfact * confinement.riedel_l_confinement_time( + t_electron_confinement = hfact * confinement.riedel_l_confinement_time( pcur, rmajor, rminor, @@ -7018,7 +7027,7 @@ def calculate_confinement_time( # Christiansen et al scaling (L-mode) elif i_confinement_time == 16: - tauee = hfact * confinement.christiansen_confinement_time( + t_electron_confinement = hfact * confinement.christiansen_confinement_time( pcur, rmajor, rminor, @@ -7035,21 +7044,24 @@ def calculate_confinement_time( # Lackner-Gottardi scaling (L-mode) elif i_confinement_time == 17: - tauee = hfact * confinement.lackner_gottardi_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, + t_electron_confinement = ( + hfact + * confinement.lackner_gottardi_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, + ) ) # ======================================================================== # Neo-Kaye scaling (L-mode) elif i_confinement_time == 18: - tauee = hfact * confinement.neo_kaye_confinement_time( + t_electron_confinement = hfact * confinement.neo_kaye_confinement_time( pcur, rmajor, rminor, @@ -7064,7 +7076,7 @@ def calculate_confinement_time( # Riedel scaling (H-mode) elif i_confinement_time == 19: - tauee = hfact * confinement.riedel_h_confinement_time( + t_electron_confinement = hfact * confinement.riedel_h_confinement_time( pcur, rmajor, rminor, @@ -7081,13 +7093,16 @@ def calculate_confinement_time( # Amended version of ITER H90-P law elif i_confinement_time == 20: - tauee = hfact * confinement.iter_h90_p_amended_confinement_time( - pcur, - bt, - afuel, - rmajor, - powerht, - kappa, + t_electron_confinement = ( + hfact + * confinement.iter_h90_p_amended_confinement_time( + pcur, + bt, + afuel, + rmajor, + powerht, + kappa, + ) ) # ========================================================================== @@ -7096,7 +7111,7 @@ def calculate_confinement_time( # Sudo et al. scaling (stellarators/heliotron) elif i_confinement_time == 21: - tauee = hfact * confinement.sudo_et_al_confinement_time( + t_electron_confinement = hfact * confinement.sudo_et_al_confinement_time( rmajor, rminor, dnla20, @@ -7108,32 +7123,38 @@ def calculate_confinement_time( # Gyro-reduced Bohm scaling elif i_confinement_time == 22: - tauee = hfact * confinement.gyro_reduced_bohm_confinement_time( - bt, - dnla20, - powerht, - rminor, - rmajor, + t_electron_confinement = ( + hfact + * confinement.gyro_reduced_bohm_confinement_time( + bt, + dnla20, + powerht, + rminor, + rmajor, + ) ) # ========================================================================== # Lackner-Gottardi stellarator scaling elif i_confinement_time == 23: - tauee = hfact * confinement.lackner_gottardi_stellarator_confinement_time( - rmajor, - rminor, - dnla20, - bt, - powerht, - q, + t_electron_confinement = ( + hfact + * confinement.lackner_gottardi_stellarator_confinement_time( + rmajor, + rminor, + dnla20, + bt, + powerht, + q, + ) ) # ========================================================================== # ITER_93 ELM-free H-mode scaling elif i_confinement_time == 24: - tauee = hfact * confinement.iter_93h_confinement_time( + t_electron_confinement = hfact * confinement.iter_93h_confinement_time( pcur, bt, powerht, @@ -7152,7 +7173,7 @@ def calculate_confinement_time( # ELM-free: ITERH-97P elif i_confinement_time == 26: - tauee = hfact * confinement.iter_h97p_confinement_time( + t_electron_confinement = hfact * confinement.iter_h97p_confinement_time( pcur, bt, powerht, @@ -7167,15 +7188,18 @@ def calculate_confinement_time( # ELMy: ITERH-97P(y) elif i_confinement_time == 27: - tauee = hfact * confinement.iter_h97p_elmy_confinement_time( - pcur, - bt, - powerht, - dnla19, - rmajor, - aspect, - kappa, - afuel, + t_electron_confinement = ( + hfact + * confinement.iter_h97p_elmy_confinement_time( + pcur, + bt, + powerht, + dnla19, + rmajor, + aspect, + kappa, + afuel, + ) ) # ========================================================================== @@ -7184,7 +7208,7 @@ def calculate_confinement_time( # ITER-96P (= ITER-97L) L-mode scaling elif i_confinement_time == 28: - tauee = hfact * confinement.iter_96p_confinement_time( + t_electron_confinement = hfact * confinement.iter_96p_confinement_time( pcur, bt, kappa95, @@ -7200,7 +7224,7 @@ def calculate_confinement_time( # ========================================================================== elif i_confinement_time == 29: # Valovic modified ELMy-H mode scaling - tauee = ( + t_electron_confinement = ( hfact * 0.067e0 * pcur**0.9e0 @@ -7216,7 +7240,7 @@ def calculate_confinement_time( # ========================================================================== elif i_confinement_time == 30: # Kaye PPPL Workshop April 1998 L-mode scaling - tauee = ( + t_electron_confinement = ( hfact * 0.021e0 * pcur**0.81e0 @@ -7232,7 +7256,7 @@ def calculate_confinement_time( # ========================================================================== elif i_confinement_time == 31: # ITERH-PB98P(y), ELMy H-mode scaling - tauee = ( + t_electron_confinement = ( hfact * 0.0615e0 * pcur**0.9e0 @@ -7249,7 +7273,7 @@ def calculate_confinement_time( # IPB98(y), ELMy H-mode scaling elif i_confinement_time == 32: - tauee = hfact * confinement.iter_ipb98y_confinement_time( + t_electron_confinement = hfact * confinement.iter_ipb98y_confinement_time( pcur, bt, dnla19, @@ -7264,7 +7288,7 @@ def calculate_confinement_time( # IPB98(y,1), ELMy H-mode scaling elif i_confinement_time == 33: - tauee = hfact * confinement.iter_ipb98y1_confinement_time( + t_electron_confinement = hfact * confinement.iter_ipb98y1_confinement_time( pcur, bt, dnla19, @@ -7279,7 +7303,7 @@ def calculate_confinement_time( # IPB98(y,2), ELMy H-mode scaling elif i_confinement_time == 34: - tauee = hfact * confinement.iter_ipb98y2_confinement_time( + t_electron_confinement = hfact * confinement.iter_ipb98y2_confinement_time( pcur, bt, dnla19, @@ -7294,7 +7318,7 @@ def calculate_confinement_time( # IPB98(y,3), ELMy H-mode scaling elif i_confinement_time == 35: - tauee = hfact * confinement.iter_ipb98y3_confinement_time( + t_electron_confinement = hfact * confinement.iter_ipb98y3_confinement_time( pcur, bt, dnla19, @@ -7309,7 +7333,7 @@ def calculate_confinement_time( # IPB98(y,4), ELMy H-mode scaling elif i_confinement_time == 36: - tauee = hfact * confinement.iter_ipb98y4_confinement_time( + t_electron_confinement = hfact * confinement.iter_ipb98y4_confinement_time( pcur, bt, dnla19, @@ -7325,13 +7349,16 @@ def calculate_confinement_time( # ISS95 stellarator scaling elif i_confinement_time == 37: iotabar = q # dummy argument q is actual argument iotabar for stellarators - tauee = hfact * confinement.iss95_stellarator_confinement_time( - rminor, - rmajor, - dnla19, - bt, - powerht, - iotabar, + t_electron_confinement = ( + hfact + * confinement.iss95_stellarator_confinement_time( + rminor, + rmajor, + dnla19, + bt, + powerht, + iotabar, + ) ) # ========================================================================== @@ -7339,20 +7366,23 @@ def calculate_confinement_time( # ISS04 stellarator scaling elif i_confinement_time == 38: iotabar = q # dummy argument q is actual argument iotabar for stellarators - tauee = hfact * confinement.iss04_stellarator_confinement_time( - rminor, - rmajor, - dnla19, - bt, - powerht, - iotabar, + t_electron_confinement = ( + hfact + * confinement.iss04_stellarator_confinement_time( + rminor, + rmajor, + dnla19, + bt, + powerht, + iotabar, + ) ) # ========================================================================== # DS03 beta-independent H-mode scaling elif i_confinement_time == 39: - tauee = hfact * confinement.ds03_confinement_time( + t_electron_confinement = hfact * confinement.ds03_confinement_time( pcur, bt, dnla19, @@ -7367,7 +7397,7 @@ def calculate_confinement_time( # Murari "Non-power law" scaling elif i_confinement_time == 40: - tauee = hfact * confinement.murari_confinement_time( + t_electron_confinement = hfact * confinement.murari_confinement_time( pcur, rmajor, physics_variables.kappa_ipb, @@ -7380,7 +7410,7 @@ def calculate_confinement_time( # Petty08, beta independent dimensionless scaling elif i_confinement_time == 41: - tauee = hfact * confinement.petty08_confinement_time( + t_electron_confinement = hfact * confinement.petty08_confinement_time( pcur, bt, dnla19, @@ -7399,7 +7429,7 @@ def calculate_confinement_time( # Greenwald density in m^-3 n_gw = 1.0e14 * plasma_current / (np.pi * rminor * rminor) nratio = dnla / n_gw - tauee = ( + t_electron_confinement = ( hfact * 6.94e-7 * plasma_current**1.3678e0 @@ -7419,18 +7449,21 @@ def calculate_confinement_time( # Hubbard 2017 I-mode confinement time scaling - nominal elif i_confinement_time == 43: - tauee = hfact * confinement.hubbard_nominal_confinement_time( - pcur, - bt, - dnla20, - powerht, + t_electron_confinement = ( + hfact + * confinement.hubbard_nominal_confinement_time( + pcur, + bt, + dnla20, + powerht, + ) ) # ========================================================================== # Hubbard 2017 I-mode confinement time scaling - lower elif i_confinement_time == 44: - tauee = hfact * confinement.hubbard_lower_confinement_time( + t_electron_confinement = hfact * confinement.hubbard_lower_confinement_time( pcur, bt, dnla20, @@ -7441,7 +7474,7 @@ def calculate_confinement_time( # Hubbard 2017 I-mode confinement time scaling - upper elif i_confinement_time == 45: - tauee = hfact * confinement.hubbard_upper_confinement_time( + t_electron_confinement = hfact * confinement.hubbard_upper_confinement_time( pcur, bt, dnla20, @@ -7452,7 +7485,7 @@ def calculate_confinement_time( # Menard NSTX, ELMy H-mode scaling elif i_confinement_time == 46: - tauee = hfact * confinement.menard_nstx_confinement_time( + t_electron_confinement = hfact * confinement.menard_nstx_confinement_time( pcur, bt, dnla19, @@ -7467,34 +7500,40 @@ def calculate_confinement_time( # Menard NSTX-Petty08 Hybrid elif i_confinement_time == 47: - tauee = hfact * confinement.menard_nstx_petty08_hybrid_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - afuel, + t_electron_confinement = ( + hfact + * confinement.menard_nstx_petty08_hybrid_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, + ) ) # ========================================================================== # NSTX gyro-Bohm (Buxton) elif i_confinement_time == 48: - tauee = hfact * confinement.nstx_gyro_bohm_confinement_time( - pcur, - bt, - powerht, - rmajor, - dnla20, + t_electron_confinement = ( + hfact + * confinement.nstx_gyro_bohm_confinement_time( + pcur, + bt, + powerht, + rmajor, + dnla20, + ) ) # ========================================================================== # ITPA20 H-mode scaling elif i_confinement_time == 49: - tauee = hfact * confinement.itpa20_confinement_time( + t_electron_confinement = hfact * confinement.itpa20_confinement_time( pcur, bt, dnla19, @@ -7521,22 +7560,32 @@ def calculate_confinement_time( # Ion energy confinement time # N.B. Overwrites earlier calculation above - t_ion_confinement = tauee + t_ion_confinement = t_electron_confinement # Calculation of the transport power loss terms # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV # (here, tin and ten are in keV, and ptrepv and ptripv are in MW/m3) ptripv = 2.403e-22 * nd_ions_total * tin / t_ion_confinement - ptrepv = 2.403e-22 * dene * ten / tauee + ptrepv = 2.403e-22 * dene * ten / t_electron_confinement ratio = nd_ions_total / dene * tin / ten # Global energy confinement time - taueff = (ratio + 1.0e0) / (ratio / t_ion_confinement + 1.0e0 / tauee) + taueff = (ratio + 1.0e0) / ( + ratio / t_ion_confinement + 1.0e0 / t_electron_confinement + ) - return kappaa, ptrepv, ptripv, tauee, t_ion_confinement, taueff, powerht + return ( + kappaa, + ptrepv, + ptripv, + t_electron_confinement, + t_ion_confinement, + taueff, + powerht, + ) def calculate_poloidal_beta(btot, bp, beta): diff --git a/process/stellarator.py b/process/stellarator.py index f23258bc6e..3e9de58389 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -216,7 +216,7 @@ def stigma(self): physics_variables.kappaa, physics_variables.ptrepv, physics_variables.ptripv, - physics_variables.tauee, + physics_variables.t_electron_confinement, physics_variables.t_ion_confinement, physics_variables.taueff, physics_variables.powerht, @@ -4457,7 +4457,7 @@ def stphys(self, output): physics_variables.kappaa, physics_variables.ptrepv, physics_variables.ptripv, - physics_variables.tauee, + physics_variables.t_electron_confinement, physics_variables.t_ion_confinement, physics_variables.taueff, physics_variables.powerht, diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index afde627a19..5d2f9d09e8 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -817,7 +817,7 @@ module physics_variables real(dp) :: f_sync_reflect !! synchrotron wall reflectivity factor - real(dp) :: tauee + real(dp) :: t_electron_confinement !! electron energy confinement time (sec) real(dp) :: tauee_in @@ -1097,7 +1097,7 @@ subroutine init_physics_variables a_plasma_surface_outboard = 0.0D0 i_single_null = 1 f_sync_reflect = 0.6D0 - tauee = 0.0D0 + t_electron_confinement = 0.0D0 tauee_in = 0.0D0 taueff = 0.0D0 t_ion_confinement = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index 31238408c0..cfed5fdd8c 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -486,7 +486,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index aa5ea3dd97..d73031370c 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index d0e83e4a0f..b494cabfb2 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 30d7ff08a9..5ea4e32bcd 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 41694d7ec7..0e0abac846 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -483,7 +483,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2080E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 1e842f916c..f85af55902 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -489,7 +489,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1671E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1609E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1609E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1609E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1609E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5403E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0737E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9249E+02 OP @@ -1652,7 +1652,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1660E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1472E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1472E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1472E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1472E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5390E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0722E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9493E+02 OP @@ -2815,7 +2815,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1665E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1421E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1421E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1421E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1421E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5425E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0764E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP @@ -3978,7 +3978,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1778E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1540E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1540E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1540E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1540E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5409E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0999E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP @@ -5141,7 +5141,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1743E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1491E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1491E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1491E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1491E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5361E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0940E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9667E+02 OP @@ -6304,7 +6304,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1735E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1469E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1469E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1469E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1469E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5258E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0815E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9600E+02 OP @@ -7467,7 +7467,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1842E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1547E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1547E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1547E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1547E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5216E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1016E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9644E+02 OP @@ -8630,7 +8630,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1867E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1544E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1544E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1544E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1544E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5240E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1045E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9674E+02 OP @@ -9793,7 +9793,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1917E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1563E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1563E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1563E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1563E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5211E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1009E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9602E+02 OP @@ -10956,7 +10956,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1622E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1622E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1622E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1622E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1279E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9743E+02 OP @@ -12119,7 +12119,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1940E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1621E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1621E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1621E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1621E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5304E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1377E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9837E+02 OP @@ -13282,7 +13282,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1912E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1617E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1617E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1617E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1617E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5280E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1347E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9823E+02 OP @@ -14445,7 +14445,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1687E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1687E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1687E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1687E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5289E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1612E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9938E+02 OP @@ -15608,7 +15608,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1663E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1663E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1663E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1663E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5365E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1706E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0064E+02 OP @@ -16771,7 +16771,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1640E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1640E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.1640E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1640E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5446E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1807E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0193E+02 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index d166ec3575..930bb37222 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -344,7 +344,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -1339,7 +1339,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -2334,7 +2334,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -3329,7 +3329,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -4324,7 +4324,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -5319,7 +5319,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -6314,7 +6314,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -7309,7 +7309,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -8304,7 +8304,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 41a2d0d4e7..b120bd2137 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7424,7 +7424,7 @@ "tau2": 0.0, "taubeam": 0.0, "taucq": 30.0, - "tauee": 0.0, + "t_electron_confinement": 0.0, "tauee_in": 0.0, "taueff": 0.0, "t_ion_confinement": 0.0, @@ -10731,7 +10731,7 @@ "tau2": "", "taubeam": "neutral beam e-decay lengths to plasma centre", "taucq": "allowable TF quench time (s)", - "tauee": "electron energy confinement time (sec)", + "t_electron_confinement": "electron energy confinement time (sec)", "tauee_in": "Input electron energy confinement time (sec) (`i_confinement_time=48 only`)", "taueff": "global thermal energy confinement time (sec)", "t_ion_confinement": "ion energy confinement time (sec)", @@ -19253,7 +19253,7 @@ "a_plasma_surface_outboard", "i_single_null", "f_sync_reflect", - "tauee", + "t_electron_confinement", "tauee_in", "taueff", "t_ion_confinement", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index ccf6351c02..ccca0943b4 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -483,7 +483,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 - Electron_energy_confinement_time_(s)____________________________________ (tauee)_______________________ 3.2080E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 467c297f90..fa7f850143 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2987,37 +2987,43 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): physics_variables, "f_alpha_plasma", confinementtimeparam.f_alpha_plasma ) - kappaa, ptrepv, ptripv, tauee, t_ion_confinement, taueff, powerht = ( - physics.calculate_confinement_time( - iinvqd=confinementtimeparam.iinvqd, - i_confinement_time=confinementtimeparam.i_confinement_time, - ignite=confinementtimeparam.ignite, - m_fuel_amu=confinementtimeparam.m_fuel_amu, - alpha_power_total=confinementtimeparam.alpha_power_total, - aspect=confinementtimeparam.aspect, - bt=confinementtimeparam.bt, - dene=confinementtimeparam.dene, - nd_ions_total=confinementtimeparam.nd_ions_total, - dnla=confinementtimeparam.dnla, - eps=confinementtimeparam.eps, - hfact=confinementtimeparam.hfact, - kappa=confinementtimeparam.kappa, - kappa95=confinementtimeparam.kappa95, - non_alpha_charged_power=confinementtimeparam.non_alpha_charged_power, - pinjmw=confinementtimeparam.pinjmw, - plasma_current=confinementtimeparam.plasma_current, - pcoreradpv=confinementtimeparam.pcoreradpv, - q=confinementtimeparam.q, - qstar=confinementtimeparam.qstar, - rmajor=confinementtimeparam.rmajor, - rminor=confinementtimeparam.rminor, - _te=confinementtimeparam.te, - ten=confinementtimeparam.ten, - tin=confinementtimeparam.tin, - vol_plasma=confinementtimeparam.vol_plasma, - a_plasma_poloidal=confinementtimeparam.a_plasma_poloidal, - zeff=confinementtimeparam.zeff, - ) + ( + kappaa, + ptrepv, + ptripv, + t_electron_confinement, + t_ion_confinement, + taueff, + powerht, + ) = physics.calculate_confinement_time( + iinvqd=confinementtimeparam.iinvqd, + i_confinement_time=confinementtimeparam.i_confinement_time, + ignite=confinementtimeparam.ignite, + m_fuel_amu=confinementtimeparam.m_fuel_amu, + alpha_power_total=confinementtimeparam.alpha_power_total, + aspect=confinementtimeparam.aspect, + bt=confinementtimeparam.bt, + dene=confinementtimeparam.dene, + nd_ions_total=confinementtimeparam.nd_ions_total, + dnla=confinementtimeparam.dnla, + eps=confinementtimeparam.eps, + hfact=confinementtimeparam.hfact, + kappa=confinementtimeparam.kappa, + kappa95=confinementtimeparam.kappa95, + non_alpha_charged_power=confinementtimeparam.non_alpha_charged_power, + pinjmw=confinementtimeparam.pinjmw, + plasma_current=confinementtimeparam.plasma_current, + pcoreradpv=confinementtimeparam.pcoreradpv, + q=confinementtimeparam.q, + qstar=confinementtimeparam.qstar, + rmajor=confinementtimeparam.rmajor, + rminor=confinementtimeparam.rminor, + _te=confinementtimeparam.te, + ten=confinementtimeparam.ten, + tin=confinementtimeparam.tin, + vol_plasma=confinementtimeparam.vol_plasma, + a_plasma_poloidal=confinementtimeparam.a_plasma_poloidal, + zeff=confinementtimeparam.zeff, ) assert physics_variables.kappa_ipb == pytest.approx( @@ -3032,7 +3038,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): assert ptripv == pytest.approx(confinementtimeparam.expected_ptripv) - assert tauee == pytest.approx(confinementtimeparam.expected_tauee) + assert t_electron_confinement == pytest.approx(confinementtimeparam.expected_tauee) assert taueff == pytest.approx(confinementtimeparam.expected_taueff) From d17f5089de50978c10b7d2929d7bb1e0598904bf Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 15:25:36 +0000 Subject: [PATCH 058/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20t=5Falpha=5Fcon?= =?UTF-8?q?finement=5Ftaueff=20to=20f=5Falpha=5Fenergy=5Fconfinement=20for?= =?UTF-8?q?=20clarity=20and=20update=20related=20references,=20create=20it?= =?UTF-8?q?=20as=20a=20new=20variable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 4 +- examples/data/large_tokamak_1_MFILE.DAT | 4 +- examples/data/large_tokamak_2_MFILE.DAT | 4 +- examples/data/large_tokamak_3_MFILE.DAT | 4 +- examples/data/large_tokamak_4_MFILE.DAT | 4 +- examples/data/large_tokamak_IN.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +-- examples/data/scan_example_file_IN.DAT | 2 +- process/physics.py | 120 ++++++++++++------ source/fortran/constraint_equations.f90 | 10 +- source/fortran/constraint_variables.f90 | 4 +- source/fortran/input.f90 | 4 +- source/fortran/iteration_variables.f90 | 2 +- source/fortran/numerics.f90 | 6 +- source/fortran/physics_variables.f90 | 4 + .../data/large_tokamak_1_MFILE.DAT | 4 +- .../data/large_tokamak_2_MFILE.DAT | 4 +- .../data/large_tokamak_3_MFILE.DAT | 4 +- .../data/large_tokamak_4_MFILE.DAT | 4 +- tests/integration/data/large_tokamak_IN.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 4 +- .../data/large_tokamak_once_through.IN.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 32 ++--- tests/integration/data/scan_MFILE.DAT | 18 +-- tests/integration/ref_dicts.json | 12 +- .../input_files/large_tokamak.IN.DAT | 2 +- .../input_files/large_tokamak_nof.IN.DAT | 2 +- .../large_tokamak_once_through.IN.DAT | 2 +- .../input_files/st_regression.IN.DAT | 4 +- tests/unit/data/large_tokamak_IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 4 +- 31 files changed, 173 insertions(+), 121 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 7c86eb2cf2..44f42de3e6 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -498,7 +498,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9376E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2315E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.8919E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8919E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8266E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7123E-02 OP @@ -1346,7 +1346,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 68cc45a429..ae64d88c47 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -494,7 +494,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 4aff57522f..1aef2e7920 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -494,7 +494,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index a748734bc6..09ab24e236 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -494,7 +494,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index d1e9c57e8d..6e9323565d 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -494,7 +494,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/large_tokamak_IN.DAT b/examples/data/large_tokamak_IN.DAT index c55ce454c9..4e92a56d08 100644 --- a/examples/data/large_tokamak_IN.DAT +++ b/examples/data/large_tokamak_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 61ff11e3f8..8bf94f1704 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -351,7 +351,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -1346,7 +1346,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -2341,7 +2341,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -3336,7 +3336,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -4331,7 +4331,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -5326,7 +5326,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -6321,7 +6321,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -7316,7 +7316,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -8311,7 +8311,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP diff --git a/examples/data/scan_example_file_IN.DAT b/examples/data/scan_example_file_IN.DAT index a38a0254e8..3e6aa08a2d 100644 --- a/examples/data/scan_example_file_IN.DAT +++ b/examples/data/scan_example_file_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/process/physics.py b/process/physics.py index 7dd3145879..c7890e26b1 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2328,6 +2328,7 @@ def physics(self): physics_variables.qfuel, physics_variables.rndfuel, physics_variables.t_alpha_confinement, + physics_variables.f_alpha_energy_confinement, ) = self.phyaux( physics_variables.aspect, physics_variables.dene, @@ -2957,44 +2958,88 @@ def plasma_composition() -> None: @staticmethod def phyaux( - aspect, - dene, - nd_fuel_ions, - fusion_rate_density_total, - alpha_rate_density_total, - plasma_current, - sbar, - nd_alphas, - taueff, - vol_plasma, - ): + aspect: float, + dene: float, + nd_fuel_ions: float, + fusion_rate_density_total: float, + alpha_rate_density_total: float, + plasma_current: float, + sbar: float, + nd_alphas: float, + taueff: float, + vol_plasma: float, + ) -> tuple[float, float, float, float, float, float, float, float]: """Auxiliary physics quantities - author: P J Knight, CCFE, Culham Science Centre - aspect : input real : plasma aspect ratio - dene : input real : electron density (/m3) - nd_fuel_ions : input real : fuel ion density (/m3) - nd_alphas : input real : alpha ash density (/m3) - fusion_rate_density_total : input real : fusion reaction rate from plasma and beams (/m3/s) - alpha_rate_density_total : input real : alpha particle production rate (/m3/s) - plasma_current: input real : plasma current (A) - sbar : input real : exponent for aspect ratio (normally 1) - taueff : input real : global energy confinement time (s) - vol_plasma : input real : plasma volume (m3) - burnup : output real : fractional plasma burnup - dntau : output real : plasma average n-tau (s/m3) - figmer : output real : physics figure of merit - fusrat : output real : number of fusion reactions per second - qfuel : output real : fuelling rate for D-T (nucleus-pairs/sec) - rndfuel: output real : fuel burnup rate (reactions/s) - t_alpha_confinement : output real : (alpha) particle confinement time (s) - This subroutine calculates extra physics related items - needed by other parts of the code - """ + Args: + aspect (float): Plasma aspect ratio. + dene (float): Electron density (/m3). + deni (float): Fuel ion density (/m3). + fusion_rate_density_total (float): Fusion reaction rate from plasma and beams (/m3/s). + alpha_rate_density_total (float): Alpha particle production rate (/m3/s). + plasma_current (float): Plasma current (A). + sbar (float): Exponent for aspect ratio (normally 1). + dnalp (float): Alpha ash density (/m3). + taueff (float): Global energy confinement time (s). + vol_plasma (float): Plasma volume (m3). + + Returns: + tuple: A tuple containing: + - burnup (float): Fractional plasma burnup. + - dntau (float): Plasma average n-tau (s/m3). + - figmer (float): Physics figure of merit. + - fusrat (float): Number of fusion reactions per second. + - qfuel (float): Fuelling rate for D-T (nucleus-pairs/sec). + - rndfuel (float): Fuel burnup rate (reactions/s). + - t_alpha_confinement (float): Alpha particle confinement time (s). + - f_alpha_energy_confinement (float): Fraction of alpha energy confinement. + + This subroutine calculates extra physics related items needed by other parts of the code. + """ figmer = 1e-6 * plasma_current * aspect**sbar dntau = taueff * dene + # Fusion reactions per second + fusrat = fusion_rate_density_total * plasma_volume + + # Alpha particle confinement time (s) + # Number of alphas / alpha production rate + if alpha_rate_density_total != 0.0: + t_alpha_confinement = dnalp / alpha_rate_density_total + else: # only likely if DD is only active fusion reaction + t_alpha_confinement = 0.0 + + # Fractional burnup + # (Consider detailed model in: G. L. Jackson, V. S. Chan, R. D. Stambaugh, + # Fusion Science and Technology, vol.64, no.1, July 2013, pp.8-12) + # The ratio of ash to fuel particle confinement times is given by + # tauratio + # Possible logic... + # burnup = fuel ion-pairs burned/m3 / initial fuel ion-pairs/m3; + # fuel ion-pairs burned/m3 = alpha particles/m3 (for both D-T and D-He3 reactions) + # initial fuel ion-pairs/m3 = burnt fuel ion-pairs/m3 + unburnt fuel-ion pairs/m3 + # Remember that unburnt fuel-ion pairs/m3 = 0.5 * unburnt fuel-ions/m3 + if physics_variables.burnup_in <= 1.0e-9: + burnup = dnalp / (dnalp + 0.5 * deni) / physics_variables.tauratio + else: + burnup = physics_variables.burnup_in + + # Fuel burnup rate (reactions/second) (previously Amps) + rndfuel = fusrat + + # Required fuelling rate (fuel ion pairs/second) (previously Amps) + qfuel = rndfuel / burnup + + f_alpha_energy_confinement = t_alpha_confinement / taueff + + return burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, f_alpha_energy_confinement + + figmer = 1e-6 * plasma_current * aspect**sbar + + dntau = taueff * dene + + # Fusion reactions per second fusrat = fusion_rate_density_total * vol_plasma @@ -3035,7 +3080,10 @@ def phyaux( qfuel = rndfuel / burnup - return burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement + f_alpha_energy_confinement = t_alpha_confinement / taueff + + + return burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, f_alpha_energy_confinement @staticmethod def plasma_ohmic_heating( @@ -5327,13 +5375,13 @@ def outplas(self): po.ovarrf( self.outfile, "Alpha particle/energy confinement time ratio", - "(t_alpha_confinement/taueff)", - physics_variables.t_alpha_confinement / physics_variables.taueff, + "(f_alpha_energy_confinement)", + physics_variables.f_alpha_energy_confinement, "OP ", ) po.ovarrf( self.outfile, - "Lower limit on t_alpha_confinement/taueff", + "Lower limit on f_alpha_energy_confinement", "(taulimit)", constraint_variables.taulimit, ) diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 4b9d63f760..51e10514fd 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -227,7 +227,7 @@ subroutine constraint_eqns(m,ieqn,cc,con,err,symbol,units) case (60); call constraint_eqn_060(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! Equation for availability limit case (61); call constraint_eqn_061(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) - ! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times + ! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times case (62); call constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! Upper limit on niterpump (vacuum_model = simple) case (63); call constraint_eqn_063(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) @@ -2446,19 +2446,19 @@ subroutine constraint_eqn_061(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) end subroutine constraint_eqn_061 subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) - !! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times + !! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times !! author: P B Lloyd, CCFE, Culham Science Centre !! args : output structure : residual error; constraint value; !! residual error in physical units; output string; units string - !! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times + !! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times !! #=# physics !! #=#=# ftaulimit, taulimit !! and hence also optional here. !! Logic change during pre-factoring: err, symbol, units will be assigned only if present. - !! ftaulimit : input real : f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement + !! ftaulimit : input real : f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement !! t_alpha_confinement : input real : alpha particle confinement time (s) !! taueff : input real : global thermal energy confinement time (sec) - !! taulimit : input real : Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times + !! taulimit : input real : Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times use constraint_variables, only: ftaulimit, taulimit use physics_variables, only: t_alpha_confinement, taueff implicit none diff --git a/source/fortran/constraint_variables.f90 b/source/fortran/constraint_variables.f90 index 710d0d6033..eb259e7d2d 100644 --- a/source/fortran/constraint_variables.f90 +++ b/source/fortran/constraint_variables.f90 @@ -280,11 +280,11 @@ module constraint_variables !! allowable neutron wall-load (MW/m2) (`constraint equation 8`) real(dp) :: taulimit - !! Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement + !! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement !! times (`constraint equation 62`) real(dp) :: ftaulimit - !! f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy + !! f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy !! confinement times (`constraint equation 62`, `iteration variable 110`) real(dp) :: fniterpump diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index 03d0adf9ff..c156b6176c 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -604,7 +604,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 'f-value for Eich critical separatrix density') case ('ftaulimit') call parse_real_variable('ftaulimit', ftaulimit, 0.001D0, 1.0D0, & - 'f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times') + 'f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times') case ('f_tritium') call parse_real_variable('f_tritium', f_tritium, 0.0D0, 1.0D0, & 'Tritium fuel fraction') @@ -753,7 +753,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 'Input electron energy confinement time (sec) (i_confinement_time=48 only)') case ('taulimit') call parse_real_variable('taulimit', taulimit, 1.0D0, 100.0D0, & - 'Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times') + 'Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times') case ('teped') call parse_real_variable('teped', teped, 0.0D0, 20.0D0, & diff --git a/source/fortran/iteration_variables.f90 b/source/fortran/iteration_variables.f90 index cecf892f4a..80dce77336 100755 --- a/source/fortran/iteration_variables.f90 +++ b/source/fortran/iteration_variables.f90 @@ -2387,7 +2387,7 @@ end subroutine set_itv_109 !--------------------------------- subroutine init_itv_110 - !!
                  • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha + !!
                  • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha use numerics, only: lablxc, boundl, boundu implicit none !! particle to energy confinement times (f-value for equation 62) diff --git a/source/fortran/numerics.f90 b/source/fortran/numerics.f90 index f5a0a51a71..f57138e80a 100755 --- a/source/fortran/numerics.f90 +++ b/source/fortran/numerics.f90 @@ -162,7 +162,7 @@ module numerics !!
                  • (59) Neutral beam shine-through fraction upper limit (NBI) (itv 105,6,19,4 ) !!
                  • (60) Central solenoid temperature margin lower limit (SCTF) (itv 106) !!
                  • (61) Minimum availability value (itv 107) - !!
                  • (62) t_alpha_confinement/taueff the ratio of particle to energy confinement times (itv 110) + !!
                  • (62) f_alpha_energy_confinement the ratio of particle to energy confinement times (itv 110) !!
                  • (63) The number of ITER-like vacuum pumps niterpump < tfno (itv 111) !!
                  • (64) Zeff less than or equal to zeffmax (itv 112) !!
                  • (65) Dump time set by VV loads (itv 56, 113) @@ -311,7 +311,7 @@ module numerics !!
                  • (107) favail (f-value for equation 61) !!
                  • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4) !!
                  • (109) f_nd_alpha_electron: thermal alpha density / electron density - !!
                  • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha + !!
                  • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha !!
                  • (111) fniterpump: f-value for constraint that number !!
                  • (112) fzeffmax: f-value for max Zeff (f-value for equation 64) !!
                  • (113) ftaucq: f-value for minimum quench time (f-value for equation 65) @@ -516,7 +516,7 @@ subroutine init_numerics() 'NB shine-through frac upper limit', & 'CS temperature margin lower limit', & 'Minimum availability value ', & - 't_alpha_confinement/taueff ', & + 'f_alpha_energy_confinement ', & 'number of ITER-like vacuum pumps ', & 'Zeff limit ', & 'Dump time set by VV stress ', & diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 5d2f9d09e8..c307bdab73 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -832,6 +832,9 @@ module physics_variables real(dp) :: t_alpha_confinement !! alpha particle confinement time (sec) + real(dp) :: f_alpha_energy_confinement + !! alpha particle to energy confinement time ratio + real(dp) :: te !! volume averaged electron temperature (keV) (`iteration variable 4`) @@ -1102,6 +1105,7 @@ subroutine init_physics_variables taueff = 0.0D0 t_ion_confinement = 0.0D0 t_alpha_confinement = 0.0D0 + f_alpha_energy_confinement = 0.0D0 te = 12.9D0 te0 = 0.0D0 ten = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index cfed5fdd8c..c488e26896 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -493,7 +493,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1340,7 +1340,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index d73031370c..6db236918f 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -494,7 +494,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index b494cabfb2..4ed3c91d72 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -494,7 +494,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 5ea4e32bcd..0778da94f9 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -494,7 +494,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.9512E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP @@ -1341,7 +1341,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_IN.DAT b/tests/integration/data/large_tokamak_IN.DAT index c55ce454c9..4e92a56d08 100644 --- a/tests/integration/data/large_tokamak_IN.DAT +++ b/tests/integration/data/large_tokamak_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 0e0abac846..ff9fb53674 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -491,7 +491,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.8629E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8629E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP @@ -1342,7 +1342,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/large_tokamak_once_through.IN.DAT b/tests/integration/data/large_tokamak_once_through.IN.DAT index e4ff1d9366..ade71f837d 100644 --- a/tests/integration/data/large_tokamak_once_through.IN.DAT +++ b/tests/integration/data/large_tokamak_once_through.IN.DAT @@ -143,7 +143,7 @@ powfmax = 3000 * maximum fusion power (MW) (`constraint equation 9`) psepbqarmax = 10.0 * maximum ratio of Psep*Bt/qAR (MWT/m) (`constraint equation 68`) t_burn_min = 7200.0 * minimum burn time (s) (KE - no longer itv;; see issue #706) walalw = 2.0 * allowable neutron wall-load (MW/m2) (`constraint equation 8`) -taulimit = 5.0 * Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement +taulimit = 5.0 * Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement *-------------------Constraints--------------------* diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index f85af55902..3d904720b0 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -496,7 +496,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.7889E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9961E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.3150E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.3150E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7855E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4772E-02 OP @@ -1659,7 +1659,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8240E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9751E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2760E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2760E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7767E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6299E-02 OP @@ -2822,7 +2822,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8985E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9727E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2781E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2781E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7693E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7864E-02 OP @@ -3985,7 +3985,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8956E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9773E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2692E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2692E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7816E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8030E-02 OP @@ -5148,7 +5148,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8995E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9645E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2382E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2382E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7788E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6562E-02 OP @@ -6311,7 +6311,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8676E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9471E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1873E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1873E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7790E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5083E-02 OP @@ -7474,7 +7474,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8858E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9508E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1836E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1836E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7872E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5242E-02 OP @@ -8637,7 +8637,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9000E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9498E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1813E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1813E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7862E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6667E-02 OP @@ -9800,7 +9800,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8564E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9521E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1847E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1847E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8077E-02 OP @@ -10963,7 +10963,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9158E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9576E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1905E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1905E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7946E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8348E-02 OP @@ -12126,7 +12126,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0058E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9558E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1851E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1851E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7900E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6972E-02 OP @@ -13289,7 +13289,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0074E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9518E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1733E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1733E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7896E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5548E-02 OP @@ -14452,7 +14452,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0607E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9571E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1764E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1764E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7957E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5780E-02 OP @@ -15615,7 +15615,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1011E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9628E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.1990E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1990E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7926E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7314E-02 OP @@ -16778,7 +16778,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1467E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9687E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.2221E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2221E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8950E-02 OP @@ -17636,7 +17636,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 930bb37222..644457b3f2 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -351,7 +351,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -1346,7 +1346,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -2341,7 +2341,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -3336,7 +3336,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -4331,7 +4331,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -5326,7 +5326,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -6321,7 +6321,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -7316,7 +7316,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP @@ -8311,7 +8311,7 @@ Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 5.0000E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index b120bd2137..005393bc87 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2958,7 +2958,7 @@ "NBshine-throughfracupperlimit", "CStemperaturemarginlowerlimit", "Minimumavailabilityvalue", - "t_alpha_confinement/taueff", + "f_alpha_energy_confinement", "numberofITER-likevacuumpumps", "Zefflimit", "DumptimesetbyVVstress", @@ -9636,7 +9636,7 @@ "fstrcond": "f-value for maxiumum TF coil conduit Tresca yield criterion\n (`constraint equation 32`, `iteration variable 49`)", "ftar": "fraction of power to the lower divertor in double null configuration\n (`i_single_null = 0` only) (default assumes SN)", "ftaucq": "f-value for calculated minimum TF quench time\n (`constraint equation 65`, `iteration variable 113`)", - "ftaulimit": "f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy\n confinement times (`constraint equation 62`, `iteration variable 110`)", + "ftaulimit": "f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy\n confinement times (`constraint equation 62`, `iteration variable 110`)", "ftbr": "f-value for minimum tritium breeding ratio (`constraint equation 52`, `iteration variable 89`)", "ft_burn": "f-value for minimum burn time (`constraint equation 13`, `iteration variable 21`)", "ftcycl": "f-value for cycle time (`constraint equation 42`, `iteration variable 67`)", @@ -9960,10 +9960,10 @@ "ki": "", "kron": "", "ksic": "power fraction for outboard double-null scrape-off plasma", - "lablcc": "lablcc(ipeqns) : labels describing constraint equations (corresponding itvs)
                      \n
                      \n
                    • ( 1) Beta (consistency equation) (itv 5)\n
                    • ( 2) Global power balance (consistency equation) (itv 10,1,2,3,4,6,11)\n
                    • ( 3) Ion power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
                    • ( 4) Electron power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
                    • ( 5) Density upper limit (itv 9,1,2,3,4,5,6)\n
                    • ( 6) (Epsilon x beta poloidal) upper limit (itv 8,1,2,3,4,6)\n
                    • ( 7) Beam ion density (NBI) (consistency equation) (itv 7)\n
                    • ( 8) Neutron wall load upper limit (itv 14,1,2,3,4,6)\n
                    • ( 9) Fusion power upper limit (itv 26,1,2,3,4,6)\n
                    • (10) Toroidal field 1/R (consistency equation) (itv 12,1,2,3,13 )\n
                    • (11) Radial build (consistency equation) (itv 3,1,13,16,29,42,61)\n
                    • (12) Volt second lower limit (STEADY STATE) (itv 15,1,2,3)\n
                    • (13) Burn time lower limit (PULSE) (itv 21,1,16,17,29,42,44,61)\n (itv 19,1,2,3,6)\n
                    • (14) Neutral beam decay lengths to plasma centre (NBI) (consistency equation)\n
                    • (15) LH power threshold limit (itv 103)\n
                    • (16) Net electric power lower limit (itv 25,1,2,3)\n
                    • (17) Radiation fraction upper limit (itv 28)\n
                    • (18) Divertor heat load upper limit (itv 27)\n
                    • (19) MVA upper limit (itv 30)\n
                    • (20) Neutral beam tangency radius upper limit (NBI) (itv 33,31,3,13)\n
                    • (21) Plasma minor radius lower limit (itv 32)\n
                    • (22) Divertor collisionality upper limit (itv 34,43)\n
                    • (23) Conducting shell to plasma minor radius ratio upper limit\n (itv 104,1,74)\n
                    • (24) Beta upper limit (itv 36,1,2,3,4,6,18)\n
                    • (25) Peak toroidal field upper limit (itv 35,3,13,29)\n
                    • (26) Central solenoid EOF current density upper limit (ipfres=0)\n (itv 38,37,41,12)\n
                    • (27) Central solenoid BOP current density upper limit (ipfres=0)\n (itv 39,37,41,12)\n
                    • (28) Fusion gain Q lower limit (itv 45,47,40)\n
                    • (29) Inboard radial build consistency (itv 3,1,13,16,29,42,61)\n
                    • (30) Injection power upper limit (itv 46,47,11)\n
                    • (31) TF coil case stress upper limit (SCTF) (itv 48,56,57,58,59,60,24)\n
                    • (32) TF coil conduit stress upper limit (SCTF) (itv 49,56,57,58,59,60,24)\n
                    • (33) I_op / I_critical (TF coil) (SCTF) (itv 50,56,57,58,59,60,24)\n
                    • (34) Dump voltage upper limit (SCTF) (itv 51,52,56,57,58,59,60,24)\n
                    • (35) J_winding pack/J_protection upper limit (SCTF) (itv 53,56,57,58,59,60,24)\n
                    • (36) TF coil temperature margin lower limit (SCTF) (itv 54,55,56,57,58,59,60,24)\n
                    • (37) Current drive gamma upper limit (itv 40,47)\n
                    • (38) First wall coolant temperature rise upper limit (itv 62)\n
                    • (39) First wall peak temperature upper limit (itv 63)\n
                    • (40) Start-up injection power lower limit (PULSE) (itv 64)\n
                    • (41) Plasma current ramp-up time lower limit (PULSE) (itv 66,65)\n
                    • (42) Cycle time lower limit (PULSE) (itv 17,67,65)\n
                    • (43) Average centrepost temperature\n (TART) (consistency equation) (itv 13,20,69,70)\n
                    • (44) Peak centrepost temperature upper limit (TART) (itv 68,69,70)\n
                    • (45) Edge safety factor lower limit (TART) (itv 71,1,2,3)\n
                    • (46) Equation for Ip/Irod upper limit (TART) (itv 72,2,60)\n
                    • (47) NOT USED\n
                    • (48) Poloidal beta upper limit (itv 79,2,3,18)\n
                    • (49) NOT USED\n
                    • (50) IFE repetition rate upper limit (IFE)\n
                    • (51) Startup volt-seconds consistency (PULSE) (itv 16,29,3,1)\n
                    • (52) Tritium breeding ratio lower limit (itv 89,90,91)\n
                    • (53) Neutron fluence on TF coil upper limit (itv 92,93,94)\n
                    • (54) Peak TF coil nuclear heating upper limit (itv 95,93,94)\n
                    • (55) Vacuum vessel helium concentration upper limit iblanket =2 (itv 96,93,94)\n
                    • (56) Pseparatrix/Rmajor upper limit (itv 97,1,3)\n
                    • (57) NOT USED\n
                    • (58) NOT USED\n
                    • (59) Neutral beam shine-through fraction upper limit (NBI) (itv 105,6,19,4 )\n
                    • (60) Central solenoid temperature margin lower limit (SCTF) (itv 106)\n
                    • (61) Minimum availability value (itv 107)\n
                    • (62) t_alpha_confinement/taueff the ratio of particle to energy confinement times (itv 110)\n
                    • (63) The number of ITER-like vacuum pumps niterpump < tfno (itv 111)\n
                    • (64) Zeff less than or equal to zeffmax (itv 112)\n
                    • (65) Dump time set by VV loads (itv 56, 113)\n
                    • (66) Limit on rate of change of energy in poloidal field\n (Use iteration variable 65(t_current_ramp_up), 115)\n
                    • (67) Simple Radiation Wall load limit (itv 116, 4,6)\n
                    • (68) Psep * Bt / qAR upper limit (itv 117)\n
                    • (69) ensure separatrix power = the value from Kallenbach divertor (itv 118)\n
                    • (70) ensure that teomp = separatrix temperature in the pedestal profile,\n (itv 119 (tesep))\n
                    • (71) ensure that neomp = separatrix density (nesep) x neratio\n
                    • (72) central solenoid shear stress limit (Tresca yield criterion) (itv 123 foh_stress)\n
                    • (73) Psep >= Plh + Paux (itv 137 (fplhsep))\n
                    • (74) TFC quench < tmax_croco (itv 141 (fcqt))\n
                    • (75) TFC current/copper area < Maximum (itv 143 f_coppera_m2)\n
                    • (76) Eich critical separatrix density\n
                    • (77) TF coil current per turn upper limit\n
                    • (78) Reinke criterion impurity fraction lower limit (itv 147 freinke)\n
                    • (79) Peak CS field upper limit (itv 149 fbmaxcs)\n
                    • (80) Divertor power lower limit pdivt (itv 153 fpdivlim)\n
                    • (81) Ne(0) > ne(ped) constraint (itv 154 fne0)\n
                    • (82) toroidalgap > tftort constraint (itv 171 ftoroidalgap)\n
                    • (83) Radial build consistency for stellarators (itv 172 f_avspace)\n
                    • (84) Lower limit for beta (itv 173 fbeta_min)\n
                    • (85) Constraint for CP lifetime\n
                    • (86) Constraint for TF coil turn dimension\n
                    • (87) Constraint for cryogenic power\n
                    • (88) Constraint for TF coil strain absolute value\n
                    • (89) Constraint for CS coil quench protection\n
                    • (90) Checking if the design point is ECRH ignitable (itv 164 fecrh_ignition)
                    \n\n\n\n", + "lablcc": "lablcc(ipeqns) : labels describing constraint equations (corresponding itvs)
                      \n
                      \n
                    • ( 1) Beta (consistency equation) (itv 5)\n
                    • ( 2) Global power balance (consistency equation) (itv 10,1,2,3,4,6,11)\n
                    • ( 3) Ion power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
                    • ( 4) Electron power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
                    • ( 5) Density upper limit (itv 9,1,2,3,4,5,6)\n
                    • ( 6) (Epsilon x beta poloidal) upper limit (itv 8,1,2,3,4,6)\n
                    • ( 7) Beam ion density (NBI) (consistency equation) (itv 7)\n
                    • ( 8) Neutron wall load upper limit (itv 14,1,2,3,4,6)\n
                    • ( 9) Fusion power upper limit (itv 26,1,2,3,4,6)\n
                    • (10) Toroidal field 1/R (consistency equation) (itv 12,1,2,3,13 )\n
                    • (11) Radial build (consistency equation) (itv 3,1,13,16,29,42,61)\n
                    • (12) Volt second lower limit (STEADY STATE) (itv 15,1,2,3)\n
                    • (13) Burn time lower limit (PULSE) (itv 21,1,16,17,29,42,44,61)\n (itv 19,1,2,3,6)\n
                    • (14) Neutral beam decay lengths to plasma centre (NBI) (consistency equation)\n
                    • (15) LH power threshold limit (itv 103)\n
                    • (16) Net electric power lower limit (itv 25,1,2,3)\n
                    • (17) Radiation fraction upper limit (itv 28)\n
                    • (18) Divertor heat load upper limit (itv 27)\n
                    • (19) MVA upper limit (itv 30)\n
                    • (20) Neutral beam tangency radius upper limit (NBI) (itv 33,31,3,13)\n
                    • (21) Plasma minor radius lower limit (itv 32)\n
                    • (22) Divertor collisionality upper limit (itv 34,43)\n
                    • (23) Conducting shell to plasma minor radius ratio upper limit\n (itv 104,1,74)\n
                    • (24) Beta upper limit (itv 36,1,2,3,4,6,18)\n
                    • (25) Peak toroidal field upper limit (itv 35,3,13,29)\n
                    • (26) Central solenoid EOF current density upper limit (ipfres=0)\n (itv 38,37,41,12)\n
                    • (27) Central solenoid BOP current density upper limit (ipfres=0)\n (itv 39,37,41,12)\n
                    • (28) Fusion gain Q lower limit (itv 45,47,40)\n
                    • (29) Inboard radial build consistency (itv 3,1,13,16,29,42,61)\n
                    • (30) Injection power upper limit (itv 46,47,11)\n
                    • (31) TF coil case stress upper limit (SCTF) (itv 48,56,57,58,59,60,24)\n
                    • (32) TF coil conduit stress upper limit (SCTF) (itv 49,56,57,58,59,60,24)\n
                    • (33) I_op / I_critical (TF coil) (SCTF) (itv 50,56,57,58,59,60,24)\n
                    • (34) Dump voltage upper limit (SCTF) (itv 51,52,56,57,58,59,60,24)\n
                    • (35) J_winding pack/J_protection upper limit (SCTF) (itv 53,56,57,58,59,60,24)\n
                    • (36) TF coil temperature margin lower limit (SCTF) (itv 54,55,56,57,58,59,60,24)\n
                    • (37) Current drive gamma upper limit (itv 40,47)\n
                    • (38) First wall coolant temperature rise upper limit (itv 62)\n
                    • (39) First wall peak temperature upper limit (itv 63)\n
                    • (40) Start-up injection power lower limit (PULSE) (itv 64)\n
                    • (41) Plasma current ramp-up time lower limit (PULSE) (itv 66,65)\n
                    • (42) Cycle time lower limit (PULSE) (itv 17,67,65)\n
                    • (43) Average centrepost temperature\n (TART) (consistency equation) (itv 13,20,69,70)\n
                    • (44) Peak centrepost temperature upper limit (TART) (itv 68,69,70)\n
                    • (45) Edge safety factor lower limit (TART) (itv 71,1,2,3)\n
                    • (46) Equation for Ip/Irod upper limit (TART) (itv 72,2,60)\n
                    • (47) NOT USED\n
                    • (48) Poloidal beta upper limit (itv 79,2,3,18)\n
                    • (49) NOT USED\n
                    • (50) IFE repetition rate upper limit (IFE)\n
                    • (51) Startup volt-seconds consistency (PULSE) (itv 16,29,3,1)\n
                    • (52) Tritium breeding ratio lower limit (itv 89,90,91)\n
                    • (53) Neutron fluence on TF coil upper limit (itv 92,93,94)\n
                    • (54) Peak TF coil nuclear heating upper limit (itv 95,93,94)\n
                    • (55) Vacuum vessel helium concentration upper limit iblanket =2 (itv 96,93,94)\n
                    • (56) Pseparatrix/Rmajor upper limit (itv 97,1,3)\n
                    • (57) NOT USED\n
                    • (58) NOT USED\n
                    • (59) Neutral beam shine-through fraction upper limit (NBI) (itv 105,6,19,4 )\n
                    • (60) Central solenoid temperature margin lower limit (SCTF) (itv 106)\n
                    • (61) Minimum availability value (itv 107)\n
                    • (62) f_alpha_energy_confinement the ratio of particle to energy confinement times (itv 110)\n
                    • (63) The number of ITER-like vacuum pumps niterpump < tfno (itv 111)\n
                    • (64) Zeff less than or equal to zeffmax (itv 112)\n
                    • (65) Dump time set by VV loads (itv 56, 113)\n
                    • (66) Limit on rate of change of energy in poloidal field\n (Use iteration variable 65(t_current_ramp_up), 115)\n
                    • (67) Simple Radiation Wall load limit (itv 116, 4,6)\n
                    • (68) Psep * Bt / qAR upper limit (itv 117)\n
                    • (69) ensure separatrix power = the value from Kallenbach divertor (itv 118)\n
                    • (70) ensure that teomp = separatrix temperature in the pedestal profile,\n (itv 119 (tesep))\n
                    • (71) ensure that neomp = separatrix density (nesep) x neratio\n
                    • (72) central solenoid shear stress limit (Tresca yield criterion) (itv 123 foh_stress)\n
                    • (73) Psep >= Plh + Paux (itv 137 (fplhsep))\n
                    • (74) TFC quench < tmax_croco (itv 141 (fcqt))\n
                    • (75) TFC current/copper area < Maximum (itv 143 f_coppera_m2)\n
                    • (76) Eich critical separatrix density\n
                    • (77) TF coil current per turn upper limit\n
                    • (78) Reinke criterion impurity fraction lower limit (itv 147 freinke)\n
                    • (79) Peak CS field upper limit (itv 149 fbmaxcs)\n
                    • (80) Divertor power lower limit pdivt (itv 153 fpdivlim)\n
                    • (81) Ne(0) > ne(ped) constraint (itv 154 fne0)\n
                    • (82) toroidalgap > tftort constraint (itv 171 ftoroidalgap)\n
                    • (83) Radial build consistency for stellarators (itv 172 f_avspace)\n
                    • (84) Lower limit for beta (itv 173 fbeta_min)\n
                    • (85) Constraint for CP lifetime\n
                    • (86) Constraint for TF coil turn dimension\n
                    • (87) Constraint for cryogenic power\n
                    • (88) Constraint for TF coil strain absolute value\n
                    • (89) Constraint for CS coil quench protection\n
                    • (90) Checking if the design point is ECRH ignitable (itv 164 fecrh_ignition)
                    \n\n\n\n", "lablmm": "lablmm(ipnfoms) : labels describing figures of merit:
                      \n
                      \n
                    • ( 1) major radius\n
                    • ( 2) not used\n
                    • ( 3) neutron wall load\n
                    • ( 4) P_tf + P_pf\n
                    • ( 5) fusion gain Q\n
                    • ( 6) cost of electricity\n
                    • ( 7) capital cost (direct cost if ireactor=0,\n constructed cost otherwise)\n
                    • ( 8) aspect ratio\n
                    • ( 9) divertor heat load\n
                    • (10) toroidal field\n
                    • (11) total injected power\n
                    • (12) hydrogen plant capital cost OBSOLETE\n
                    • (13) hydrogen production rate OBSOLETE\n
                    • (14) pulse length\n
                    • (15) plant availability factor (N.B. requires\n iavail=1 to be set)\n
                    • (16) linear combination of major radius (minimised) and pulse length (maximised)\n note: FoM should be minimised only!\n
                    • (17) net electrical output\n
                    • (18) Null Figure of Merit\n
                    • (19) linear combination of big Q and pulse length (maximised)\n note: FoM should be minimised only!
                    \n\n\n", - "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                      \n
                      \n
                    • ( 1) aspect\n
                    • ( 2) bt\n
                    • ( 3) rmajor\n
                    • ( 4) te\n
                    • ( 5) beta\n
                    • ( 6) dene\n
                    • ( 7) f_nd_beam_electron\n
                    • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                    • ( 9) fdene (f-value for equation 5)\n
                    • (10) hfact\n
                    • (11) pheat\n
                    • (12) oacdcp\n
                    • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                    • (14) fwalld (f-value for equation 8)\n
                    • (15) fvs (f-value for equation 12)\n
                    • (16) dr_cs\n
                    • (17) tdwell\n
                    • (18) q\n
                    • (19) beam_energy\n
                    • (20) tcpav\n
                    • (21) ftburn (f-value for equation 13)\n
                    • (22) NOT USED\n
                    • (23) fcoolcp\n
                    • (24) NOT USED\n
                    • (25) fpnetel (f-value for equation 16)\n
                    • (26) ffuspow (f-value for equation 9)\n
                    • (27) fhldiv (f-value for equation 18)\n
                    • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                    • (29) dr_bore\n
                    • (30) fmva (f-value for equation 19)\n
                    • (31) gapomin\n
                    • (32) frminor (f-value for equation 21)\n
                    • (33) fportsz (f-value for equation 20)\n
                    • (34) fdivcol (f-value for equation 22)\n
                    • (35) fpeakb (f-value for equation 25)\n
                    • (36) fbeta_max (f-value for equation 24)\n
                    • (37) coheof\n
                    • (38) fjohc (f-value for equation 26)\n
                    • (39) fjohc0 (f-value for equation 27)\n
                    • (40) fgamcd (f-value for equation 37)\n
                    • (41) fcohbop\n
                    • (42) dr_cs_tf_gap\n
                    • (43) NOT USED\n
                    • (44) fvsbrnni\n
                    • (45) fqval (f-value for equation 28)\n
                    • (46) fpinj (f-value for equation 30)\n
                    • (47) feffcd\n
                    • (48) fstrcase (f-value for equation 31)\n
                    • (49) fstrcond (f-value for equation 32)\n
                    • (50) fiooic (f-value for equation 33)\n
                    • (51) fvdump (f-value for equation 34)\n
                    • (52) vdalw\n
                    • (53) fjprot (f-value for equation 35)\n
                    • (54) ftmargtf (f-value for equation 36)\n
                    • (55) NOT USED\n
                    • (56) tdmptf\n
                    • (57) thkcas\n
                    • (58) thwcndut\n
                    • (59) fcutfsu\n
                    • (60) cpttf\n
                    • (61) dr_shld_vv_gap_inboard\n
                    • (62) fdtmp (f-value for equation 38)\n
                    • (63) ftpeak (f-value for equation 39)\n
                    • (64) fauxmn (f-value for equation 40)\n
                    • (65) tohs\n
                    • (66) ftohs (f-value for equation 41)\n
                    • (67) ftcycl (f-value for equation 42)\n
                    • (68) fptemp (f-value for equation 44)\n
                    • (69) rcool\n
                    • (70) vcool\n
                    • (71) fq (f-value for equation 45)\n
                    • (72) fipir (f-value for equation 46)\n
                    • (73) dr_fw_plasma_gap_inboard\n
                    • (74) dr_fw_plasma_gap_outboard\n
                    • (75) tfootfi\n
                    • (76) NOT USED\n
                    • (77) NOT USED\n
                    • (78) NOT USED\n
                    • (79) fbeta_poloidal (f-value for equation 48)\n
                    • (80) NOT USED\n
                    • (81) edrive\n
                    • (82) drveff\n
                    • (83) tgain\n
                    • (84) chrad\n
                    • (85) pdrive\n
                    • (86) frrmax (f-value for equation 50)\n
                    • (87) NOT USED\n
                    • (88) NOT USED\n
                    • (89) ftbr (f-value for equation 52)\n
                    • (90) blbuith\n
                    • (91) blbuoth\n
                    • (92) fflutf (f-value for equation 53)\n
                    • (93) dr_shld_inboard\n
                    • (94) dr_shld_outboard\n
                    • (95) fptfnuc (f-value for equation 54)\n
                    • (96) fvvhe (f-value for equation 55)\n
                    • (97) fpsepr (f-value for equation 56)\n
                    • (98) li6enrich\n
                    • (99) NOT USED\n
                    • (100) NOT USED\n
                    • (101) NOT USED\n
                    • (102) fimpvar\n
                    • (103) flhthresh (f-value for equation 15)\n
                    • (104)fr_conducting_wall (f-value for equation 23)\n
                    • (105) fnbshinef (f-value for equation 59)\n
                    • (106) ftmargoh (f-value for equation 60)\n
                    • (107) favail (f-value for equation 61)\n
                    • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                    • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                    • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha\n
                    • (111) fniterpump: f-value for constraint that number\n
                    • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                    • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                    • (114) fw_channel_length: Length of a single first wall channel\n
                    • (115) fpoloidalpower: f-value for max rate of change of\n
                    • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                    • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                    • (118) fpsep: f-value to ensure separatrix power is less than\n
                    • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                    • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                    • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                    • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                    • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                    • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                    • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                    • (126) fimp(4) : Carbon density fraction relative to electron density\n
                    • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                    • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                    • (129) fimp(7) : Neon density fraction relative to electron density\n
                    • (130) fimp(8) : Silicon density fraction relative to electron density\n
                    • (131) fimp(9) : Argon density fraction relative to electron density\n
                    • (132) fimp(10) : Iron density fraction relative to electron density\n
                    • (133) fimp(11) : Nickel density fraction relative to electron density\n
                    • (134) fimp(12) : Krypton density fraction relative to electron density\n
                    • (135) fimp(13) : Xenon density fraction relative to electron density\n
                    • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                    • (137) fplhsep (f-value for equation 73)\n
                    • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                    • (139) copper_thick : thickness of copper layer in tape (m)\n
                    • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                    • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                    • (142) nesep : electron density at separatrix [m-3]\n
                    • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                    • (144) fnesep : Eich critical electron density at separatrix\n
                    • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                    • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                    • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                    • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                    • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                    • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                    • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                    • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                    • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                    • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                    • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                    • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                    • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                    • (160) f_avspace (f-value for equation 83)\n
                    • (161) fbeta_min (f-value for equation 84)\n
                    • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                    • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                    • (164) f_crypmw : f-value for cryogenic plant power\n
                    • (165) fstr_wp : f-value for TF coil strain absolute value\n
                    • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                    • (167) fecrh_ignition: f-value for equation 90\n
                    • (168) EMPTY : Description\n
                    • (169) EMPTY : Description\n
                    • (170) EMPTY : Description\n
                    • (171) EMPTY : Description\n
                    • (172) EMPTY : Description\n
                    • (173) EMPTY : Description\n
                    • (174) EMPTY : Description\n
                    • (175) EMPTY : Description\n\n\n\n", - "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                        \n
                        \n
                      • ( 1) aspect\n
                      • ( 2) bt\n
                      • ( 3) rmajor\n
                      • ( 4) te\n
                      • ( 5) beta\n
                      • ( 6) dene\n
                      • ( 7) f_nd_beam_electron\n
                      • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                      • ( 9) fdene (f-value for equation 5)\n
                      • (10) hfact\n
                      • (11) pheat\n
                      • (12) oacdcp\n
                      • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                      • (14) fwalld (f-value for equation 8)\n
                      • (15) fvs (f-value for equation 12)\n
                      • (16) dr_cs\n
                      • (17) t_between_pulse\n
                      • (18) q\n
                      • (19) beam_energy\n
                      • (20) tcpav\n
                      • (21) ft_burn (f-value for equation 13)\n
                      • (22) NOT USED\n
                      • (23) fcoolcp\n
                      • (24) NOT USED\n
                      • (25) fpnetel (f-value for equation 16)\n
                      • (26) ffuspow (f-value for equation 9)\n
                      • (27) fhldiv (f-value for equation 18)\n
                      • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                      • (29) dr_bore\n
                      • (30) fmva (f-value for equation 19)\n
                      • (31) gapomin\n
                      • (32) frminor (f-value for equation 21)\n
                      • (33) fportsz (f-value for equation 20)\n
                      • (34) fdivcol (f-value for equation 22)\n
                      • (35) fpeakb (f-value for equation 25)\n
                      • (36) fbeta_max (f-value for equation 24)\n
                      • (37) coheof\n
                      • (38) fjohc (f-value for equation 26)\n
                      • (39) fjohc0 (f-value for equation 27)\n
                      • (40) fgamcd (f-value for equation 37)\n
                      • (41) fcohbop\n
                      • (42) dr_cs_tf_gap\n
                      • (43) NOT USED\n
                      • (44) fvsbrnni\n
                      • (45) fqval (f-value for equation 28)\n
                      • (46) fpinj (f-value for equation 30)\n
                      • (47) feffcd\n
                      • (48) fstrcase (f-value for equation 31)\n
                      • (49) fstrcond (f-value for equation 32)\n
                      • (50) fiooic (f-value for equation 33)\n
                      • (51) fvdump (f-value for equation 34)\n
                      • (52) vdalw\n
                      • (53) fjprot (f-value for equation 35)\n
                      • (54) ftmargtf (f-value for equation 36)\n
                      • (55) NOT USED\n
                      • (56) tdmptf\n
                      • (57) thkcas\n
                      • (58) thwcndut\n
                      • (59) fcutfsu\n
                      • (60) cpttf\n
                      • (61) dr_shld_vv_gap_inboard\n
                      • (62) fdtmp (f-value for equation 38)\n
                      • (63) ftpeak (f-value for equation 39)\n
                      • (64) fauxmn (f-value for equation 40)\n
                      • (65) t_current_ramp_up\n
                      • (66) ft_current_ramp_up (f-value for equation 41)\n
                      • (67) ftcycl (f-value for equation 42)\n
                      • (68) fptemp (f-value for equation 44)\n
                      • (69) rcool\n
                      • (70) vcool\n
                      • (71) fq (f-value for equation 45)\n
                      • (72) fipir (f-value for equation 46)\n
                      • (73) dr_fw_plasma_gap_inboard\n
                      • (74) dr_fw_plasma_gap_outboard\n
                      • (75) tfootfi\n
                      • (76) NOT USED\n
                      • (77) NOT USED\n
                      • (78) NOT USED\n
                      • (79) fbetap (f-value for equation 48)\n
                      • (80) NOT USED\n
                      • (81) edrive\n
                      • (82) drveff\n
                      • (83) tgain\n
                      • (84) chrad\n
                      • (85) pdrive\n
                      • (86) frrmax (f-value for equation 50)\n
                      • (87) NOT USED\n
                      • (88) NOT USED\n
                      • (89) ftbr (f-value for equation 52)\n
                      • (90) blbuith\n
                      • (91) blbuoth\n
                      • (92) fflutf (f-value for equation 53)\n
                      • (93) dr_shld_inboard\n
                      • (94) dr_shld_outboard\n
                      • (95) fptfnuc (f-value for equation 54)\n
                      • (96) fvvhe (f-value for equation 55)\n
                      • (97) fpsepr (f-value for equation 56)\n
                      • (98) li6enrich\n
                      • (99) NOT USED\n
                      • (100) NOT USED\n
                      • (101) NOT USED\n
                      • (102) fimpvar\n
                      • (103) flhthresh (f-value for equation 15)\n
                      • (104)fr_conducting_wall (f-value for equation 23)\n
                      • (105) fnbshinef (f-value for equation 59)\n
                      • (106) ftmargoh (f-value for equation 60)\n
                      • (107) favail (f-value for equation 61)\n
                      • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                      • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                      • (110) ftaulimit: Lower limit on t_alpha_confinement/taueff the ratio of alpha\n
                      • (111) fniterpump: f-value for constraint that number\n
                      • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                      • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                      • (114) fw_channel_length: Length of a single first wall channel\n
                      • (115) fpoloidalpower: f-value for max rate of change of\n
                      • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                      • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                      • (118) fpsep: f-value to ensure separatrix power is less than\n
                      • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                      • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                      • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                      • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                      • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                      • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                      • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                      • (126) fimp(4) : Carbon density fraction relative to electron density\n
                      • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                      • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                      • (129) fimp(7) : Neon density fraction relative to electron density\n
                      • (130) fimp(8) : Silicon density fraction relative to electron density\n
                      • (131) fimp(9) : Argon density fraction relative to electron density\n
                      • (132) fimp(10) : Iron density fraction relative to electron density\n
                      • (133) fimp(11) : Nickel density fraction relative to electron density\n
                      • (134) fimp(12) : Krypton density fraction relative to electron density\n
                      • (135) fimp(13) : Xenon density fraction relative to electron density\n
                      • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                      • (137) fplhsep (f-value for equation 73)\n
                      • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                      • (139) copper_thick : thickness of copper layer in tape (m)\n
                      • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                      • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                      • (142) nesep : electron density at separatrix [m-3]\n
                      • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                      • (144) fnesep : Eich critical electron density at separatrix\n
                      • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                      • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                      • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                      • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                      • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                      • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                      • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                      • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                      • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                      • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                      • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                      • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                      • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                      • (160) f_avspace (f-value for equation 83)\n
                      • (161) fbeta_min (f-value for equation 84)\n
                      • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                      • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                      • (164) f_crypmw : f-value for cryogenic plant power\n
                      • (165) fstr_wp : f-value for TF coil strain absolute value\n
                      • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                      • (167) fecrh_ignition: f-value for equation 90\n
                      • (168) EMPTY : Description\n
                      • (169) EMPTY : Description\n
                      • (170) EMPTY : Description\n
                      • (171) EMPTY : Description\n
                      • (172) EMPTY : Description\n
                      • (173) EMPTY : Description\n
                      • (174) EMPTY : Description\n
                      • (175) EMPTY : Description\n\n\n\n", + "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                          \n
                          \n
                        • ( 1) aspect\n
                        • ( 2) bt\n
                        • ( 3) rmajor\n
                        • ( 4) te\n
                        • ( 5) beta\n
                        • ( 6) dene\n
                        • ( 7) f_nd_beam_electron\n
                        • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                        • ( 9) fdene (f-value for equation 5)\n
                        • (10) hfact\n
                        • (11) pheat\n
                        • (12) oacdcp\n
                        • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                        • (14) fwalld (f-value for equation 8)\n
                        • (15) fvs (f-value for equation 12)\n
                        • (16) dr_cs\n
                        • (17) tdwell\n
                        • (18) q\n
                        • (19) beam_energy\n
                        • (20) tcpav\n
                        • (21) ftburn (f-value for equation 13)\n
                        • (22) NOT USED\n
                        • (23) fcoolcp\n
                        • (24) NOT USED\n
                        • (25) fpnetel (f-value for equation 16)\n
                        • (26) ffuspow (f-value for equation 9)\n
                        • (27) fhldiv (f-value for equation 18)\n
                        • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                        • (29) dr_bore\n
                        • (30) fmva (f-value for equation 19)\n
                        • (31) gapomin\n
                        • (32) frminor (f-value for equation 21)\n
                        • (33) fportsz (f-value for equation 20)\n
                        • (34) fdivcol (f-value for equation 22)\n
                        • (35) fpeakb (f-value for equation 25)\n
                        • (36) fbeta_max (f-value for equation 24)\n
                        • (37) coheof\n
                        • (38) fjohc (f-value for equation 26)\n
                        • (39) fjohc0 (f-value for equation 27)\n
                        • (40) fgamcd (f-value for equation 37)\n
                        • (41) fcohbop\n
                        • (42) dr_cs_tf_gap\n
                        • (43) NOT USED\n
                        • (44) fvsbrnni\n
                        • (45) fqval (f-value for equation 28)\n
                        • (46) fpinj (f-value for equation 30)\n
                        • (47) feffcd\n
                        • (48) fstrcase (f-value for equation 31)\n
                        • (49) fstrcond (f-value for equation 32)\n
                        • (50) fiooic (f-value for equation 33)\n
                        • (51) fvdump (f-value for equation 34)\n
                        • (52) vdalw\n
                        • (53) fjprot (f-value for equation 35)\n
                        • (54) ftmargtf (f-value for equation 36)\n
                        • (55) NOT USED\n
                        • (56) tdmptf\n
                        • (57) thkcas\n
                        • (58) thwcndut\n
                        • (59) fcutfsu\n
                        • (60) cpttf\n
                        • (61) dr_shld_vv_gap_inboard\n
                        • (62) fdtmp (f-value for equation 38)\n
                        • (63) ftpeak (f-value for equation 39)\n
                        • (64) fauxmn (f-value for equation 40)\n
                        • (65) tohs\n
                        • (66) ftohs (f-value for equation 41)\n
                        • (67) ftcycl (f-value for equation 42)\n
                        • (68) fptemp (f-value for equation 44)\n
                        • (69) rcool\n
                        • (70) vcool\n
                        • (71) fq (f-value for equation 45)\n
                        • (72) fipir (f-value for equation 46)\n
                        • (73) dr_fw_plasma_gap_inboard\n
                        • (74) dr_fw_plasma_gap_outboard\n
                        • (75) tfootfi\n
                        • (76) NOT USED\n
                        • (77) NOT USED\n
                        • (78) NOT USED\n
                        • (79) fbeta_poloidal (f-value for equation 48)\n
                        • (80) NOT USED\n
                        • (81) edrive\n
                        • (82) drveff\n
                        • (83) tgain\n
                        • (84) chrad\n
                        • (85) pdrive\n
                        • (86) frrmax (f-value for equation 50)\n
                        • (87) NOT USED\n
                        • (88) NOT USED\n
                        • (89) ftbr (f-value for equation 52)\n
                        • (90) blbuith\n
                        • (91) blbuoth\n
                        • (92) fflutf (f-value for equation 53)\n
                        • (93) dr_shld_inboard\n
                        • (94) dr_shld_outboard\n
                        • (95) fptfnuc (f-value for equation 54)\n
                        • (96) fvvhe (f-value for equation 55)\n
                        • (97) fpsepr (f-value for equation 56)\n
                        • (98) li6enrich\n
                        • (99) NOT USED\n
                        • (100) NOT USED\n
                        • (101) NOT USED\n
                        • (102) fimpvar\n
                        • (103) flhthresh (f-value for equation 15)\n
                        • (104)fr_conducting_wall (f-value for equation 23)\n
                        • (105) fnbshinef (f-value for equation 59)\n
                        • (106) ftmargoh (f-value for equation 60)\n
                        • (107) favail (f-value for equation 61)\n
                        • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                        • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                        • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha\n
                        • (111) fniterpump: f-value for constraint that number\n
                        • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                        • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                        • (114) fw_channel_length: Length of a single first wall channel\n
                        • (115) fpoloidalpower: f-value for max rate of change of\n
                        • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                        • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                        • (118) fpsep: f-value to ensure separatrix power is less than\n
                        • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                        • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                        • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                        • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                        • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                        • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                        • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                        • (126) fimp(4) : Carbon density fraction relative to electron density\n
                        • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                        • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                        • (129) fimp(7) : Neon density fraction relative to electron density\n
                        • (130) fimp(8) : Silicon density fraction relative to electron density\n
                        • (131) fimp(9) : Argon density fraction relative to electron density\n
                        • (132) fimp(10) : Iron density fraction relative to electron density\n
                        • (133) fimp(11) : Nickel density fraction relative to electron density\n
                        • (134) fimp(12) : Krypton density fraction relative to electron density\n
                        • (135) fimp(13) : Xenon density fraction relative to electron density\n
                        • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                        • (137) fplhsep (f-value for equation 73)\n
                        • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                        • (139) copper_thick : thickness of copper layer in tape (m)\n
                        • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                        • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                        • (142) nesep : electron density at separatrix [m-3]\n
                        • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                        • (144) fnesep : Eich critical electron density at separatrix\n
                        • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                        • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                        • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                        • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                        • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                        • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                        • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                        • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                        • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                        • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                        • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                        • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                        • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                        • (160) f_avspace (f-value for equation 83)\n
                        • (161) fbeta_min (f-value for equation 84)\n
                        • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                        • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                        • (164) f_crypmw : f-value for cryogenic plant power\n
                        • (165) fstr_wp : f-value for TF coil strain absolute value\n
                        • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                        • (167) fecrh_ignition: f-value for equation 90\n
                        • (168) EMPTY : Description\n
                        • (169) EMPTY : Description\n
                        • (170) EMPTY : Description\n
                        • (171) EMPTY : Description\n
                        • (172) EMPTY : Description\n
                        • (173) EMPTY : Description\n
                        • (174) EMPTY : Description\n
                        • (175) EMPTY : Description\n\n\n\n", + "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                            \n
                            \n
                          • ( 1) aspect\n
                          • ( 2) bt\n
                          • ( 3) rmajor\n
                          • ( 4) te\n
                          • ( 5) beta\n
                          • ( 6) dene\n
                          • ( 7) f_nd_beam_electron\n
                          • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                          • ( 9) fdene (f-value for equation 5)\n
                          • (10) hfact\n
                          • (11) pheat\n
                          • (12) oacdcp\n
                          • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                          • (14) fwalld (f-value for equation 8)\n
                          • (15) fvs (f-value for equation 12)\n
                          • (16) dr_cs\n
                          • (17) t_between_pulse\n
                          • (18) q\n
                          • (19) beam_energy\n
                          • (20) tcpav\n
                          • (21) ft_burn (f-value for equation 13)\n
                          • (22) NOT USED\n
                          • (23) fcoolcp\n
                          • (24) NOT USED\n
                          • (25) fpnetel (f-value for equation 16)\n
                          • (26) ffuspow (f-value for equation 9)\n
                          • (27) fhldiv (f-value for equation 18)\n
                          • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                          • (29) dr_bore\n
                          • (30) fmva (f-value for equation 19)\n
                          • (31) gapomin\n
                          • (32) frminor (f-value for equation 21)\n
                          • (33) fportsz (f-value for equation 20)\n
                          • (34) fdivcol (f-value for equation 22)\n
                          • (35) fpeakb (f-value for equation 25)\n
                          • (36) fbeta_max (f-value for equation 24)\n
                          • (37) coheof\n
                          • (38) fjohc (f-value for equation 26)\n
                          • (39) fjohc0 (f-value for equation 27)\n
                          • (40) fgamcd (f-value for equation 37)\n
                          • (41) fcohbop\n
                          • (42) dr_cs_tf_gap\n
                          • (43) NOT USED\n
                          • (44) fvsbrnni\n
                          • (45) fqval (f-value for equation 28)\n
                          • (46) fpinj (f-value for equation 30)\n
                          • (47) feffcd\n
                          • (48) fstrcase (f-value for equation 31)\n
                          • (49) fstrcond (f-value for equation 32)\n
                          • (50) fiooic (f-value for equation 33)\n
                          • (51) fvdump (f-value for equation 34)\n
                          • (52) vdalw\n
                          • (53) fjprot (f-value for equation 35)\n
                          • (54) ftmargtf (f-value for equation 36)\n
                          • (55) NOT USED\n
                          • (56) tdmptf\n
                          • (57) thkcas\n
                          • (58) thwcndut\n
                          • (59) fcutfsu\n
                          • (60) cpttf\n
                          • (61) dr_shld_vv_gap_inboard\n
                          • (62) fdtmp (f-value for equation 38)\n
                          • (63) ftpeak (f-value for equation 39)\n
                          • (64) fauxmn (f-value for equation 40)\n
                          • (65) t_current_ramp_up\n
                          • (66) ft_current_ramp_up (f-value for equation 41)\n
                          • (67) ftcycl (f-value for equation 42)\n
                          • (68) fptemp (f-value for equation 44)\n
                          • (69) rcool\n
                          • (70) vcool\n
                          • (71) fq (f-value for equation 45)\n
                          • (72) fipir (f-value for equation 46)\n
                          • (73) dr_fw_plasma_gap_inboard\n
                          • (74) dr_fw_plasma_gap_outboard\n
                          • (75) tfootfi\n
                          • (76) NOT USED\n
                          • (77) NOT USED\n
                          • (78) NOT USED\n
                          • (79) fbetap (f-value for equation 48)\n
                          • (80) NOT USED\n
                          • (81) edrive\n
                          • (82) drveff\n
                          • (83) tgain\n
                          • (84) chrad\n
                          • (85) pdrive\n
                          • (86) frrmax (f-value for equation 50)\n
                          • (87) NOT USED\n
                          • (88) NOT USED\n
                          • (89) ftbr (f-value for equation 52)\n
                          • (90) blbuith\n
                          • (91) blbuoth\n
                          • (92) fflutf (f-value for equation 53)\n
                          • (93) dr_shld_inboard\n
                          • (94) dr_shld_outboard\n
                          • (95) fptfnuc (f-value for equation 54)\n
                          • (96) fvvhe (f-value for equation 55)\n
                          • (97) fpsepr (f-value for equation 56)\n
                          • (98) li6enrich\n
                          • (99) NOT USED\n
                          • (100) NOT USED\n
                          • (101) NOT USED\n
                          • (102) fimpvar\n
                          • (103) flhthresh (f-value for equation 15)\n
                          • (104)fr_conducting_wall (f-value for equation 23)\n
                          • (105) fnbshinef (f-value for equation 59)\n
                          • (106) ftmargoh (f-value for equation 60)\n
                          • (107) favail (f-value for equation 61)\n
                          • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                          • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                          • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha\n
                          • (111) fniterpump: f-value for constraint that number\n
                          • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                          • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                          • (114) fw_channel_length: Length of a single first wall channel\n
                          • (115) fpoloidalpower: f-value for max rate of change of\n
                          • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                          • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                          • (118) fpsep: f-value to ensure separatrix power is less than\n
                          • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                          • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                          • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                          • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                          • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                          • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                          • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                          • (126) fimp(4) : Carbon density fraction relative to electron density\n
                          • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                          • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                          • (129) fimp(7) : Neon density fraction relative to electron density\n
                          • (130) fimp(8) : Silicon density fraction relative to electron density\n
                          • (131) fimp(9) : Argon density fraction relative to electron density\n
                          • (132) fimp(10) : Iron density fraction relative to electron density\n
                          • (133) fimp(11) : Nickel density fraction relative to electron density\n
                          • (134) fimp(12) : Krypton density fraction relative to electron density\n
                          • (135) fimp(13) : Xenon density fraction relative to electron density\n
                          • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                          • (137) fplhsep (f-value for equation 73)\n
                          • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                          • (139) copper_thick : thickness of copper layer in tape (m)\n
                          • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                          • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                          • (142) nesep : electron density at separatrix [m-3]\n
                          • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                          • (144) fnesep : Eich critical electron density at separatrix\n
                          • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                          • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                          • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                          • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                          • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                          • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                          • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                          • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                          • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                          • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                          • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                          • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                          • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                          • (160) f_avspace (f-value for equation 83)\n
                          • (161) fbeta_min (f-value for equation 84)\n
                          • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                          • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                          • (164) f_crypmw : f-value for cryogenic plant power\n
                          • (165) fstr_wp : f-value for TF coil strain absolute value\n
                          • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                          • (167) fecrh_ignition: f-value for equation 90\n
                          • (168) EMPTY : Description\n
                          • (169) EMPTY : Description\n
                          • (170) EMPTY : Description\n
                          • (171) EMPTY : Description\n
                          • (172) EMPTY : Description\n
                          • (173) EMPTY : Description\n
                          • (174) EMPTY : Description\n
                          • (175) EMPTY : Description\n\n\n\n", "lambda_EU": "Decay length in EUROFER [cm]", "lambda_He_VV": "Decay length [cm]", "lambda_n_BZ_IB": "Decay length in IB BZ [cm]", @@ -10736,7 +10736,7 @@ "taueff": "global thermal energy confinement time (sec)", "t_ion_confinement": "ion energy confinement time (sec)", "taufall": "Lithium Fall Time (s)", - "taulimit": "Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", + "taulimit": "Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", "taumax": "Maximum allowed energy confinement time (s)", "t_alpha_confinement": "alpha particle confinement time (sec)", "tauratio": "tauratio /1.0/ : ratio of He and pellet particle confinement times", diff --git a/tests/regression/input_files/large_tokamak.IN.DAT b/tests/regression/input_files/large_tokamak.IN.DAT index 29980b92ec..7dfe6c88bc 100644 --- a/tests/regression/input_files/large_tokamak.IN.DAT +++ b/tests/regression/input_files/large_tokamak.IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/regression/input_files/large_tokamak_nof.IN.DAT b/tests/regression/input_files/large_tokamak_nof.IN.DAT index e27c493af9..0b2a46e800 100644 --- a/tests/regression/input_files/large_tokamak_nof.IN.DAT +++ b/tests/regression/input_files/large_tokamak_nof.IN.DAT @@ -113,7 +113,7 @@ tmargmin = 1.5 icc = 60 tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 taulimit = 5.0 diff --git a/tests/regression/input_files/large_tokamak_once_through.IN.DAT b/tests/regression/input_files/large_tokamak_once_through.IN.DAT index 642722fb56..86eda5bac1 100644 --- a/tests/regression/input_files/large_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/large_tokamak_once_through.IN.DAT @@ -143,7 +143,7 @@ powfmax = 3000 * maximum fusion power (MW) (`constraint equation 9`) psepbqarmax = 10.0 * maximum ratio of Psep*Bt/qAR (MWT/m) (`constraint equation 68`) t_burn_min = 7200.0 * minimum burn time (s) (KE - no longer itv;; see issue #706) walalw = 2.0 * allowable neutron wall-load (MW/m2) (`constraint equation 8`) -taulimit = 5.0 * Lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement +taulimit = 5.0 * Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement *-------------------Constraints--------------------* diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index a5bf624376..f17692d523 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -451,7 +451,7 @@ boundu(21) = 10.0 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ icc = 62 -* DESCRIPTION: t_alpha_confinement/taueff ratio of particle to energy confinement times +* DESCRIPTION: f_alpha_energy_confinement ratio of particle to energy confinement times * JUSTIFICATION: Used to constrain helium fraction * VARIABLES: taueff,t_alpha_confinement calculated in-situ @@ -459,7 +459,7 @@ ixc = 110 ftaulimit = 1.0 boundl(110) = 0.01 boundu(110) = 1.0 -* DESCRIPTION: f-value for lower limit on t_alpha_confinement/taueff the ratio of alpha particle to energy confinement times +* DESCRIPTION: f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times * JUSTIFICATION: Calculate He fraction consistent with tau ratio taulimit = 5.0 diff --git a/tests/unit/data/large_tokamak_IN.DAT b/tests/unit/data/large_tokamak_IN.DAT index 85bcd2866f..29fcef77b6 100644 --- a/tests/unit/data/large_tokamak_IN.DAT +++ b/tests/unit/data/large_tokamak_IN.DAT @@ -151,7 +151,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index ccca0943b4..364f90ad7a 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -491,7 +491,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 - Alpha_particle/energy_confinement_time_ratio____________________________ (t_alpha_confinement/taueff)_________________ 6.8629E+00 + Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8629E+00 Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP @@ -1342,7 +1342,7 @@ icc = 60 ixc = 106 * ftmargoh tmargmin_cs = 1.5 -* Lower limit on t_alpha_confinement/taueff (ratio alpha particle/energy confinement times) * +* Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit From 649679910bacb5299aa92ee4f333384c0653f35b Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 15:31:05 +0000 Subject: [PATCH 059/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20taueff=20to=20t?= =?UTF-8?q?=5Fenergy=5Fconfinement=20for=20clarity=20and=20update=20relate?= =?UTF-8?q?d=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +++---- process/io/mfile_comparison.py | 2 +- process/io/plot_proc.py | 2 +- process/io/variable_metadata.py | 2 +- process/physics.py | 52 ++++++++++++------- process/stellarator.py | 6 +-- source/fortran/constraint_equations.f90 | 8 +-- source/fortran/physics_variables.f90 | 4 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++------ tests/integration/data/scan_MFILE.DAT | 18 +++---- tests/integration/ref_dicts.json | 6 +-- .../input_files/st_regression.IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 48 +++++++++-------- tracking/tracking_data.py | 2 +- 25 files changed, 120 insertions(+), 102 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 44f42de3e6..3a7f2967f8 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -489,7 +489,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.4410E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1808E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2379E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2379E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2379E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2379E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.6225E+20 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index ae64d88c47..c3b68fabf9 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 1aef2e7920..38fc7facf0 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 09ab24e236..a21bcd0ce9 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 6e9323565d..c4f9aae281 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 8bf94f1704..6fdd7de5a1 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -342,7 +342,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -1337,7 +1337,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -2332,7 +2332,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -3327,7 +3327,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -4322,7 +4322,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -5317,7 +5317,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -6312,7 +6312,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -7307,7 +7307,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -8302,7 +8302,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP diff --git a/process/io/mfile_comparison.py b/process/io/mfile_comparison.py index 7f7c762e7a..9d82f0a54c 100644 --- a/process/io/mfile_comparison.py +++ b/process/io/mfile_comparison.py @@ -130,7 +130,7 @@ "neped", "zeff", "nd_impurities", - "taueff", + "t_energy_confinement", "hfact", "tauelaw", "f_nd_alpha_electron", diff --git a/process/io/plot_proc.py b/process/io/plot_proc.py index 8a53dcfefe..06417ffb91 100644 --- a/process/io/plot_proc.py +++ b/process/io/plot_proc.py @@ -2442,7 +2442,7 @@ def plot_physics_info(axis, mfile_data, scan): (nepeak, r"$n_{e0} \ / \ \langle n_{\mathrm{e, vol}} \rangle$", ""), ("zeff", r"$Z_{\mathrm{eff}}$", ""), (nd_impurities, r"$n_Z \ / \ \langle n_{\mathrm{e, vol}} \rangle$", ""), - ("taueff", r"$\tau_e$", "s"), + ("t_energy_confinement", r"$\tau_e$", "s"), ("hfact", "H-factor", ""), (pthresh, "H-mode threshold", "MW"), ("tauelaw", "Scaling law", ""), diff --git a/process/io/variable_metadata.py b/process/io/variable_metadata.py index b75d26e746..3f133e2536 100644 --- a/process/io/variable_metadata.py +++ b/process/io/variable_metadata.py @@ -39,7 +39,7 @@ class VariableMetadata: description="Net electrical power", units="MW", ), - "taueff": VariableMetadata( + "t_energy_confinement": VariableMetadata( latex=r"$\tau_\mathrm{E}$ [s]", description="Effective energy confinement time", units="s", diff --git a/process/physics.py b/process/physics.py index c7890e26b1..f4f33d9404 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2252,7 +2252,7 @@ def physics(self): physics_variables.ptrepv, physics_variables.ptripv, physics_variables.t_electron_confinement, - physics_variables.taueff, + physics_variables.t_energy_confinement, physics_variables.t_ion_confinement, physics_variables.powerht, ) = self.calculate_confinement_time( @@ -2338,7 +2338,7 @@ def physics(self): physics_variables.plasma_current, sbar, physics_variables.nd_alphas, - physics_variables.taueff, + physics_variables.t_energy_confinement, physics_variables.vol_plasma, ) @@ -2966,7 +2966,7 @@ def phyaux( plasma_current: float, sbar: float, nd_alphas: float, - taueff: float, + t_energy_confinement: float, vol_plasma: float, ) -> tuple[float, float, float, float, float, float, float, float]: """Auxiliary physics quantities @@ -2980,7 +2980,7 @@ def phyaux( plasma_current (float): Plasma current (A). sbar (float): Exponent for aspect ratio (normally 1). dnalp (float): Alpha ash density (/m3). - taueff (float): Global energy confinement time (s). + t_energy_confinement (float): Global energy confinement time (s). vol_plasma (float): Plasma volume (m3). Returns: @@ -2998,7 +2998,7 @@ def phyaux( """ figmer = 1e-6 * plasma_current * aspect**sbar - dntau = taueff * dene + dntau = t_energy_confinement * dene # Fusion reactions per second fusrat = fusion_rate_density_total * plasma_volume @@ -3031,15 +3031,23 @@ def phyaux( # Required fuelling rate (fuel ion pairs/second) (previously Amps) qfuel = rndfuel / burnup - f_alpha_energy_confinement = t_alpha_confinement / taueff + f_alpha_energy_confinement = t_alpha_confinement / t_energy_confinement - return burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, f_alpha_energy_confinement + return ( + burnup, + dntau, + figmer, + fusrat, + qfuel, + rndfuel, + t_alpha_confinement, + f_alpha_energy_confinement, + ) figmer = 1e-6 * plasma_current * aspect**sbar - dntau = taueff * dene - - + dntau = t_energy_confinement * dene + # Fusion reactions per second fusrat = fusion_rate_density_total * vol_plasma @@ -3080,10 +3088,18 @@ def phyaux( qfuel = rndfuel / burnup - f_alpha_energy_confinement = t_alpha_confinement / taueff + f_alpha_energy_confinement = t_alpha_confinement / t_energy_confinement - - return burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, f_alpha_energy_confinement + return ( + burnup, + dntau, + figmer, + fusrat, + qfuel, + rndfuel, + t_alpha_confinement, + f_alpha_energy_confinement, + ) @staticmethod def plasma_ohmic_heating( @@ -5246,8 +5262,8 @@ def outplas(self): po.ovarrf( self.outfile, "Global thermal energy confinement time (s)", - "(taueff)", - physics_variables.taueff, + "(t_energy_confinement)", + physics_variables.t_energy_confinement, "OP ", ) po.ovarrf( @@ -6793,7 +6809,7 @@ def calculate_confinement_time( ptrepv : output real : electron transport power (MW/m3) ptripv : output real : ion transport power (MW/m3) t_electron_confinement : output real : electron energy confinement time (s) - taueff : output real : global energy confinement time (s) + t_energy_confinement : output real : global energy confinement time (s) t_ion_confinement : output real : ion energy confinement time (s) powerht : output real : heating power (MW) assumed in calculation This subroutine calculates the energy confinement time @@ -7621,7 +7637,7 @@ def calculate_confinement_time( # Global energy confinement time - taueff = (ratio + 1.0e0) / ( + t_energy_confinement = (ratio + 1.0e0) / ( ratio / t_ion_confinement + 1.0e0 / t_electron_confinement ) @@ -7631,7 +7647,7 @@ def calculate_confinement_time( ptripv, t_electron_confinement, t_ion_confinement, - taueff, + t_energy_confinement, powerht, ) diff --git a/process/stellarator.py b/process/stellarator.py index 3e9de58389..639352533c 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -218,7 +218,7 @@ def stigma(self): physics_variables.ptripv, physics_variables.t_electron_confinement, physics_variables.t_ion_confinement, - physics_variables.taueff, + physics_variables.t_energy_confinement, physics_variables.powerht, ) = self.physics.calculate_confinement_time( physics_variables.m_fuel_amu, @@ -4459,7 +4459,7 @@ def stphys(self, output): physics_variables.ptripv, physics_variables.t_electron_confinement, physics_variables.t_ion_confinement, - physics_variables.taueff, + physics_variables.t_energy_confinement, physics_variables.powerht, ) = self.physics.calculate_confinement_time( physics_variables.m_fuel_amu, @@ -4524,7 +4524,7 @@ def stphys(self, output): physics_variables.plasma_current, sbar, physics_variables.nd_alphas, - physics_variables.taueff, + physics_variables.t_energy_confinement, physics_variables.vol_plasma, ) diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 51e10514fd..6e5e047ff3 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -2457,10 +2457,10 @@ subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! Logic change during pre-factoring: err, symbol, units will be assigned only if present. !! ftaulimit : input real : f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement !! t_alpha_confinement : input real : alpha particle confinement time (s) - !! taueff : input real : global thermal energy confinement time (sec) + !! t_energy_confinement : input real : global thermal energy confinement time (sec) !! taulimit : input real : Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times use constraint_variables, only: ftaulimit, taulimit - use physics_variables, only: t_alpha_confinement, taueff + use physics_variables, only: t_alpha_confinement, t_energy_confinement implicit none real(dp), intent(out) :: tmp_cc real(dp), intent(out) :: tmp_con @@ -2468,9 +2468,9 @@ subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) character(len=1), intent(out) :: tmp_symbol character(len=10), intent(out) :: tmp_units - tmp_cc = 1.0D0 - ftaulimit * (t_alpha_confinement / taueff) / taulimit + tmp_cc = 1.0D0 - ftaulimit * (t_alpha_confinement / t_energy_confinement) / taulimit tmp_con = taulimit - tmp_err = (t_alpha_confinement / taueff) * tmp_cc + tmp_err = (t_alpha_confinement / t_energy_confinement) * tmp_cc tmp_symbol = '>' tmp_units = '' diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index c307bdab73..c88272eb80 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -823,7 +823,7 @@ module physics_variables real(dp) :: tauee_in !! Input electron energy confinement time (sec) (`i_confinement_time=48 only`) - real(dp) :: taueff + real(dp) :: t_energy_confinement !! global thermal energy confinement time (sec) real(dp) :: t_ion_confinement @@ -1102,7 +1102,7 @@ subroutine init_physics_variables f_sync_reflect = 0.6D0 t_electron_confinement = 0.0D0 tauee_in = 0.0D0 - taueff = 0.0D0 + t_energy_confinement = 0.0D0 t_ion_confinement = 0.0D0 t_alpha_confinement = 0.0D0 f_alpha_energy_confinement = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index c488e26896..a9d414892d 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -484,7 +484,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 6db236918f..88749e9184 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 4ed3c91d72..42f1a79d67 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 0778da94f9..6bf2ee5a52 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7416E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2037E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index ff9fb53674..d001d03450 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -481,7 +481,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7733E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7733E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2080E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 3d904720b0..2d6df7614a 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -487,7 +487,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.6488E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1671E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1609E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1609E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1609E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1609E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5403E+20 OP @@ -1650,7 +1650,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.5263E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1660E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1472E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1472E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1472E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1472E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5390E+20 OP @@ -2813,7 +2813,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.3914E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1665E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1421E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1421E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1421E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1421E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5425E+20 OP @@ -3976,7 +3976,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.3549E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1778E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1540E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1540E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1540E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1540E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5409E+20 OP @@ -5139,7 +5139,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.5075E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1743E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1491E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1491E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1491E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1491E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5361E+20 OP @@ -6302,7 +6302,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.6401E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1735E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1469E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1469E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1469E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1469E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5258E+20 OP @@ -7465,7 +7465,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.6041E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1842E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1547E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1547E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1547E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1547E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5216E+20 OP @@ -8628,7 +8628,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.4593E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1867E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1544E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1544E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1544E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1544E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5240E+20 OP @@ -9791,7 +9791,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.2963E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1917E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1563E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1563E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1563E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1563E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5211E+20 OP @@ -10954,7 +10954,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.2792E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1622E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1622E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1622E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1622E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5225E+20 OP @@ -12117,7 +12117,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.4497E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1940E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1621E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1621E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1621E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1621E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5304E+20 OP @@ -13280,7 +13280,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.5964E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1912E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1617E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1617E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1617E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1617E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5280E+20 OP @@ -14443,7 +14443,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.5754E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1687E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1687E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1687E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1687E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5289E+20 OP @@ -15606,7 +15606,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.4477E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1663E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1663E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1663E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1663E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5365E+20 OP @@ -16769,7 +16769,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.3198E+01 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.1640E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1640E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1640E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1640E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5446E+20 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 644457b3f2..811ad6230e 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -342,7 +342,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -1337,7 +1337,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -2332,7 +2332,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -3327,7 +3327,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -4322,7 +4322,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -5317,7 +5317,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -6312,7 +6312,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -7307,7 +7307,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP @@ -8302,7 +8302,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 1.1353E+02 OP Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.6434E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 005393bc87..d4acfa3d5a 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7426,7 +7426,7 @@ "taucq": 30.0, "t_electron_confinement": 0.0, "tauee_in": 0.0, - "taueff": 0.0, + "t_energy_confinement": 0.0, "t_ion_confinement": 0.0, "taufall": 0.0, "taulimit": 5.0, @@ -10733,7 +10733,7 @@ "taucq": "allowable TF quench time (s)", "t_electron_confinement": "electron energy confinement time (sec)", "tauee_in": "Input electron energy confinement time (sec) (`i_confinement_time=48 only`)", - "taueff": "global thermal energy confinement time (sec)", + "t_energy_confinement": "global thermal energy confinement time (sec)", "t_ion_confinement": "ion energy confinement time (sec)", "taufall": "Lithium Fall Time (s)", "taulimit": "Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", @@ -19255,7 +19255,7 @@ "f_sync_reflect", "t_electron_confinement", "tauee_in", - "taueff", + "t_energy_confinement", "t_ion_confinement", "t_alpha_confinement", "te", diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index f17692d523..5d604ff807 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -453,7 +453,7 @@ boundu(21) = 10.0 icc = 62 * DESCRIPTION: f_alpha_energy_confinement ratio of particle to energy confinement times * JUSTIFICATION: Used to constrain helium fraction -* VARIABLES: taueff,t_alpha_confinement calculated in-situ +* VARIABLES: t_energy_confinement,t_alpha_confinement calculated in-situ ixc = 110 ftaulimit = 1.0 diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 364f90ad7a..c0d4a40b87 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -481,7 +481,7 @@ L-H_threshold_power_(enforced)_(MW)_____________________________________ (boundl(103)*plhthresh)_______ 9.7733E+01 OP L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7733E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV - Global_thermal_energy_confinement_time_(s)______________________________ (taueff)______________________ 3.2080E+00 + Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index fa7f850143..6e0a26c720 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -1850,7 +1850,7 @@ class PhyauxParam(NamedTuple): sbar: Any = None - taueff: Any = None + t_energy_confinement: Any = None vol_plasma: Any = None @@ -1883,7 +1883,7 @@ class PhyauxParam(NamedTuple): alpha_rate_density_total=1.973996644759543e17, plasma_current=18398455.678867526, sbar=1, - taueff=3.401323521525641, + t_energy_confinement=3.401323521525641, vol_plasma=1888.1711539956691, expected_burnup=0.20383432558954095, expected_dntau=2.5509926411442307e20, @@ -1904,7 +1904,7 @@ class PhyauxParam(NamedTuple): alpha_rate_density_total=1.9731194318497056e17, plasma_current=18398455.678867526, sbar=1, - taueff=3.402116961408892, + t_energy_confinement=3.402116961408892, vol_plasma=1888.1711539956691, expected_burnup=0.20387039462081086, expected_dntau=2.5515877210566689e20, @@ -1942,7 +1942,7 @@ def test_phyaux(phyauxparam, monkeypatch, physics): alpha_rate_density_total=phyauxparam.alpha_rate_density_total, plasma_current=phyauxparam.plasma_current, sbar=phyauxparam.sbar, - taueff=phyauxparam.taueff, + t_energy_confinement=phyauxparam.t_energy_confinement, vol_plasma=phyauxparam.vol_plasma, ) @@ -2240,7 +2240,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee: Any = None - expected_taueff: Any = None + expected_t_energy_confinement: Any = None expected_t_ion_confinement: Any = None @@ -2289,7 +2289,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.011156836223364355, expected_tauee=21.17616899712392, expected_t_ion_confinement=21.17616899712392, - expected_taueff=21.17616899712392, + expected_t_energy_confinement=21.17616899712392, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2333,7 +2333,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.072296788376262536, expected_tauee=3.2679051814806361, expected_t_ion_confinement=3.2679051814806361, - expected_taueff=3.2679051814806366, + expected_t_energy_confinement=3.2679051814806366, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2377,7 +2377,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.072180780839479111, expected_tauee=3.2731572946627923, expected_t_ion_confinement=3.2731572946627923, - expected_taueff=3.2731572946627923, + expected_t_energy_confinement=3.2731572946627923, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2421,7 +2421,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.10719520783694242, expected_tauee=2.2040075681235445, expected_t_ion_confinement=2.2040075681235445, - expected_taueff=2.2040075681235445, + expected_t_energy_confinement=2.2040075681235445, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2465,7 +2465,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.072164301346324039, expected_tauee=3.2739047552801135, expected_t_ion_confinement=3.2739047552801135, - expected_taueff=3.2739047552801135, + expected_t_energy_confinement=3.2739047552801135, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2509,7 +2509,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.072268094843318462, expected_tauee=3.269202679985145, expected_t_ion_confinement=3.269202679985145, - expected_taueff=3.2692026799851455, + expected_t_energy_confinement=3.2692026799851455, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2553,7 +2553,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.064531515128155068, expected_tauee=3.6611421391548524, expected_t_ion_confinement=3.6611421391548524, - expected_taueff=3.6611421391548529, + expected_t_energy_confinement=3.6611421391548529, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2597,7 +2597,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.069696886639614319, expected_tauee=3.3898077909969717, expected_t_ion_confinement=3.3898077909969717, - expected_taueff=3.3898077909969717, + expected_t_energy_confinement=3.3898077909969717, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2641,7 +2641,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.07454615402313478, expected_tauee=3.169298972363837, expected_t_ion_confinement=3.169298972363837, - expected_taueff=3.169298972363837, + expected_t_energy_confinement=3.169298972363837, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2685,7 +2685,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.07375723096135396, expected_tauee=3.203198469625145, expected_t_ion_confinement=3.203198469625145, - expected_taueff=3.203198469625145, + expected_t_energy_confinement=3.203198469625145, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2729,7 +2729,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.064876627403966491, expected_tauee=3.6416666339340682, expected_t_ion_confinement=3.6416666339340682, - expected_taueff=3.6416666339340686, + expected_t_energy_confinement=3.6416666339340686, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2773,7 +2773,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.072265678488503571, expected_tauee=3.2693119926464509, expected_t_ion_confinement=3.2693119926464509, - expected_taueff=3.2693119926464513, + expected_t_energy_confinement=3.2693119926464513, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2817,7 +2817,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.072262549863580605, expected_tauee=3.2694535383156871, expected_t_ion_confinement=3.2694535383156871, - expected_taueff=3.2694535383156871, + expected_t_energy_confinement=3.2694535383156871, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2861,7 +2861,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.072263668673609824, expected_tauee=3.2694029195542003, expected_t_ion_confinement=3.2694029195542003, - expected_taueff=3.2694029195542003, + expected_t_energy_confinement=3.2694029195542003, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2905,7 +2905,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.070646915991500636, expected_tauee=3.3442231132583498, expected_t_ion_confinement=3.3442231132583498, - expected_taueff=3.3442231132583502, + expected_t_energy_confinement=3.3442231132583502, expected_powerht=290.18368660937881, ), ConfinementTimeParam( @@ -2949,7 +2949,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptripv=0.06343753403847416, expected_tauee=3.7242785823911264, expected_t_ion_confinement=3.7242785823911264, - expected_taueff=3.7242785823911264, + expected_t_energy_confinement=3.7242785823911264, expected_powerht=290.18368660937881, ), ), @@ -2993,7 +2993,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): ptripv, t_electron_confinement, t_ion_confinement, - taueff, + t_energy_confinement, powerht, ) = physics.calculate_confinement_time( iinvqd=confinementtimeparam.iinvqd, @@ -3040,7 +3040,9 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): assert t_electron_confinement == pytest.approx(confinementtimeparam.expected_tauee) - assert taueff == pytest.approx(confinementtimeparam.expected_taueff) + assert t_energy_confinement == pytest.approx( + confinementtimeparam.expected_t_energy_confinement + ) assert t_ion_confinement == pytest.approx( confinementtimeparam.expected_t_ion_confinement diff --git a/tracking/tracking_data.py b/tracking/tracking_data.py index dbc1026fb8..ed451eca99 100644 --- a/tracking/tracking_data.py +++ b/tracking/tracking_data.py @@ -141,7 +141,7 @@ class ProcessTracker: "ne0", "aux_current_fraction", "nd_impurities", - "taueff", + "t_energy_confinement", "te0", "pdivt", "nesep", From ba1502ccd2540824b969cfb8f3c25726f86d3b3c Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 15:34:39 +0000 Subject: [PATCH 060/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20taulimit=20to?= =?UTF-8?q?=20f=5Falpha=5Fenergy=5Fconfinement=5Fmin=20for=20clarity=20and?= =?UTF-8?q?=20update=20related=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proc-pages/fusion-devices/stellarator.md | 2 +- .../data/csv_output_large_tokamak_MFILE.DAT | 4 +-- examples/data/large_tokamak_1_MFILE.DAT | 4 +-- examples/data/large_tokamak_2_MFILE.DAT | 4 +-- examples/data/large_tokamak_3_MFILE.DAT | 4 +-- examples/data/large_tokamak_4_MFILE.DAT | 4 +-- examples/data/large_tokamak_IN.DAT | 2 +- examples/data/scan_MFILE.DAT | 20 ++++++------ examples/data/scan_example_file_IN.DAT | 2 +- process/io/plot_radial_build.py | 2 +- process/io/plot_scans.py | 2 +- process/io/variable_metadata.py | 2 +- process/physics.py | 4 +-- source/fortran/constraint_equations.f90 | 10 +++--- source/fortran/constraint_variables.f90 | 4 +-- source/fortran/input.f90 | 6 ++-- source/fortran/scan.f90 | 12 +++---- .../data/large_tokamak_1_MFILE.DAT | 4 +-- .../data/large_tokamak_2_MFILE.DAT | 4 +-- .../data/large_tokamak_3_MFILE.DAT | 4 +-- .../data/large_tokamak_4_MFILE.DAT | 4 +-- tests/integration/data/large_tokamak_IN.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 4 +-- .../data/large_tokamak_once_through.IN.DAT | 2 +- tests/integration/data/ref_IN.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 32 +++++++++---------- tests/integration/data/scan_MFILE.DAT | 20 ++++++------ .../data/uncertainties_nonopt_ref_IN.DAT | 2 +- .../integration/data/uncertainties_ref_IN.DAT | 2 +- tests/integration/ref_dicts.json | 14 ++++---- .../input_files/large_tokamak.IN.DAT | 2 +- .../input_files/large_tokamak_nof.IN.DAT | 2 +- .../large_tokamak_once_through.IN.DAT | 2 +- .../input_files/st_regression.IN.DAT | 2 +- .../regression/input_files/stellarator.IN.DAT | 2 +- tests/unit/data/large_tokamak_IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 4 +-- tests/unit/test_physics.py | 24 +++++++------- 38 files changed, 113 insertions(+), 111 deletions(-) diff --git a/documentation/proc-pages/fusion-devices/stellarator.md b/documentation/proc-pages/fusion-devices/stellarator.md index 065cde305a..b2bc51e616 100644 --- a/documentation/proc-pages/fusion-devices/stellarator.md +++ b/documentation/proc-pages/fusion-devices/stellarator.md @@ -74,7 +74,7 @@ ixc = 10 * "ISS04 Renormalization Factor" (can also be fixed) ixc = 50 * Coil current density, aka winding pack thickness (required!) ixc = 59 * Winding Pack copper fraction ixc = 56 * Exponential Quench Dumping Time -ixc = 109 * Thermal alpha particle pressure (iterated to consistency, use together with `taulimit`) +ixc = 109 * Thermal alpha particle pressure (iterated to consistency, use together with `f_alpha_energy_confinement_min`) ixc = 169 * Achievable Temperature of the ECRH at the ignition point ``` diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 3a7f2967f8..4aefbc2070 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -499,7 +499,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9376E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2315E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8919E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8266E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7123E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0262E-03 OP @@ -1350,7 +1350,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index c3b68fabf9..dbf0ff6af8 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -495,7 +495,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 38fc7facf0..6d97a2a856 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -495,7 +495,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index a21bcd0ce9..764f887d86 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -495,7 +495,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index c4f9aae281..9a39ef155d 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -495,7 +495,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/examples/data/large_tokamak_IN.DAT b/examples/data/large_tokamak_IN.DAT index 4e92a56d08..d36160b1ae 100644 --- a/examples/data/large_tokamak_IN.DAT +++ b/examples/data/large_tokamak_IN.DAT @@ -155,7 +155,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 6fdd7de5a1..9751565780 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -352,7 +352,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -1347,7 +1347,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -2342,7 +2342,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -3337,7 +3337,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -4332,7 +4332,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -5327,7 +5327,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -6322,7 +6322,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -7317,7 +7317,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -8312,7 +8312,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -9000,7 +9000,7 @@ icc = 65 * dumpt time by VV stresses icc = 60 * OH coil temp margin icc = 72 * OH stress limit icc = 25 * Max TF field -icc = 62 * taulimit +icc = 62 * f_alpha_energy_confinement_min *---------------Iteration Variables----------------* diff --git a/examples/data/scan_example_file_IN.DAT b/examples/data/scan_example_file_IN.DAT index 3e6aa08a2d..87d2e5d66a 100644 --- a/examples/data/scan_example_file_IN.DAT +++ b/examples/data/scan_example_file_IN.DAT @@ -155,7 +155,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/process/io/plot_radial_build.py b/process/io/plot_radial_build.py index 686ee0b8d9..b5c3fb5417 100644 --- a/process/io/plot_radial_build.py +++ b/process/io/plot_radial_build.py @@ -178,7 +178,7 @@ def main(args=None): "bt", "coreradius", "Obsolete", # Removed - "taulimit", + "f_alpha_energy_confinement_min", "epsvmc", "ttarget", "qtargettotal", diff --git a/process/io/plot_scans.py b/process/io/plot_scans.py index 03151fec3a..b6c1ad66f2 100644 --- a/process/io/plot_scans.py +++ b/process/io/plot_scans.py @@ -227,7 +227,7 @@ def main(args=None): 28: "bt", 29: "coreradius", 30: "", # OBSOLETE - 31: "taulimit", + 31: "f_alpha_energy_confinement_min", 32: "epsvmc", 33: "ttarget", 34: "qtargettotal", diff --git a/process/io/variable_metadata.py b/process/io/variable_metadata.py index 3f133e2536..f7788dfe30 100644 --- a/process/io/variable_metadata.py +++ b/process/io/variable_metadata.py @@ -54,7 +54,7 @@ class VariableMetadata: description="Average electron temperature", units="keV", ), - "taulimit": VariableMetadata( + "f_alpha_energy_confinement_min": VariableMetadata( latex=r"$max : \frac{\tau_\mathrm{\alpha}}{\tau_\mathrm{E}}$", description="Ratio of alpha heating time to energy confinement time", units="", diff --git a/process/physics.py b/process/physics.py index f4f33d9404..9a18e52c88 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5398,8 +5398,8 @@ def outplas(self): po.ovarrf( self.outfile, "Lower limit on f_alpha_energy_confinement", - "(taulimit)", - constraint_variables.taulimit, + "(f_alpha_energy_confinement_min)", + constraint_variables.f_alpha_energy_confinement_min, ) po.ovarrf( self.outfile, diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 6e5e047ff3..0b47ada0cd 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -2452,14 +2452,14 @@ subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! residual error in physical units; output string; units string !! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times !! #=# physics - !! #=#=# ftaulimit, taulimit + !! #=#=# ftaulimit, f_alpha_energy_confinement_min !! and hence also optional here. !! Logic change during pre-factoring: err, symbol, units will be assigned only if present. !! ftaulimit : input real : f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement !! t_alpha_confinement : input real : alpha particle confinement time (s) !! t_energy_confinement : input real : global thermal energy confinement time (sec) - !! taulimit : input real : Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times - use constraint_variables, only: ftaulimit, taulimit + !! f_alpha_energy_confinement_min : input real : Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times + use constraint_variables, only: ftaulimit, f_alpha_energy_confinement_min use physics_variables, only: t_alpha_confinement, t_energy_confinement implicit none real(dp), intent(out) :: tmp_cc @@ -2468,8 +2468,8 @@ subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) character(len=1), intent(out) :: tmp_symbol character(len=10), intent(out) :: tmp_units - tmp_cc = 1.0D0 - ftaulimit * (t_alpha_confinement / t_energy_confinement) / taulimit - tmp_con = taulimit + tmp_cc = 1.0D0 - ftaulimit * (t_alpha_confinement / t_energy_confinement) / f_alpha_energy_confinement_min + tmp_con = f_alpha_energy_confinement_min tmp_err = (t_alpha_confinement / t_energy_confinement) * tmp_cc tmp_symbol = '>' tmp_units = '' diff --git a/source/fortran/constraint_variables.f90 b/source/fortran/constraint_variables.f90 index eb259e7d2d..32a7540b20 100644 --- a/source/fortran/constraint_variables.f90 +++ b/source/fortran/constraint_variables.f90 @@ -279,7 +279,7 @@ module constraint_variables real(dp) :: walalw !! allowable neutron wall-load (MW/m2) (`constraint equation 8`) - real(dp) :: taulimit + real(dp) :: f_alpha_energy_confinement_min !! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement !! times (`constraint equation 62`) @@ -390,7 +390,7 @@ subroutine init_constraint_variables t_current_ramp_up_min = 1.0D0 vvhealw = 1.0D0 walalw = 1.0D0 - taulimit = 5.0D0 + f_alpha_energy_confinement_min = 5.0D0 ftaulimit = 1.0D0 fniterpump = 1.0D0 zeffmax = 3.6D0 diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index c156b6176c..e19a476133 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -231,7 +231,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) use constraint_variables, only: flhthresh, fpeakb, fpsep, fdivcol, ftcycl, & beta_poloidal_max, fpsepbqar, ftmargtf, fradwall, fptfnuc, fnesep, fportsz, tbrmin, & maxradwallload, pseprmax, fdene, fniterpump, fpinj, pnetelin, powfmax, & - fgamcd, ftbr, mvalim, taulimit, walalw, fmva, fradpwr, nflutfmax, fipir, & + fgamcd, ftbr, mvalim, f_alpha_energy_confinement_min, walalw, fmva, fradpwr, nflutfmax, fipir, & fauxmn, fiooic,fr_conducting_wall, fjohc0, frminor, psepbqarmax, ftpeak, bigqmin, & fstrcond, fptemp, ftmargoh, fvs, fbeta_max, vvhealw, fpnetel, ft_burn, & ffuspow, fpsepr, ptfnucmax, fvdump, pdivtlim, ftaulimit, nbshinefmax, & @@ -751,8 +751,8 @@ subroutine parse_input_file(in_file,out_file,show_changes) case ('tauee_in') call parse_real_variable('tauee_in', tauee_in, 0.0D0, 100.0D0, & 'Input electron energy confinement time (sec) (i_confinement_time=48 only)') - case ('taulimit') - call parse_real_variable('taulimit', taulimit, 1.0D0, 100.0D0, & + case ('f_alpha_energy_confinement_min') + call parse_real_variable('f_alpha_energy_confinement_min', f_alpha_energy_confinement_min, 1.0D0, 100.0D0, & 'Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times') case ('teped') diff --git a/source/fortran/scan.f90 b/source/fortran/scan.f90 index 95aa09de0a..71f80dc436 100644 --- a/source/fortran/scan.f90 +++ b/source/fortran/scan.f90 @@ -67,7 +67,7 @@ module scan_module !!
                          • 28 bt !!
                          • 29 coreradius !!
                          • 30 fimpvar # OBSOLETE - !!
                          • 31 taulimit + !!
                          • 31 f_alpha_energy_confinement_min !!
                          • 32 epsvmc !!
                          • 33 ttarget !!
                          • 34 qtargettotal @@ -179,7 +179,7 @@ subroutine scan_1d_write_point_header(iscan) end subroutine scan_1d_write_point_header subroutine scan_1d_store_output(iscan, ifail, noutvars_, ipnscns_, outvar) - use constraint_variables, only: taulimit + use constraint_variables, only: f_alpha_energy_confinement_min use cost_variables, only: cdirt, coe, coeoam, coefuelt, c222, ireactor, & capcost, coecap, c221 use current_drive_variables, only: pheat, pinjmw, bootstrap_current_fraction, beam_energy, bigq @@ -274,7 +274,7 @@ subroutine scan_1d_store_output(iscan, ifail, noutvars_, ipnscns_, outvar) outvar(55,iscan) = (wwp1+wwp2)*dr_tf_wp outvar(56,iscan) = acond outvar(57,iscan) = tfareain/n_tf - outvar(58,iscan) = taulimit + outvar(58,iscan) = f_alpha_energy_confinement_min outvar(66,iscan) = f_nd_alpha_electron outvar(69,iscan) = fimp(1) outvar(70,iscan) = fimp(2) @@ -594,7 +594,7 @@ subroutine scan_select(nwp, swp, iscn, vlab, xlab) ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! use build_variables, only: dr_blkt_outboard, dr_shld_inboard, dr_fw_plasma_gap_inboard, dr_fw_plasma_gap_outboard, dr_cs - use constraint_variables, only: fiooic, walalw, bmxlim, fqval, taulimit, & + use constraint_variables, only: fiooic, walalw, bmxlim, fqval, f_alpha_energy_confinement_min, & gammax, t_burn_min, tbrmin, fjprot, pnetelin, powfmax use cost_variables, only: cfactr, iavail, fkind, startupratio use current_drive_variables, only: bootstrap_current_fraction_max, etaech @@ -716,8 +716,8 @@ subroutine scan_select(nwp, swp, iscn, vlab, xlab) !fimpvar = swp(iscn) vlab = 'OBSOLETE' ; xlab = 'OBSOLETE' case (31) - taulimit = swp(iscn) - vlab = 'taulimit' ; xlab = 't_alpha_confinement/taueff_lower_limit' + f_alpha_energy_confinement_min = swp(iscn) + vlab = 'f_alpha_energy_confinement_min' ; xlab = 't_alpha_confinement/taueff_lower_limit' case (32) epsvmc = swp(iscn) vlab = 'epsvmc' ; xlab = 'VMCON error tolerance' diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index a9d414892d..a2fa90ceb0 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -494,7 +494,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 88749e9184..79ba187b9c 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -495,7 +495,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 42f1a79d67..ee44592c4a 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -495,7 +495,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 6bf2ee5a52..ddf66c623a 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -495,7 +495,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/integration/data/large_tokamak_IN.DAT b/tests/integration/data/large_tokamak_IN.DAT index 4e92a56d08..d36160b1ae 100644 --- a/tests/integration/data/large_tokamak_IN.DAT +++ b/tests/integration/data/large_tokamak_IN.DAT @@ -155,7 +155,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index d001d03450..993da37bb6 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -492,7 +492,7 @@ H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8629E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9482E-03 OP @@ -1346,7 +1346,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/integration/data/large_tokamak_once_through.IN.DAT b/tests/integration/data/large_tokamak_once_through.IN.DAT index ade71f837d..2e86f0d17e 100644 --- a/tests/integration/data/large_tokamak_once_through.IN.DAT +++ b/tests/integration/data/large_tokamak_once_through.IN.DAT @@ -143,7 +143,7 @@ powfmax = 3000 * maximum fusion power (MW) (`constraint equation 9`) psepbqarmax = 10.0 * maximum ratio of Psep*Bt/qAR (MWT/m) (`constraint equation 68`) t_burn_min = 7200.0 * minimum burn time (s) (KE - no longer itv;; see issue #706) walalw = 2.0 * allowable neutron wall-load (MW/m2) (`constraint equation 8`) -taulimit = 5.0 * Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement +f_alpha_energy_confinement_min = 5.0 * Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement *-------------------Constraints--------------------* diff --git a/tests/integration/data/ref_IN.DAT b/tests/integration/data/ref_IN.DAT index 77de4f586f..5a69d1f916 100644 --- a/tests/integration/data/ref_IN.DAT +++ b/tests/integration/data/ref_IN.DAT @@ -23,7 +23,7 @@ icc = 65 * dumpt time by VV stresses icc = 60 * OH coil temp margin icc = 72 * OH stress limit icc = 25 * Max TF field -icc = 62 * taulimit +icc = 62 * f_alpha_energy_confinement_min *---------------Iteration Variables----------------* diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 2d6df7614a..4a72ece809 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -497,7 +497,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.7889E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9961E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.3150E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7855E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4772E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9629E-03 OP @@ -1660,7 +1660,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8240E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9751E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2760E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7767E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6299E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0016E-03 OP @@ -2823,7 +2823,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8985E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9727E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2781E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7693E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7864E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0417E-03 OP @@ -3986,7 +3986,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8956E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9773E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2692E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7816E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8030E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0515E-03 OP @@ -5149,7 +5149,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8995E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9645E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2382E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7788E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6562E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0113E-03 OP @@ -6312,7 +6312,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8676E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9471E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1873E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7790E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5083E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9729E-03 OP @@ -7475,7 +7475,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8858E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9508E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1836E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7872E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5242E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9822E-03 OP @@ -8638,7 +8638,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9000E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9498E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1813E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7862E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6667E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0212E-03 OP @@ -9801,7 +9801,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8564E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9521E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1847E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8077E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0617E-03 OP @@ -10964,7 +10964,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9158E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9576E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1905E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7946E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8348E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0713E-03 OP @@ -12127,7 +12127,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0058E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9558E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1851E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7900E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6972E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0306E-03 OP @@ -13290,7 +13290,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0074E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9518E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1733E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7896E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5548E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9915E-03 OP @@ -14453,7 +14453,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0607E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9571E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1764E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7957E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5780E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0007E-03 OP @@ -15616,7 +15616,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1011E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9628E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1990E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7926E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7314E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0398E-03 OP @@ -16779,7 +16779,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1467E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9687E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2221E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8950E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0806E-03 OP @@ -17640,7 +17640,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 811ad6230e..561d6eb4d4 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -352,7 +352,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -1347,7 +1347,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -2342,7 +2342,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -3337,7 +3337,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -4332,7 +4332,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -5327,7 +5327,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -6322,7 +6322,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -7317,7 +7317,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -8312,7 +8312,7 @@ Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP @@ -9000,7 +9000,7 @@ icc = 65 * dumpt time by VV stresses icc = 60 * OH coil temp margin icc = 72 * OH stress limit icc = 25 * Max TF field -icc = 62 * taulimit +icc = 62 * f_alpha_energy_confinement_min *---------------Iteration Variables----------------* diff --git a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT index 01adeafb3d..ad395bf618 100644 --- a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT +++ b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT @@ -23,7 +23,7 @@ icc = 65 * dumpt time by VV stresses icc = 60 * OH coil temp margin icc = 72 * OH stress limit icc = 25 * Max TF field -icc = 62 * taulimit +icc = 62 * f_alpha_energy_confinement_min *---------------Iteration Variables----------------* diff --git a/tests/integration/data/uncertainties_ref_IN.DAT b/tests/integration/data/uncertainties_ref_IN.DAT index 3f99387b56..d683feb0f7 100644 --- a/tests/integration/data/uncertainties_ref_IN.DAT +++ b/tests/integration/data/uncertainties_ref_IN.DAT @@ -23,7 +23,7 @@ icc = 65 * dumpt time by VV stresses icc = 60 * OH coil temp margin icc = 72 * OH stress limit icc = 25 * Max TF field -icc = 62 * taulimit +icc = 62 * f_alpha_energy_confinement_min *---------------Iteration Variables----------------* diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index d4acfa3d5a..b1149db686 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7429,7 +7429,7 @@ "t_energy_confinement": 0.0, "t_ion_confinement": 0.0, "taufall": 0.0, - "taulimit": 5.0, + "f_alpha_energy_confinement_min": 5.0, "taumax": 10.0, "t_alpha_confinement": 0.0, "tauratio": 1.0, @@ -10198,7 +10198,7 @@ "nre": "", "nsix": "", "nsixi": "", - "nsweep": "Switch denoting quantity to scan:
                              \n
                            • 1 aspect\n
                            • 2 hldivlim\n
                            • 3 pnetelin\n
                            • 4 hfact\n
                            • 5 oacdcp\n
                            • 6 walalw\n
                            • 7 beamfus0\n
                            • 8 fqval\n
                            • 9 te\n
                            • 10 boundu(15: fvs)\n
                            • 11 beta_norm_max\n
                            • 12 bootstrap_current_fraction_max (use negative values only)\n
                            • 13 boundu(10: hfact)\n
                            • 14 fiooic\n
                            • 15 fjprot\n
                            • 16 rmajor\n
                            • 17 bmxlim\n
                            • 18 gammax\n
                            • 19 boundl(16: dr_cs)\n
                            • 20 t_burn_min\n
                            • 21 not used\n
                            • 22 cfactr (N.B. requires iavail=0)\n
                            • 23 boundu(72: fipir)\n
                            • 24 powfmax\n
                            • 25 kappa\n
                            • 26 triang\n
                            • 27 tbrmin (for blktmodel > 0 only)\n
                            • 28 bt\n
                            • 29 coreradius\n
                            • 31 taulimit\n
                            • 32 epsvmc\n
                            • 33 ttarget\n
                            • 34 qtargettotal\n
                            • 35 lambda_q_omp\n
                            • 36 lambda_target\n
                            • 37 lcon_factor\n
                            • 38 Neon upper limit\n
                            • 39 Argon upper limit\n
                            • 40 Xenon upper limit\n
                            • 41 dr_blkt_outboard\n
                            • 42 Argon fraction fimp(9)\n
                            • 43 normalised minor radius at which electron cyclotron current drive is maximum\n
                            • 44 Allowable maximum shear stress (Tresca) in tf coil structural material\n
                            • 45 Minimum allowable temperature margin ; tf coils\n
                            • 46 boundu(150) fgwsep\n
                            • 47 impurity_enrichment(9) Argon impurity enrichment\n
                            • 48 TF coil - n_pancake (integer turn winding pack)\n
                            • 49 TF coil - n_layer (integer turn winding pack)\n
                            • 50 Xenon fraction fimp(13)\n
                            • 51 Power fraction to lower DN Divertor ftar\n
                            • 52 SoL radiation fraction\n
                            • 54 GL_nbti upper critical field at 0 Kelvin\n
                            • 55 `dr_shld_inboard` : Inboard neutron shield thickness\n
                            • 56 crypmw_max: Maximum cryogenic power (ixx=164, ixc=87)\n
                            • 57 `bt` lower boundary\n
                            • 58 `dr_fw_plasma_gap_inboard` : Inboard plasma-first wall gap\n
                            • 59 `dr_fw_plasma_gap_outboard` : Outboard plasma-first wall gap\n
                            • 60 sig_tf_wp_max: Allowable stress in TF Coil conduit (Tresca)\n
                            • 61 copperaoh_m2_max : CS coil current / copper area\n
                            • 62 coheof : CS coil current density at EOF\n
                            • 63 dr_cs : CS thickness (m)\n
                            • 64 ohhghf : CS height (m)
                            ", + "nsweep": "Switch denoting quantity to scan:
                              \n
                            • 1 aspect\n
                            • 2 hldivlim\n
                            • 3 pnetelin\n
                            • 4 hfact\n
                            • 5 oacdcp\n
                            • 6 walalw\n
                            • 7 beamfus0\n
                            • 8 fqval\n
                            • 9 te\n
                            • 10 boundu(15: fvs)\n
                            • 11 beta_norm_max\n
                            • 12 bootstrap_current_fraction_max (use negative values only)\n
                            • 13 boundu(10: hfact)\n
                            • 14 fiooic\n
                            • 15 fjprot\n
                            • 16 rmajor\n
                            • 17 bmxlim\n
                            • 18 gammax\n
                            • 19 boundl(16: dr_cs)\n
                            • 20 t_burn_min\n
                            • 21 not used\n
                            • 22 cfactr (N.B. requires iavail=0)\n
                            • 23 boundu(72: fipir)\n
                            • 24 powfmax\n
                            • 25 kappa\n
                            • 26 triang\n
                            • 27 tbrmin (for blktmodel > 0 only)\n
                            • 28 bt\n
                            • 29 coreradius\n
                            • 31 f_alpha_energy_confinement_min\n
                            • 32 epsvmc\n
                            • 33 ttarget\n
                            • 34 qtargettotal\n
                            • 35 lambda_q_omp\n
                            • 36 lambda_target\n
                            • 37 lcon_factor\n
                            • 38 Neon upper limit\n
                            • 39 Argon upper limit\n
                            • 40 Xenon upper limit\n
                            • 41 dr_blkt_outboard\n
                            • 42 Argon fraction fimp(9)\n
                            • 43 normalised minor radius at which electron cyclotron current drive is maximum\n
                            • 44 Allowable maximum shear stress (Tresca) in tf coil structural material\n
                            • 45 Minimum allowable temperature margin ; tf coils\n
                            • 46 boundu(150) fgwsep\n
                            • 47 impurity_enrichment(9) Argon impurity enrichment\n
                            • 48 TF coil - n_pancake (integer turn winding pack)\n
                            • 49 TF coil - n_layer (integer turn winding pack)\n
                            • 50 Xenon fraction fimp(13)\n
                            • 51 Power fraction to lower DN Divertor ftar\n
                            • 52 SoL radiation fraction\n
                            • 54 GL_nbti upper critical field at 0 Kelvin\n
                            • 55 `dr_shld_inboard` : Inboard neutron shield thickness\n
                            • 56 crypmw_max: Maximum cryogenic power (ixx=164, ixc=87)\n
                            • 57 `bt` lower boundary\n
                            • 58 `dr_fw_plasma_gap_inboard` : Inboard plasma-first wall gap\n
                            • 59 `dr_fw_plasma_gap_outboard` : Outboard plasma-first wall gap\n
                            • 60 sig_tf_wp_max: Allowable stress in TF Coil conduit (Tresca)\n
                            • 61 copperaoh_m2_max : CS coil current / copper area\n
                            • 62 coheof : CS coil current density at EOF\n
                            • 63 dr_cs : CS thickness (m)\n
                            • 64 ohhghf : CS height (m)
                            ", "nsweep_2": "nsweep_2 /3/ : switch denoting quantity to scan for 2D scan:", "nt": "", "ntype": "switch for vacuum pump type:\n
                              \n
                            • =0 - for turbomolecular pump (magnetic bearing) with speed of 2.0 m3/s\n (1.95 for N2, 1.8 for He, 1.8 for DT)
                            • \n
                            • =1 - for compound cryopump with nominal speed of 10.0 m3/s\n (9.0 for N2, 5.0 for He and 25.0 for DT)
                            • \n
                            ", @@ -10736,7 +10736,7 @@ "t_energy_confinement": "global thermal energy confinement time (sec)", "t_ion_confinement": "ion energy confinement time (sec)", "taufall": "Lithium Fall Time (s)", - "taulimit": "Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", + "f_alpha_energy_confinement_min": "Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", "taumax": "Maximum allowed energy confinement time (s)", "t_alpha_confinement": "alpha particle confinement time (sec)", "tauratio": "tauratio /1.0/ : ratio of He and pellet particle confinement times", @@ -14423,7 +14423,7 @@ "lb": 0.0, "ub": 100.0 }, - "taulimit": { + "f_alpha_energy_confinement_min": { "lb": 1.0, "ub": 100.0 }, @@ -17469,7 +17469,7 @@ "t_current_ramp_up_min", "vvhealw", "walalw", - "taulimit", + "f_alpha_energy_confinement_min", "ftaulimit", "fniterpump", "zeffmax", @@ -19928,7 +19928,7 @@ "28": "bt", "29": "coreradius", "3": "pnetelin", - "31": "taulimit", + "31": "f_alpha_energy_confinement_min", "32": "epsvmc", "33": "ttarget", "34": "qtargettotal", @@ -20751,7 +20751,7 @@ "target_spread": "real_variable", "targetangle": "real_variable", "tauee_in": "real_variable", - "taulimit": "real_variable", + "f_alpha_energy_confinement_min": "real_variable", "taumax": "real_variable", "tauratio": "real_variable", "tbeamin": "real_variable", diff --git a/tests/regression/input_files/large_tokamak.IN.DAT b/tests/regression/input_files/large_tokamak.IN.DAT index 7dfe6c88bc..e6863aab02 100644 --- a/tests/regression/input_files/large_tokamak.IN.DAT +++ b/tests/regression/input_files/large_tokamak.IN.DAT @@ -155,7 +155,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/regression/input_files/large_tokamak_nof.IN.DAT b/tests/regression/input_files/large_tokamak_nof.IN.DAT index 0b2a46e800..326cc0c220 100644 --- a/tests/regression/input_files/large_tokamak_nof.IN.DAT +++ b/tests/regression/input_files/large_tokamak_nof.IN.DAT @@ -116,7 +116,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/regression/input_files/large_tokamak_once_through.IN.DAT b/tests/regression/input_files/large_tokamak_once_through.IN.DAT index 86eda5bac1..687e04d5ed 100644 --- a/tests/regression/input_files/large_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/large_tokamak_once_through.IN.DAT @@ -143,7 +143,7 @@ powfmax = 3000 * maximum fusion power (MW) (`constraint equation 9`) psepbqarmax = 10.0 * maximum ratio of Psep*Bt/qAR (MWT/m) (`constraint equation 68`) t_burn_min = 7200.0 * minimum burn time (s) (KE - no longer itv;; see issue #706) walalw = 2.0 * allowable neutron wall-load (MW/m2) (`constraint equation 8`) -taulimit = 5.0 * Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement +f_alpha_energy_confinement_min = 5.0 * Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement *-------------------Constraints--------------------* diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index 5d604ff807..46a7ee73f4 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -462,7 +462,7 @@ boundu(110) = 1.0 * DESCRIPTION: f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times * JUSTIFICATION: Calculate He fraction consistent with tau ratio -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * DESCRIPTION: Ratio of Alpha Particle to Energy Confinement times (icc=62) * JUSTIFICATION: Default based on JET diff --git a/tests/regression/input_files/stellarator.IN.DAT b/tests/regression/input_files/stellarator.IN.DAT index 61d214738a..26ac9668b8 100644 --- a/tests/regression/input_files/stellarator.IN.DAT +++ b/tests/regression/input_files/stellarator.IN.DAT @@ -93,7 +93,7 @@ f_alpha_plasma = 0.95 * fast particle fraction f_nd_alpha_electron = 0.144 * thermal alpha density / electron density fradpwr = 1 * needed to control radiation power epsfcn = 0.0001 * convergence important to start with 10^-4, 10^-3 is NOT sufficient to match the constraint resonably well!! -taulimit = 6 * tau_He/tau_E +f_alpha_energy_confinement_min = 6 * tau_He/tau_E fhldiv = 0.8 * f value for divertor heat load fradwall = 1.0 * f value for radiation wall load te0_ecrh_achievable = 15.6203 * keV diff --git a/tests/unit/data/large_tokamak_IN.DAT b/tests/unit/data/large_tokamak_IN.DAT index 29fcef77b6..e80d2a0b2a 100644 --- a/tests/unit/data/large_tokamak_IN.DAT +++ b/tests/unit/data/large_tokamak_IN.DAT @@ -155,7 +155,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index c0d4a40b87..3a38528132 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -492,7 +492,7 @@ H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8629E+00 - Lower_limit_on_taup/taueff______________________________________________ (taulimit)____________________ 5.0000E+00 + Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9482E-03 OP @@ -1346,7 +1346,7 @@ tmargmin_cs = 1.5 *-------------------------------------------------------------------------------* icc = 62 ixc = 110 * ftaulimit -taulimit = 5.0 +f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * *--------------------------------------* diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 6e0a26c720..afbb70aa1b 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -1933,17 +1933,19 @@ def test_phyaux(phyauxparam, monkeypatch, physics): monkeypatch.setattr(physics_variables, "burnup_in", phyauxparam.burnup_in) - burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement = physics.phyaux( - aspect=phyauxparam.aspect, - dene=phyauxparam.dene, - nd_fuel_ions=phyauxparam.nd_fuel_ions, - nd_alphas=phyauxparam.nd_alphas, - fusion_rate_density_total=phyauxparam.fusion_rate_density_total, - alpha_rate_density_total=phyauxparam.alpha_rate_density_total, - plasma_current=phyauxparam.plasma_current, - sbar=phyauxparam.sbar, - t_energy_confinement=phyauxparam.t_energy_confinement, - vol_plasma=phyauxparam.vol_plasma, + burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, _ = ( + physics.phyaux( + aspect=phyauxparam.aspect, + dene=phyauxparam.dene, + nd_fuel_ions=phyauxparam.nd_fuel_ions, + nd_alphas=phyauxparam.nd_alphas, + fusion_rate_density_total=phyauxparam.fusion_rate_density_total, + alpha_rate_density_total=phyauxparam.alpha_rate_density_total, + plasma_current=phyauxparam.plasma_current, + sbar=phyauxparam.sbar, + t_energy_confinement=phyauxparam.t_energy_confinement, + vol_plasma=phyauxparam.vol_plasma, + ) ) assert burnup == pytest.approx(phyauxparam.expected_burnup) From 11798de491dca30b135aa7a41a1d24a5deef2d92 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 16:09:00 +0000 Subject: [PATCH 061/106] :sparkle: Add nTtau variable for Lawson triple product and update related references --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 ++--- process/physics.py | 74 +++---------------- source/fortran/physics_variables.f90 | 4 + .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 ++++---- tests/integration/data/scan_MFILE.DAT | 18 ++--- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 11 ++- 17 files changed, 68 insertions(+), 109 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 4aefbc2070..1693d1f307 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -493,7 +493,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2379E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2379E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.6225E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2095E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2095E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.8997E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9376E+01 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index dbf0ff6af8..39dc196ce8 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -489,7 +489,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 6d97a2a856..5cd31ce844 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -489,7 +489,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 764f887d86..620711bd50 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -489,7 +489,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 9a39ef155d..ff7d1e4254 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -489,7 +489,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 9751565780..261cd92b45 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -346,7 +346,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -1341,7 +1341,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -2336,7 +2336,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -3331,7 +3331,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -4326,7 +4326,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -5321,7 +5321,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -6316,7 +6316,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -7311,7 +7311,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -8306,7 +8306,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP diff --git a/process/physics.py b/process/physics.py index 9a18e52c88..cddacb6ad6 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2323,6 +2323,7 @@ def physics(self): ( physics_variables.burnup, physics_variables.dntau, + physics_variables.nTtau, physics_variables.figmer, physics_module.fusrat, physics_variables.qfuel, @@ -2332,6 +2333,7 @@ def physics(self): ) = self.phyaux( physics_variables.aspect, physics_variables.dene, + physics_variables.te, physics_variables.nd_fuel_ions, physics_variables.fusion_rate_density_total, physics_variables.alpha_rate_density_total, @@ -2960,6 +2962,7 @@ def plasma_composition() -> None: def phyaux( aspect: float, dene: float, + te: float, nd_fuel_ions: float, fusion_rate_density_total: float, alpha_rate_density_total: float, @@ -2974,6 +2977,7 @@ def phyaux( Args: aspect (float): Plasma aspect ratio. dene (float): Electron density (/m3). + te (float): Volume avergaed electron temperature (keV). deni (float): Fuel ion density (/m3). fusion_rate_density_total (float): Fusion reaction rate from plasma and beams (/m3/s). alpha_rate_density_total (float): Alpha particle production rate (/m3/s). @@ -2987,6 +2991,7 @@ def phyaux( tuple: A tuple containing: - burnup (float): Fractional plasma burnup. - dntau (float): Plasma average n-tau (s/m3). + - nTtau (float): Plasma triple product nT-tau (s/m3). - figmer (float): Physics figure of merit. - fusrat (float): Number of fusion reactions per second. - qfuel (float): Fuelling rate for D-T (nucleus-pairs/sec). @@ -2999,6 +3004,7 @@ def phyaux( figmer = 1e-6 * plasma_current * aspect**sbar dntau = t_energy_confinement * dene + nTtau = dntau * te # Fusion reactions per second fusrat = fusion_rate_density_total * plasma_volume @@ -3036,63 +3042,7 @@ def phyaux( return ( burnup, dntau, - figmer, - fusrat, - qfuel, - rndfuel, - t_alpha_confinement, - f_alpha_energy_confinement, - ) - - figmer = 1e-6 * plasma_current * aspect**sbar - - dntau = t_energy_confinement * dene - - # Fusion reactions per second - - fusrat = fusion_rate_density_total * vol_plasma - - # Alpha particle confinement time (s) - # Number of alphas / alpha production rate - - if alpha_rate_density_total != 0.0: - t_alpha_confinement = nd_alphas / alpha_rate_density_total - else: # only likely if DD is only active fusion reaction - t_alpha_confinement = 0.0 - - # Fractional burnup - - # (Consider detailed model in: G. L. Jackson, V. S. Chan, R. D. Stambaugh, - # Fusion Science and Technology, vol.64, no.1, July 2013, pp.8-12) - - # The ratio of ash to fuel particle confinement times is given by - # tauratio - # Possible logic... - # burnup = fuel ion-pairs burned/m3 / initial fuel ion-pairs/m3; - # fuel ion-pairs burned/m3 = alpha particles/m3 (for both D-T and D-He3 reactions) - # initial fuel ion-pairs/m3 = burnt fuel ion-pairs/m3 + unburnt fuel-ion pairs/m3 - # Remember that unburnt fuel-ion pairs/m3 = 0.5 * unburnt fuel-ions/m3 - if physics_variables.burnup_in <= 1.0e-9: - burnup = ( - nd_alphas - / (nd_alphas + 0.5 * nd_fuel_ions) - / physics_variables.tauratio - ) - else: - burnup = physics_variables.burnup_in - # Fuel burnup rate (reactions/second) (previously Amps) - - rndfuel = fusrat - - # Required fuelling rate (fuel ion pairs/second) (previously Amps) - - qfuel = rndfuel / burnup - - f_alpha_energy_confinement = t_alpha_confinement / t_energy_confinement - - return ( - burnup, - dntau, + nTtau, figmer, fusrat, qfuel, @@ -5287,15 +5237,11 @@ def outplas(self): physics_variables.dntau, "OP ", ) - po.ocmmnt( - self.outfile, - "Triple product = Vol-av electron density x Vol-av electron temp x Energy confinement time:", - ) po.ovarre( self.outfile, - "Triple product (keV s/m3)", - "(dntau*te)", - physics_variables.dntau * physics_variables.te, + "Lawson Triple product (keV s/m3)", + "(nTtau)", + physics_variables.nTtau, "OP ", ) po.ovarre( diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index c88272eb80..9bce39b5c4 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -174,6 +174,9 @@ module physics_variables real(dp) :: dntau !! plasma average "n-tau" (seconds/m3) + real(dp) :: nTtau + !! Lawson triple product [keV s / m3] + real(dp) :: nd_impurities !! high Z ion density (/m3) @@ -953,6 +956,7 @@ subroutine init_physics_variables dnla = 0.0D0 nd_protons = 0.0D0 dntau = 0.0D0 + nTtau = 0.0D0 nd_impurities = 0.0D0 beta_poloidal_eps_max = 1.38D0 eps = 0.34399724802D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index a2fa90ceb0..cd285c2956 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -488,7 +488,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 79ba187b9c..81062a745a 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -489,7 +489,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index ee44592c4a..af41e0014e 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -489,7 +489,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index ddf66c623a..5ed7a0547c 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -489,7 +489,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2275E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 993da37bb6..5edd11429a 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -485,7 +485,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 4a72ece809..59e3122fac 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -491,7 +491,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1609E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1609E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5403E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0737E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0737E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9249E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.7889E+01 OP @@ -1654,7 +1654,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1472E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1472E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5390E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0722E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0722E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9493E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8240E+01 OP @@ -2817,7 +2817,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1421E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1421E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5425E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0764E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0764E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8985E+01 OP @@ -3980,7 +3980,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1540E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1540E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5409E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0999E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0999E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8956E+01 OP @@ -5143,7 +5143,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1491E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1491E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5361E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0940E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0940E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9667E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8995E+01 OP @@ -6306,7 +6306,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1469E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1469E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5258E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.0815E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0815E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9600E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8676E+01 OP @@ -7469,7 +7469,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1547E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1547E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5216E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1016E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1016E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9644E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8858E+01 OP @@ -8632,7 +8632,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1544E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1544E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5240E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1045E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1045E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9674E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9000E+01 OP @@ -9795,7 +9795,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1563E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1563E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5211E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1009E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1009E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9602E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8564E+01 OP @@ -10958,7 +10958,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1622E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1622E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5225E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1279E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1279E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9743E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9158E+01 OP @@ -12121,7 +12121,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1621E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1621E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5304E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1377E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1377E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9837E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0058E+01 OP @@ -13284,7 +13284,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1617E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1617E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5280E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1347E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1347E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9823E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0074E+01 OP @@ -14447,7 +14447,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1687E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1687E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5289E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1612E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1612E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9938E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0607E+01 OP @@ -15610,7 +15610,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1663E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1663E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5365E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1706E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1706E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0064E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1011E+01 OP @@ -16773,7 +16773,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1640E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1640E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5446E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1807E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1807E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0193E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1467E+01 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 561d6eb4d4..32e13b9c07 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -346,7 +346,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -1341,7 +1341,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -2336,7 +2336,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -3331,7 +3331,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -4326,7 +4326,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -5321,7 +5321,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -6316,7 +6316,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -7311,7 +7311,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP @@ -8306,7 +8306,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.1834E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 3a38528132..12ccb36dba 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -485,7 +485,7 @@ Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP - Triple_product__(keV_s/m3)______________________________________________ (dntau*te)____________________ 3.2284E+21 OP + Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index afbb70aa1b..ef1871e812 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -1838,6 +1838,8 @@ class PhyauxParam(NamedTuple): dene: Any = None + te: Any = None + nd_fuel_ions: Any = None nd_alphas: Any = None @@ -1858,6 +1860,8 @@ class PhyauxParam(NamedTuple): expected_dntau: Any = None + expected_nTtau: Any = None + expected_figmer: Any = None expected_fusrat: Any = None @@ -1877,6 +1881,7 @@ class PhyauxParam(NamedTuple): burnup_in=0, aspect=3, dene=7.5e19, + te=12.569, nd_fuel_ions=5.8589175702454272e19, nd_alphas=7.5e18, fusion_rate_density_total=1.9852091609123786e17, @@ -1887,6 +1892,7 @@ class PhyauxParam(NamedTuple): vol_plasma=1888.1711539956691, expected_burnup=0.20383432558954095, expected_dntau=2.5509926411442307e20, + expected_nTtau=3.253e21, expected_figmer=55.195367036602576, expected_fusrat=3.7484146722826997e20, expected_qfuel=1.8389516394951276e21, @@ -1898,6 +1904,7 @@ class PhyauxParam(NamedTuple): burnup_in=0, aspect=3, dene=7.5e19, + te=12.569, nd_fuel_ions=5.8576156204039725e19, nd_alphas=7.5e18, fusion_rate_density_total=1.9843269653375773e17, @@ -1908,6 +1915,7 @@ class PhyauxParam(NamedTuple): vol_plasma=1888.1711539956691, expected_burnup=0.20387039462081086, expected_dntau=2.5515877210566689e20, + expected_nTtau=3.253e21, expected_figmer=55.195367036602576, expected_fusrat=3.7467489360461772e20, expected_qfuel=1.8378092331723546e21, @@ -1933,10 +1941,11 @@ def test_phyaux(phyauxparam, monkeypatch, physics): monkeypatch.setattr(physics_variables, "burnup_in", phyauxparam.burnup_in) - burnup, dntau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, _ = ( + burnup, dntau, nTtau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, _ = ( physics.phyaux( aspect=phyauxparam.aspect, dene=phyauxparam.dene, + te=phyauxparam.te, nd_fuel_ions=phyauxparam.nd_fuel_ions, nd_alphas=phyauxparam.nd_alphas, fusion_rate_density_total=phyauxparam.fusion_rate_density_total, From aa78be3753a6ac59538554aa35a355c783af7b68 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 23 Jan 2025 16:13:54 +0000 Subject: [PATCH 062/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20dntau=20to=20nt?= =?UTF-8?q?au=20for=20clarity=20and=20update=20related=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +++++------ process/physics.py | 16 +++++----- process/stellarator.py | 2 +- source/fortran/physics_variables.f90 | 6 ++-- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++++++---------- tests/integration/data/scan_MFILE.DAT | 18 +++++------ tests/integration/ref_dicts.json | 6 ++-- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 10 +++---- 19 files changed, 64 insertions(+), 64 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 1693d1f307..f77b4b4075 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -492,7 +492,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2379E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2379E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2379E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.6225E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.6225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2095E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.8997E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 39dc196ce8..b4ce8f4529 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -488,7 +488,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 5cd31ce844..974bb5e12d 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -488,7 +488,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 620711bd50..ce285dffe3 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -488,7 +488,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index ff7d1e4254..d548f8744c 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -488,7 +488,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 261cd92b45..ca58ae0050 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -345,7 +345,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -1340,7 +1340,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -2335,7 +2335,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -3330,7 +3330,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -4325,7 +4325,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -5320,7 +5320,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -6315,7 +6315,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -7310,7 +7310,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -8305,7 +8305,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/process/physics.py b/process/physics.py index cddacb6ad6..08a81a500d 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2322,7 +2322,7 @@ def physics(self): sbar = 1.0e0 ( physics_variables.burnup, - physics_variables.dntau, + physics_variables.ntau, physics_variables.nTtau, physics_variables.figmer, physics_module.fusrat, @@ -2990,7 +2990,7 @@ def phyaux( Returns: tuple: A tuple containing: - burnup (float): Fractional plasma burnup. - - dntau (float): Plasma average n-tau (s/m3). + - ntau (float): Plasma average n-tau (s/m3). - nTtau (float): Plasma triple product nT-tau (s/m3). - figmer (float): Physics figure of merit. - fusrat (float): Number of fusion reactions per second. @@ -3003,8 +3003,8 @@ def phyaux( """ figmer = 1e-6 * plasma_current * aspect**sbar - dntau = t_energy_confinement * dene - nTtau = dntau * te + ntau = t_energy_confinement * dene + nTtau = ntau * te # Fusion reactions per second fusrat = fusion_rate_density_total * plasma_volume @@ -3041,7 +3041,7 @@ def phyaux( return ( burnup, - dntau, + ntau, nTtau, figmer, fusrat, @@ -5232,9 +5232,9 @@ def outplas(self): ) po.ovarre( self.outfile, - "n.tau = Volume-average electron density x Energy confinement time (s/m3)", - "(dntau)", - physics_variables.dntau, + "Fusion double product (s/m3)", + "(ntau)", + physics_variables.ntau, "OP ", ) po.ovarre( diff --git a/process/stellarator.py b/process/stellarator.py index 639352533c..4f857d2adc 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -4509,7 +4509,7 @@ def stphys(self, output): sbar = 1.0e0 ( physics_variables.burnup, - physics_variables.dntau, + physics_variables.ntau, physics_variables.figmer, fusrat, physics_variables.qfuel, diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 9bce39b5c4..bacd8871c1 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -171,8 +171,8 @@ module physics_variables real(dp) :: nd_protons !! proton ash density (/m3) - real(dp) :: dntau - !! plasma average "n-tau" (seconds/m3) + real(dp) :: ntau + !! Fusion double product (s/m3) real(dp) :: nTtau !! Lawson triple product [keV s / m3] @@ -955,7 +955,7 @@ subroutine init_physics_variables nd_ions_total = 0.0D0 dnla = 0.0D0 nd_protons = 0.0D0 - dntau = 0.0D0 + ntau = 0.0D0 nTtau = 0.0D0 nd_impurities = 0.0D0 beta_poloidal_eps_max = 1.38D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index cd285c2956..95eca34357 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -487,7 +487,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 81062a745a..2acfceec74 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -488,7 +488,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index af41e0014e..fe4dc5eb91 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -488,7 +488,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 5ed7a0547c..a116f626c2 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -488,7 +488,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5843E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 5edd11429a..e9efb4f0d2 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -484,7 +484,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 59e3122fac..f40d368ad7 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -490,7 +490,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1609E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1609E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1609E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5403E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5403E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0737E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9249E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -1653,7 +1653,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1472E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1472E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1472E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5390E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5390E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0722E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9493E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -2816,7 +2816,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1421E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1421E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1421E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5425E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5425E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0764E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -3979,7 +3979,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1540E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1540E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1540E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5409E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5409E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0999E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -5142,7 +5142,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1491E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1491E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1491E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5361E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5361E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0940E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9667E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -6305,7 +6305,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1469E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1469E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1469E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5258E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5258E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0815E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9600E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -7468,7 +7468,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1547E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1547E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1547E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5216E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5216E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1016E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9644E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -8631,7 +8631,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1544E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1544E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1544E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5240E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5240E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1045E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9674E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -9794,7 +9794,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1563E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1563E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1563E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5211E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5211E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1009E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9602E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -10957,7 +10957,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1622E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1622E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1622E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5225E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1279E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9743E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -12120,7 +12120,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1621E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1621E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1621E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5304E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5304E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1377E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9837E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -13283,7 +13283,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1617E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1617E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1617E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5280E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5280E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1347E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9823E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -14446,7 +14446,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1687E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1687E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1687E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5289E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5289E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1612E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9938E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -15609,7 +15609,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1663E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1663E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1663E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5365E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5365E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1706E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0064E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -16772,7 +16772,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1640E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1640E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1640E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5446E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5446E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1807E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0193E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 32e13b9c07..38401fa8dd 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -345,7 +345,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -1340,7 +1340,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -2335,7 +2335,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -3330,7 +3330,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -4325,7 +4325,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -5320,7 +5320,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -6315,7 +6315,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -7310,7 +7310,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 @@ -8305,7 +8305,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5918E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index b1149db686..0edf370d11 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -1676,7 +1676,7 @@ "nd_ions_total": 0.0, "dnla": 0.0, "nd_protons": 0.0, - "dntau": 0.0, + "ntau": 0.0, "nd_impurities": 0.0, "double": "selected_real_kind(15, 300)", "dp_": 8.0, @@ -9323,7 +9323,7 @@ "nd_ions_total": "total ion density (/m3)", "dnla": "line averaged electron density (/m3)", "nd_protons": "proton ash density (/m3)", - "dntau": "plasma average \"n-tau\" (seconds/m3)", + "ntau": "plasma average \"n-tau\" (seconds/m3)", "nd_impurities": "high Z ion density (/m3)", "double": "", "dp_": "", @@ -19101,7 +19101,7 @@ "nd_ions_total", "dnla", "nd_protons", - "dntau", + "ntau", "nd_impurities", "dndrho_max", "dtdrho_max", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 12ccb36dba..8db97c12b9 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -484,7 +484,7 @@ Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 - n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (dntau)_______________________ 2.5706E+20 OP + n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index ef1871e812..a00c8d7436 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -1858,7 +1858,7 @@ class PhyauxParam(NamedTuple): expected_burnup: Any = None - expected_dntau: Any = None + expected_ntau: Any = None expected_nTtau: Any = None @@ -1891,7 +1891,7 @@ class PhyauxParam(NamedTuple): t_energy_confinement=3.401323521525641, vol_plasma=1888.1711539956691, expected_burnup=0.20383432558954095, - expected_dntau=2.5509926411442307e20, + expected_ntau=2.5509926411442307e20, expected_nTtau=3.253e21, expected_figmer=55.195367036602576, expected_fusrat=3.7484146722826997e20, @@ -1914,7 +1914,7 @@ class PhyauxParam(NamedTuple): t_energy_confinement=3.402116961408892, vol_plasma=1888.1711539956691, expected_burnup=0.20387039462081086, - expected_dntau=2.5515877210566689e20, + expected_ntau=2.5515877210566689e20, expected_nTtau=3.253e21, expected_figmer=55.195367036602576, expected_fusrat=3.7467489360461772e20, @@ -1941,7 +1941,7 @@ def test_phyaux(phyauxparam, monkeypatch, physics): monkeypatch.setattr(physics_variables, "burnup_in", phyauxparam.burnup_in) - burnup, dntau, nTtau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, _ = ( + burnup, ntau, nTtau, figmer, fusrat, qfuel, rndfuel, t_alpha_confinement, _ = ( physics.phyaux( aspect=phyauxparam.aspect, dene=phyauxparam.dene, @@ -1959,7 +1959,7 @@ def test_phyaux(phyauxparam, monkeypatch, physics): assert burnup == pytest.approx(phyauxparam.expected_burnup) - assert dntau == pytest.approx(phyauxparam.expected_dntau) + assert ntau == pytest.approx(phyauxparam.expected_ntau) assert figmer == pytest.approx(phyauxparam.expected_figmer) From b5578fe845ab911ee1338aac3d67c4bec4dfcca3 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 24 Jan 2025 14:37:02 +0000 Subject: [PATCH 063/106] :memo: Enhance plasma confinement documentation with overview, key constraints, and detailed scaling laws --- .../physics-models/plasma_confinement.md | 126 ++++++++++++++---- 1 file changed, 100 insertions(+), 26 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 3f3b97e108..50b30cd421 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -1,14 +1,38 @@ # Confinement Time Scaling Laws +## Overview + +Confinement time scalings are empirical relationships derived from experimental data across various fusion machines. These scalings help predict how changes in tokamak parameters (like size, magnetic field strength, and plasma density) will affect the confinement time and overall performance. + The energy confinement time $\tau_E$ is calculated using one of a choice of empirical scalings. ($\tau_E$ is defined below.) -Many energy confinement time scaling laws are available within PROCESS, for -tokamaks, RFPs and stellarators. These are calculated in routine `calculate_confinement_time()`. The -value of `i_confinement_time` determines which of the scalings is used in the plasma energy -balance calculation. The table below summarises the available scaling laws. The -most commonly used is the so-called IPB98(y,2) scaling. +Normally most confinement scalings will be of the form: + +$$ +\tau_{\text{E}} = C I_{\text{p}}^{\alpha_{I}} B_{\text{T}}^{\alpha_{B}} \overline{n}_e^{\alpha_{n}} P_{\text{L}}^{\alpha_{P}} R^{\alpha_{R}} \kappa^{\alpha_{\kappa}} \epsilon^{\alpha_{\epsilon}} M^{\alpha_{M}} +$$ + +Where $\tau_{\text{E}}$ is the confinement time in seconds, $C$ is a coefficient , $I_{\text{p}}$ [MA] is the plasma current, $B_{\text{T}}$ [T] is the toroidal magnetic field, $\overline{n}_e$ [$10^{19} \text{m}^{-3}$] is the electron central line averaged density, $P_{\text{L}}$ [MW] is the loss power, $R$ [m] is the major radius, $\kappa$ is the plasma elongation, +$\epsilon$ is the inverse aspect ratio and $M$ is the average atomic mass of the plasma. + +Classically the loss power, $P_{\text{L}}$ is defined as: + +$$ +P_{\text{L}} = \frac{W}{\tau_{\text{E}}} +$$ + +where $W$ is the total thermal energy of the plasma. We can look at it mainly as the difference in heating and loss powers in the plasma, as such we interpret it as power transported out from the +“core” by charged particles. This leads to the classic definition of loss power for the scaling: + +$$ +P_{\text{L}} = \underbrace{f_{\alpha}P_{\alpha} + P_{\text{c}} + P_{\text{OH}} + P_{\text{HCD}}}_{\text{Plasma heating}} +$$ + +where $f_{\alpha}$ is the [fraction of alpha power that is coupled to the plasma](../physics-models/fusion_reactions/plasma_reactions.md#coupled-alpha-particle-power), $P_{\alpha}$ is the alpha power, $P_{\text{c}}$ is the charged particle power, $P_{\text{OH}}$ is the ohmic heating power, $P_{\text{HCD}}$ is the plasma heating done by the external heating & current drive systems. -## Effect of radiation on energy confinement +---------- + +### Effect of radiation on energy confinement Published confinement scalings are all based on low radiation pulses. A power plant will certainly be a high radiation machine --- both in the core, due to @@ -20,31 +44,52 @@ drop in power transported by ions and electrons, leaving the confinement nearly unchanged. To allow for these uncertainties, three options are available, using the switch -`i_rad_loss`. In each case, the particle transport loss power `pscaling` is -derived directly from the energy confinement scaling law. +`i_rad_loss`. -`i_rad_loss = 0` -- Total power lost is scaling power plus radiation: +- For `i_rad_loss = 0` the total plasma radiation is taken from the loss power. -`pscaling + pradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` +$$ +P_{\text{L}} = \underbrace{f_{\alpha}P_{\alpha} + P_{\text{c}} + P_{\text{OH}} + P_{\text{HCD}}}_{\text{Plasma heating}} - P_{\text{rad}} +$$ +- For `i_rad_loss = 1` the plasma radiation only from the "core" region is taken from the loss power. -`i_rad_loss = 1` -- Total power lost is scaling power plus radiation from a region defined as the "core": - -`pscaling + pcoreradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` +$$ +P_{\text{L}} = \underbrace{f_{\alpha}P_{\alpha} + P_{\text{c}} + P_{\text{OH}} + P_{\text{HCD}}}_{\text{Plasma heating}} - P_{\text{rad,core}} +$$ -`i_rad_loss = 2` -- Total power lost is scaling power only, with no additional -allowance for radiation. This is not recommended for power plant models. +- For `i_rad_loss = 2` the plasma radiation is not taken from the loss power -`pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` +$$ +P_{\text{L}} = \underbrace{f_{\alpha}P_{\alpha} + P_{\text{c}} + P_{\text{OH}} + P_{\text{HCD}}}_{\text{Plasma heating}} +$$ + +---------- + +### Ignition + +Switch `ignite` can be used to denote whether the plasma is ignited, i.e. fully self-sustaining +without the need for any injected auxiliary power during the burn. If `ignite = 1`, the calculated +injected power does not contribute to the plasma power balance, although the cost of the auxiliary +power system is taken into account (the system is then assumed to be required to provide heating +and/or current drive during the plasma start-up phase only). If `ignite` = 0, the plasma is not +ignited, and the auxiliary power is taken into account in the plasma power balance during the burn +phase. An ignited plasma will be difficult to control and is unlikely to be practical. This +option is not recommended. + +---------- ## Available confinement time scalings +Many energy confinement time scaling laws are available within PROCESS, for conventional aspect ratio tokamaks, spherical tokamaks, and stellarators. These are calculated in routine `calculate_confinement_time()`. +The value of `i_confinement_time` determines which of the scalings is used in the plasma energy balance calculation. + ### 0: User input confinement time Is selected with `i_confinement_time = 0` $$ -\tau_{\text{E}} = \mathtt{t_electron_confinement\_in} +\tau_{\text{E}} = \mathtt{t\_electron\_confinement\_in} $$ ------------ @@ -599,16 +644,45 @@ allowance for radiation. This is not recommended for power plant models. `pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` -## Ignition -Switch `ignite` can be used to denote whether the plasma is ignited, i.e. fully self-sustaining -without the need for any injected auxiliary power during the burn. If `ignite` = 1, the calculated -injected power does not contribute to the plasma power balance, although the cost of the auxiliary -power system is taken into account (the system is then assumed to be required to provide heating -and/or current drive during the plasma start-up phase only). If `ignite` = 0, the plasma is not -ignited, and the auxiliary power is taken into account in the plasma power balance during the burn -phase. An ignited plasma will be difficult to control and is unlikely to be practical. This -option is not recommended. + +------------------ + +## Key Constraints + +### Global plasma power balance + +This constraint can be activated by stating `icc = 2` in the input file. + +To allow for these uncertainties, three options are available, using the switch +`i_rad_loss`. In each case, the particle transport loss power `pscaling` is +derived directly from the energy confinement scaling law. + +`i_rad_loss = 0` -- Total power lost is scaling power plus radiation: + +`pscaling + pradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` + + +`i_rad_loss = 1` -- Total power lost is scaling power plus radiation from a region defined as the "core": + +`pscaling + pcoreradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` + +`i_rad_loss = 2` -- Total power lost is scaling power only, with no additional +allowance for radiation. This is not recommended for power plant models. + +`pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` + +**It is highly recommended to always have this constraint on as it is a global consistency checker** + +---------- + +### Lower limit on alpha particle confinement time ratio + +This constraint can be activated by stating `icc = 62` in the input file. + +The value of `f_alpha_energy_confinement_min` can be set to the desired minimum total ratio between the alpha confinement and energy confinement times. + + The scaling value `ftaulimit` can be varied also. [^1]: T. C. Hender et al., 'Physics Assessment for the European Reactor Study', AEA Fusion Report AEA FUS 172 (1992) From c33c3a79826ceb76ca415bc1a4b718032ed76b21 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 28 Jan 2025 14:52:34 +0000 Subject: [PATCH 064/106] :warning: Add warning about TITAN Reversed-Field Pinch scaling being removed --- .../proc-pages/physics-models/plasma_confinement.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 50b30cd421..ff012bc4b0 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -351,6 +351,15 @@ $$ ------------------------- +### 25: TITAN Reversed-Field_Pinch scaling + +Is selected with `i_confinement_time = 25` + +!!! warning + This scaling has been removed + +------------------------- + ### 26: ELM-free: ITERH-97P scaling Is selected with `i_confinement_time = 26` From 00bfcbbdaaecfeebb8fcacae23b18a2028f8c251 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 09:47:18 +0000 Subject: [PATCH 065/106] :sparkle: Add Lang high density H-mode scaling and related confinement time calculation --- .../physics-models/plasma_confinement.md | 11 ++ process/confinement_time.py | 104 ++++++++++++++---- process/physics.py | 36 +++--- 3 files changed, 108 insertions(+), 43 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index ff012bc4b0..63c0ddd74c 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -494,6 +494,17 @@ $$ ------------------------- +### 42: Lang high density H-mode scaling + +Is selected with `i_confinement_time = 42` + +$$ +\tau_{\text{E}} = 6.94\times 10^{-7} M^{0.2} \kappa_{\text{IPB}}^{0.37} \left(\frac{q_{95}}{q_{\text{cyl}}}\right)^{0.77} \\ +\times A^{2.48205} \frac{I^{1.3678} B_{\text{T}}^{0.12} R^{1.2345} \overline{n}^{0.032236}}{A^{0.9\ln{A}}P^{0.74}} \left(\frac{\overline{n}_{e}}{n_{\text{GW}}}\right)^{-0.22 \ln{\left(\frac{\overline{n}_e}{n_{\text{GW}}}\right)}} +$$ + +------------------------- + ### 43: Hubbard I-mode nominal scaling Is selected with `i_confinement_time = 43` diff --git a/process/confinement_time.py b/process/confinement_time.py index 2b490e7a62..be39e004ee 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1567,6 +1567,65 @@ def petty08_confinement_time( ) +def lang_high_density_confinement_time( + plasma_current: float, + bt: float, + dnla: float, + powerht: float, + rmajor: float, + rminor: float, + q: float, + qstar: float, + aspect: float, + afuel: float, + kappa_ipb: float, +) -> float: + """ + Calculate the high density relevant confinement time + + Parameters: + plasma_current (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla (float): Line averaged electron density [m**-3] + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + q (float): Safety factor + qstar (float): Equivalent cylindrical edge safety factor + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + kappa_ipb (float): Plasma elongation at 95% flux surface + + Returns: + float: High density relevant confinement time [s] + + Notes: + + References: + - P. T. Lang, C. Angioni, R. M. M. Dermott, R. Fischer, and H. Zohm, “Pellet Induced High Density Phases during ELM Suppression in ASDEX Upgrade,” + 24th IAEA Conference Fusion Energy, 2012, Oct. 2012, + Available: https://www.researchgate.net/publication/274456104_Pellet_Induced_High_Density_Phases_during_ELM_Suppression_in_ASDEX_Upgrade + ‌ + """ + qratio = q / qstar + n_gw = 1.0e14 * plasma_current / (np.pi * rminor * rminor) + nratio = dnla / n_gw + return ( + 6.94e-7 + * plasma_current**1.3678e0 + * bt**0.12e0 + * dnla**0.032236e0 + * (powerht * 1.0e6) ** (-0.74e0) + * rmajor**1.2345e0 + * kappa_ipb**0.37e0 + * aspect**2.48205e0 + * afuel**0.2e0 + * qratio**0.77e0 + * aspect ** (-0.9e0 * np.log(aspect)) + * nratio ** (-0.22e0 * np.log(nratio)) + ) + + def hubbard_nominal_confinement_time( pcur: float, bt: float, @@ -1754,7 +1813,7 @@ def menard_nstx_petty08_hybrid_confinement_time( ) # Equivalent to A < 1.7, use NSTX scaling - elif (1.0e0 / aspect) >= 0.6e0: + if (1.0e0 / aspect) >= 0.6e0: return menard_nstx_confinement_time( pcur, bt, @@ -1765,29 +1824,28 @@ def menard_nstx_petty08_hybrid_confinement_time( aspect, afuel, ) - else: - return (((1.0e0 / aspect) - 0.4e0) / (0.6e0 - 0.4e0)) * ( - menard_nstx_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - kappa_ipb, - aspect, - afuel, - ) - ) + ((0.6e0 - (1.0e0 / aspect)) / (0.6e0 - 0.4e0)) * ( - petty08_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - kappa_ipb, - aspect, - ) + return (((1.0e0 / aspect) - 0.4e0) / (0.6e0 - 0.4e0)) * ( + menard_nstx_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa_ipb, + aspect, + afuel, + ) + ) + ((0.6e0 - (1.0e0 / aspect)) / (0.6e0 - 0.4e0)) * ( + petty08_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa_ipb, + aspect, ) + ) def nstx_gyro_bohm_confinement_time( diff --git a/process/physics.py b/process/physics.py index 08a81a500d..bda686b8cc 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6839,7 +6839,7 @@ def calculate_confinement_time( # vol. 48, no. 9, pp. 099801–099801, Aug. 2008, # doi: https://doi.org/10.1088/0029-5515/48/9/099801. - physics_variables.kappa_ipb = vol_(plasma / (2.0 * np.pi * rmajor)) / ( + physics_variables.kappa_ipb = (vol_plasma / (2.0 * np.pi * rmajor)) / ( np.pi * rminor**2 ) @@ -7432,27 +7432,23 @@ def calculate_confinement_time( # ========================================================================== - elif i_confinement_time == 42: # High density relevant confinement scaling - # P.T. Lang et al. 2012, IAEA conference proceeding EX/P4-01 - # q should be q95: incorrect if i_plasma_current = 2 (ST current scaling) - qratio = q / qstar - # Greenwald density in m^-3 - n_gw = 1.0e14 * plasma_current / (np.pi * rminor * rminor) - nratio = dnla / n_gw + # Lang high density relevant confinement scaling + elif i_confinement_time == 42: t_electron_confinement = ( hfact - * 6.94e-7 - * plasma_current**1.3678e0 - * bt**0.12e0 - * dnla**0.032236e0 - * (powerht * 1.0e6) ** (-0.74e0) - * rmajor**1.2345e0 - * physics_variables.kappa_ipb**0.37e0 - * aspect**2.48205e0 - * m_fuel_amu**0.2e0 - * qratio**0.77e0 - * aspect ** (-0.9e0 * np.log(aspect)) - * nratio ** (-0.22e0 * np.log(nratio)) + * confinement.lang_high_density_confinement_time( + plasma_current, + bt, + dnla, + powerht, + rmajor, + rminor, + q, + qstar, + aspect, + afuel, + physics_variables.kappa_ipb, + ) ) # ========================================================================== From addd661df14002d384b252997847cf59b39e50fb Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 09:57:56 +0000 Subject: [PATCH 066/106] :shirt: Apply new ruff linting rules --- process/confinement_time.py | 81 ++++++++++++++++++------------------- process/physics.py | 8 ++-- 2 files changed, 44 insertions(+), 45 deletions(-) diff --git a/process/confinement_time.py b/process/confinement_time.py index be39e004ee..9b75982378 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -20,7 +20,7 @@ def neo_alcator_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return 0.07e0 * dene20 * rminor * rmajor * rmajor * qstar @@ -43,7 +43,7 @@ def mirnov_confinement_time(rminor: float, kappa95: float, pcur: float) -> float References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return 0.2e0 * rminor * np.sqrt(kappa95) * pcur @@ -76,7 +76,7 @@ def merezhkin_muhkovatov_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return ( 3.5e-3 @@ -110,7 +110,7 @@ def shimomura_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return 0.045e0 * rmajor * rminor * bt * np.sqrt(kappa95) * np.sqrt(afuel) @@ -148,7 +148,7 @@ def kaye_goldston_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return ( 0.055e0 @@ -161,7 +161,7 @@ def kaye_goldston_confinement_time( ) -def iter_89P_confinement_time( +def iter_89p_confinement_time( pcur: float, rmajor: float, rminor: float, @@ -193,7 +193,7 @@ def iter_89P_confinement_time( - T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return ( 0.048e0 @@ -335,7 +335,7 @@ def goldston_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return ( @@ -381,11 +381,11 @@ def t10_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ denfac = dnla20 * rmajor * qstar / (1.3e0 * bt) denfac = min(1.0e0, denfac) - t_electron_confinement = ( + return ( 0.095e0 * rmajor * rminor @@ -395,7 +395,6 @@ def t10_confinement_time( / powerht**0.4e0 * (zeff**2 * pcur**4 / (rmajor * rminor * qstar**3 * kappa95**1.5e0)) ** 0.08e0 ) - return t_electron_confinement def jaeri_confinement_time( @@ -432,7 +431,7 @@ def jaeri_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ gjaeri = ( zeff**0.4e0 @@ -485,7 +484,7 @@ def kaye_big_confinement_time( References: - N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group, - ‘ITER physics design guidelines: 1989’, no. No. 10. Feb. 1990. + "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. """ return ( 0.105e0 @@ -702,7 +701,7 @@ def iter_93h_confinement_time( References: - K. Thomsen et al., “ITER H mode confinement database update,” - vol. 34, no. 1, pp. 131–167, Jan. 1994, doi: https://doi.org/10.1088/0029-5515/34/1/i10. + vol. 34, no. 1, pp. 131-167, Jan. 1994, doi: https://doi.org/10.1088/0029-5515/34/1/i10. """ return ( @@ -829,7 +828,7 @@ def iter_h90_p_amended_confinement_time( References: - J. P. Christiansen et al., “Global energy confinement H-mode database for ITER,” - Nuclear Fusion, vol. 32, no. 2, pp. 291–338, Feb. 1992, + Nuclear Fusion, vol. 32, no. 2, pp. 291-338, Feb. 1992, doi: https://doi.org/10.1088/0029-5515/32/2/i11. ‌ """ @@ -867,7 +866,7 @@ def sudo_et_al_confinement_time( References: - S. Sudo et al., “Scalings of energy confinement and density limit in stellarator/heliotron devices,” - Nuclear Fusion, vol. 30, no. 1, pp. 11–21, Jan. 1990, + Nuclear Fusion, vol. 30, no. 1, pp. 11-21, Jan. 1990, doi: https://doi.org/10.1088/0029-5515/30/1/002. ‌""" @@ -904,7 +903,7 @@ def gyro_reduced_bohm_confinement_time( Notes: References: - - Goldston, R. J., H. Biglari, and G. W. Hammett. "E× B/B 2 vs. µ B/B as the Cause of Transport in Tokamaks." + - Goldston, R. J., H. Biglari, and G. W. Hammett. "E x B/B 2 vs. µ B/B as the Cause of Transport in Tokamaks." Bull. Am. Phys. Soc 34 (1989): 1964. """ return ( @@ -943,7 +942,7 @@ def lackner_gottardi_stellarator_confinement_time( References: - K. Lackner and N. A. O. Gottardi, “Tokamak confinement in relation to plateau scaling,” - Nuclear Fusion, vol. 30, no. 4, pp. 767–770, Apr. 1990, + Nuclear Fusion, vol. 30, no. 4, pp. 767-770, Apr. 1990, doi: https://doi.org/10.1088/0029-5515/30/4/018. ‌ """ @@ -988,7 +987,7 @@ def iter_h97p_confinement_time( References: - I. C. Database and M. W. G. (presented Cordey), “Energy confinement scaling and the extrapolation to ITER,” - Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115–B127, Dec. 1997, + Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115-B127, Dec. 1997, doi: https://doi.org/10.1088/0741-3335/39/12b/009. ‌ """ @@ -1035,10 +1034,10 @@ def iter_h97p_elmy_confinement_time( References: - I. C. Database and M. W. G. (presented Cordey), “Energy confinement scaling and the extrapolation to ITER,” - Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115–B127, Dec. 1997, + Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115-B127, Dec. 1997, doi: https://doi.org/10.1088/0741-3335/39/12b/009. - - International Atomic Energy Agency, Vienna (Austria), ‘Technical basis for the ITER final design report, cost review and safety analysis (FDR)’, + - International Atomic Energy Agency, Vienna (Austria), "Technical basis for the ITER final design report, cost review and safety analysis (FDR)", no. no.16. Dec. 1998. """ return ( @@ -1085,7 +1084,7 @@ def iter_96p_confinement_time( References: - S. B. Kaye et al., “ITER L mode confinement database,” - Nuclear Fusion, vol. 37, no. 9, pp. 1303–1328, Sep. 1997, + Nuclear Fusion, vol. 37, no. 9, pp. 1303-1328, Sep. 1997, doi: https://doi.org/10.1088/0029-5515/37/9/i10. ‌ """ @@ -1134,10 +1133,10 @@ def iter_ipb98y_confinement_time( References: - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” - Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + Nuclear Fusion, vol. 39, no. 12, pp. 2175-2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” - Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. """ return ( @@ -1184,10 +1183,10 @@ def iter_ipb98y1_confinement_time( References: - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” - Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + Nuclear Fusion, vol. 39, no. 12, pp. 2175-2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” - Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. """ return ( @@ -1234,10 +1233,10 @@ def iter_ipb98y2_confinement_time( References: - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” - Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + Nuclear Fusion, vol. 39, no. 12, pp. 2175-2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” - Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. """ return ( 0.0562e0 @@ -1283,10 +1282,10 @@ def iter_ipb98y3_confinement_time( References: - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” - Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + Nuclear Fusion, vol. 39, no. 12, pp. 2175-2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” - Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. """ return ( 0.0564e0 @@ -1332,10 +1331,10 @@ def iter_ipb98y4_confinement_time( References: - I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” - Nuclear Fusion, vol. 39, no. 12, pp. 2175–2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. + Nuclear Fusion, vol. 39, no. 12, pp. 2175-2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” - Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. """ return ( 0.0587e0 @@ -1376,7 +1375,7 @@ def iss95_stellarator_confinement_time( References: - U. Stroth et al., “Energy confinement scaling from the international stellarator database,” - vol. 36, no. 8, pp. 1063–1077, Aug. 1996, doi: https://doi.org/10.1088/0029-5515/36/8/i11. + vol. 36, no. 8, pp. 1063-1077, Aug. 1996, doi: https://doi.org/10.1088/0029-5515/36/8/i11. ‌ """ return ( @@ -1416,7 +1415,7 @@ def iss04_stellarator_confinement_time( References: - H. Yamada et al., “Characterization of energy confinement in net-current free plasmas using the extended International Stellarator Database,” - vol. 45, no. 12, pp. 1684–1693, Nov. 2005, doi: https://doi.org/10.1088/0029-5515/45/12/024. + vol. 45, no. 12, pp. 1684-1693, Nov. 2005, doi: https://doi.org/10.1088/0029-5515/45/12/024. ‌ """ return ( @@ -1504,10 +1503,10 @@ def murari_confinement_time( References: - A. Murari, E. Peluso, Michela Gelfusa, I. Lupelli, and P. Gaudio, “A new approach to the formulation and validation of scaling expressions for plasma confinement in tokamaks,” - Nuclear Fusion, vol. 55, no. 7, pp. 073009–073009, Jun. 2015, doi: https://doi.org/10.1088/0029-5515/55/7/073009. + Nuclear Fusion, vol. 55, no. 7, pp. 073009-073009, Jun. 2015, doi: https://doi.org/10.1088/0029-5515/55/7/073009. - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” - Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. ‌ """ return ( @@ -1552,7 +1551,7 @@ def petty08_confinement_time( Physics of Plasmas, vol. 15, no. 8, Aug. 2008, doi: https://doi.org/10.1063/1.2961043. - None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” - Nuclear Fusion, vol. 48, no. 9, pp. 099801–099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. + Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. ‌ """ return ( @@ -1747,7 +1746,7 @@ def menard_nstx_confinement_time( References: - J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” - Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440–20170440, Feb. 2019, + Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440-20170440, Feb. 2019, doi: https://doi.org/10.1098/rsta.2017.0440. ‌ @@ -1796,7 +1795,7 @@ def menard_nstx_petty08_hybrid_confinement_time( References: - J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” - Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440–20170440, Feb. 2019, + Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440-20170440, Feb. 2019, doi: https://doi.org/10.1098/rsta.2017.0440. ‌ """ @@ -1873,7 +1872,7 @@ def nstx_gyro_bohm_confinement_time( References: - P. F. Buxton, L. Connor, A. E. Costley, Mikhail Gryaznevich, and S. McNamara, “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” - vol. 61, no. 3, pp. 035006–035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. + vol. 61, no. 3, pp. 035006-035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. ‌ """ return ( @@ -1920,7 +1919,7 @@ def itpa20_confinement_time( References: - G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” - Nuclear Fusion, vol. 61, no. 7, pp. 076006–076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. + Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. """ return ( 0.053 diff --git a/process/physics.py b/process/physics.py index bda686b8cc..2bf16e6db4 100644 --- a/process/physics.py +++ b/process/physics.py @@ -3007,7 +3007,7 @@ def phyaux( nTtau = ntau * te # Fusion reactions per second - fusrat = fusion_rate_density_total * plasma_volume + fusrat = fusion_rate_density_total * vol_plasma # Alpha particle confinement time (s) # Number of alphas / alpha production rate @@ -6836,7 +6836,7 @@ def calculate_confinement_time( # None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, # “Corrections to a sequence of papers in Nuclear Fusion,” Nuclear Fusion, - # vol. 48, no. 9, pp. 099801–099801, Aug. 2008, + # vol. 48, no. 9, pp. 099801099801, Aug. 2008, # doi: https://doi.org/10.1088/0029-5515/48/9/099801. physics_variables.kappa_ipb = (vol_plasma / (2.0 * np.pi * rmajor)) / ( @@ -6907,7 +6907,7 @@ def calculate_confinement_time( # ITER Power scaling - ITER 89-P (L-mode) elif i_confinement_time == 6: - t_electron_confinement = hfact * confinement.iter_89P_confinement_time( + t_electron_confinement = hfact * confinement.iter_89p_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ) @@ -7010,7 +7010,7 @@ def calculate_confinement_time( elif i_confinement_time == 14: t_electron_confinement = min( hfact - * confinement.iter_89P_confinement_time( + * confinement.iter_89p_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht ), hfact From 9e182351209fcc7bafeafbd1d3860e9944357c92 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 10:31:21 +0000 Subject: [PATCH 067/106] :sparkle: Implement Valovic modified ELMy-H mode scaling for confinement time calculation and update documentation --- .../physics-models/plasma_confinement.md | 13 ++++++ process/confinement_time.py | 43 +++++++++++++++++++ process/physics.py | 25 ++++++----- 3 files changed, 70 insertions(+), 11 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 63c0ddd74c..d92837ba64 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -389,6 +389,19 @@ $$ $$ ------------------------- + +### 29: Valovic modified ELMy-H mode scaling + +Is selected with `i_confinement_time = 29` + +$$ +\tau_{\text{E}} = 0.067 M_{\text{i}}^{0.05} I^{0.9} R^{1.31} \kappa^{0.56} \overline{n}_{19}^{0.45} B_{\text{T}}^{0.17} P^{-0.68} a^{0.79} +$$ + +!!! warning + The origin, name and values of this scaling cannot be confirmed. + +------------------------- ### 32: IPB98(y) ELMy H-mode scaling diff --git a/process/confinement_time.py b/process/confinement_time.py index 9b75982378..0a6513fa1a 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1101,6 +1101,49 @@ def iter_96p_confinement_time( ) +def valovic_elmy_confinement_time( + pcur: float, + bt: float, + dnla19: float, + afuel: float, + rmajor: float, + rminor: float, + kappa: float, + powerht: float, +) -> float: + """ + Calculate the Valovic modified ELMy-H mode scaling confinement time + + Parameters: + hfact (float): H-factor + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + afuel (float): Fuel atomic mass number + rmajor (float): Plasma major radius [m] + rminor (float): Plasma minor radius [m] + kappa (float): Plasma elongation + powerht (float): Net Heating power [MW] + + Returns: + float: Valovic modified ELMy-H mode confinement time [s] + + Notes: + + References: + """ + return (0.067e0 + * pcur**0.9e0 + * bt**0.17e0 + * dnla19**0.45e0 + * afuel**0.05e0 + * rmajor**1.316e0 + * rminor**0.79e0 + * kappa**0.56e0 + * powerht ** (-0.68e0) + ) + + def iter_ipb98y_confinement_time( pcur: float, bt: float, diff --git a/process/physics.py b/process/physics.py index 2bf16e6db4..ec79ca9c8a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7233,18 +7233,21 @@ def calculate_confinement_time( # ========================================================================== - elif i_confinement_time == 29: # Valovic modified ELMy-H mode scaling + # Valovic modified ELMy-H mode scaling + # WARNING: No reference found for this scaling. This may not be its real name + elif i_confinement_time == 29: t_electron_confinement = ( - hfact - * 0.067e0 - * pcur**0.9e0 - * bt**0.17e0 - * dnla19**0.45e0 - * m_fuel_amu**0.05e0 - * rmajor**1.316e0 - * rminor**0.79e0 - * kappa**0.56e0 - * powerht ** (-0.68e0) + hfact + * confinement.valovic_elmy_confinement_time( + pcur, + bt, + dnla19, + afuel, + rmajor, + rminor, + kappa, + powerht, + ) ) # ========================================================================== From 0eac1cf6ff5ee1402c3e575ee8e9e27b57e8d4fc Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 10:39:28 +0000 Subject: [PATCH 068/106] :sparkle: Add Kaye modified L-mode scaling for confinement time calculation and update documentation --- .../physics-models/plasma_confinement.md | 13 +++++ process/confinement_time.py | 47 ++++++++++++++++++- process/physics.py | 29 +++++------- 3 files changed, 72 insertions(+), 17 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index d92837ba64..c10fbd56f1 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -403,6 +403,19 @@ $$ ------------------------- +### 30: Kaye modified L mode scaling + +Is selected with `i_confinement_time = 30` + +$$ +\tau_{\text{E}} = 0.021 M_{\text{i}}^{0.25} I^{0.81} R^{2.01} \kappa^{0.7} \overline{n}_{19}^{0.47} B_{\text{T}}^{0.14} P^{-0.73} \epsilon^{0.18} +$$ + +!!! warning + The origin, name and values of this scaling cannot be confirmed. + +------------------------- + ### 32: IPB98(y) ELMy H-mode scaling Is selected with `i_confinement_time = 32` diff --git a/process/confinement_time.py b/process/confinement_time.py index 0a6513fa1a..06e72afe3f 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1132,7 +1132,8 @@ def valovic_elmy_confinement_time( References: """ - return (0.067e0 + return ( + 0.067e0 * pcur**0.9e0 * bt**0.17e0 * dnla19**0.45e0 @@ -1144,6 +1145,50 @@ def valovic_elmy_confinement_time( ) +def kaye_confinement_time( + pcur: float, + bt: float, + kappa: float, + rmajor: float, + aspect: float, + dnla19: float, + afuel: float, + powerht: float, +) -> float: + """ + Calculate the Kaye PPPL Workshop April 1998 L-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + kappa (float): Plasma elongation + rmajor (float): Plasma major radius [m] + aspect (float): Aspect ratio + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + afuel (float): Fuel atomic mass number + powerht (float): Net Heating power [MW] + + Returns: + float: Kaye PPPL Workshop confinement time [s] + + Notes: + + References: + - Kaye PPPL Workshop April 1998 + """ + return ( + 0.021e0 + * pcur**0.81e0 + * bt**0.14e0 + * kappa**0.7e0 + * rmajor**2.01e0 + * aspect ** (-0.18e0) + * dnla19**0.47e0 + * afuel**0.25e0 + * powerht ** (-0.73e0) + ) + + def iter_ipb98y_confinement_time( pcur: float, bt: float, diff --git a/process/physics.py b/process/physics.py index ec79ca9c8a..5957897044 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7236,9 +7236,7 @@ def calculate_confinement_time( # Valovic modified ELMy-H mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 29: - t_electron_confinement = ( - hfact - * confinement.valovic_elmy_confinement_time( + t_electron_confinement = hfact * confinement.valovic_elmy_confinement_time( pcur, bt, dnla19, @@ -7248,22 +7246,21 @@ def calculate_confinement_time( kappa, powerht, ) - ) # ========================================================================== - elif i_confinement_time == 30: # Kaye PPPL Workshop April 1998 L-mode scaling - t_electron_confinement = ( - hfact - * 0.021e0 - * pcur**0.81e0 - * bt**0.14e0 - * kappa**0.7e0 - * rmajor**2.01e0 - * aspect ** (-0.18e0) - * dnla19**0.47e0 - * m_fuel_amu**0.25e0 - * powerht ** (-0.73e0) + # Kaye PPPL Workshop April 1998 L-mode scaling + # WARNING: No reference found for this scaling. This may not be its real name + elif i_confinement_time == 30: + t_electron_confinement = hfact * confinement.kaye_confinement_time( + pcur, + bt, + kappa, + rmajor, + aspect, + dnla19, + afuel, + powerht, ) # ========================================================================== From f880213ff7704e85f9dbcc7d7f22c5715c03a0f4 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 10:54:16 +0000 Subject: [PATCH 069/106] :sparkle: Add ITERH-PB98P(y) H-mode scaling for confinement time calculation and update documentation --- .../physics-models/plasma_confinement.md | 13 ++++++ process/confinement_time.py | 44 +++++++++++++++++++ process/physics.py | 24 +++++----- 3 files changed, 69 insertions(+), 12 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index c10fbd56f1..36fc3d1f83 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -416,6 +416,19 @@ $$ ------------------------- +### 31: ITERH-PB98P(y) H mode scaling + +Is selected with `i_confinement_time = 31` + +$$ +\tau_{\text{E}} = 0.0615 M^{0.2} I^{0.9} R^{2.0} \kappa_{\text{IPB}}^{0.75} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.1} P^{-0.66} \epsilon^{0.66} +$$ + +!!! warning + The origin, name and values of this scaling cannot be confirmed. + +------------------------- + ### 32: IPB98(y) ELMy H-mode scaling Is selected with `i_confinement_time = 32` diff --git a/process/confinement_time.py b/process/confinement_time.py index 06e72afe3f..f60bc130ed 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -1189,6 +1189,50 @@ def kaye_confinement_time( ) +def iter_pb98py_confinement_time( + pcur: float, + bt: float, + dnla19: float, + powerht: float, + rmajor: float, + kappa: float, + aspect: float, + afuel: float, +) -> float: + """ + Calculate the ITERH-PB98P(y) ELMy H-mode scaling confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + dnla19 (float): Line averaged electron density in units of 10**19 m**-3 + powerht (float): Net Heating power [MW] + rmajor (float): Plasma major radius [m] + kappa (float): Plasma elongation + aspect (float): Aspect ratio + afuel (float): Fuel atomic mass number + + Returns: + float: ITERH-PB98P(y) ELMy H-mode confinement time [s] + + Notes: + + References: + + """ + return ( + 0.0615e0 + * pcur**0.9e0 + * bt**0.1e0 + * dnla19**0.4e0 + * powerht ** (-0.66e0) + * rmajor**2 + * kappa**0.75e0 + * aspect ** (-0.66e0) + * afuel**0.2e0 + ) + + def iter_ipb98y_confinement_time( pcur: float, bt: float, diff --git a/process/physics.py b/process/physics.py index 5957897044..0fe87231c0 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7265,18 +7265,18 @@ def calculate_confinement_time( # ========================================================================== - elif i_confinement_time == 31: # ITERH-PB98P(y), ELMy H-mode scaling - t_electron_confinement = ( - hfact - * 0.0615e0 - * pcur**0.9e0 - * bt**0.1e0 - * dnla19**0.4e0 - * powerht ** (-0.66e0) - * rmajor**2 - * kappaa**0.75e0 - * aspect ** (-0.66e0) - * m_fuel_amu**0.2e0 + # ITERH-PB98P(y), ELMy H-mode scaling + # WARNING: No reference found for this scaling. This may not be its real name + elif i_confinement_time == 31: + t_electron_confinement = hfact * confinement.iter_pb98py_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + afuel, ) # ========================================================================== From 99180c0c9526628ae883cf0a143cad7a954c6577 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 11:20:53 +0000 Subject: [PATCH 070/106] Refactor confinement time calculations to use m_fuel_amu instead of afuel for improved accuracy --- process/physics.py | 78 ++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/process/physics.py b/process/physics.py index 0fe87231c0..4a71e5b7a0 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2978,12 +2978,12 @@ def phyaux( aspect (float): Plasma aspect ratio. dene (float): Electron density (/m3). te (float): Volume avergaed electron temperature (keV). - deni (float): Fuel ion density (/m3). + nd_fuel_ions (float): Fuel ion density (/m3). fusion_rate_density_total (float): Fusion reaction rate from plasma and beams (/m3/s). alpha_rate_density_total (float): Alpha particle production rate (/m3/s). plasma_current (float): Plasma current (A). sbar (float): Exponent for aspect ratio (normally 1). - dnalp (float): Alpha ash density (/m3). + nd_alphas (float): Alpha ash density (/m3). t_energy_confinement (float): Global energy confinement time (s). vol_plasma (float): Plasma volume (m3). @@ -3012,7 +3012,7 @@ def phyaux( # Alpha particle confinement time (s) # Number of alphas / alpha production rate if alpha_rate_density_total != 0.0: - t_alpha_confinement = dnalp / alpha_rate_density_total + t_alpha_confinement = nd_alphas / alpha_rate_density_total else: # only likely if DD is only active fusion reaction t_alpha_confinement = 0.0 @@ -3027,7 +3027,11 @@ def phyaux( # initial fuel ion-pairs/m3 = burnt fuel ion-pairs/m3 + unburnt fuel-ion pairs/m3 # Remember that unburnt fuel-ion pairs/m3 = 0.5 * unburnt fuel-ions/m3 if physics_variables.burnup_in <= 1.0e-9: - burnup = dnalp / (dnalp + 0.5 * deni) / physics_variables.tauratio + burnup = ( + nd_alphas + / (nd_alphas + 0.5 * nd_fuel_ions) + / physics_variables.tauratio + ) else: burnup = physics_variables.burnup_in @@ -5380,7 +5384,7 @@ def outplas(self): taueffz, powerhtz, ) = self.calculate_confinement_time( - physics_variables.afuel, + physics_variables.m_fuel_amu, physics_variables.alpha_power_total, physics_variables.aspect, physics_variables.bt, @@ -6878,7 +6882,7 @@ def calculate_confinement_time( t_electron_confinement = ( hfact * confinement.merezhkin_muhkovatov_confinement_time( - rmajor, rminor, kappa95, qstar, dnla20, afuel, ten + rmajor, rminor, kappa95, qstar, dnla20, m_fuel_amu, ten ) ) @@ -6887,7 +6891,7 @@ def calculate_confinement_time( # Shimomura (S) optimized H-mode scaling elif i_confinement_time == 4: t_electron_confinement = hfact * confinement.shimomura_confinement_time( - rmajor, rminor, bt, kappa95, afuel + rmajor, rminor, bt, kappa95, m_fuel_amu ) # ======================================================================== @@ -6895,7 +6899,7 @@ def calculate_confinement_time( # Kaye-Goldston scaling (L-mode) elif i_confinement_time == 5: t_electron_confinement = hfact * confinement.kaye_goldston_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ) if iinvqd != 0: @@ -6908,7 +6912,7 @@ def calculate_confinement_time( # ITER Power scaling - ITER 89-P (L-mode) elif i_confinement_time == 6: t_electron_confinement = hfact * confinement.iter_89p_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ) # ======================================================================== @@ -6916,7 +6920,7 @@ def calculate_confinement_time( # ITER Offset linear scaling - ITER 89-O (L-mode) elif i_confinement_time == 7: t_electron_confinement = hfact * confinement.iter_89_0_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ) # ======================================================================== @@ -6926,7 +6930,7 @@ def calculate_confinement_time( rminor, rmajor, kappa, - afuel, + m_fuel_amu, pcur, zeff, dnla20, @@ -6939,7 +6943,7 @@ def calculate_confinement_time( # Goldston scaling (L-mode) elif i_confinement_time == 9: # Goldston scaling (L-mode) t_electron_confinement = hfact * confinement.goldston_confinement_time( - pcur, rmajor, rminor, kappa95, afuel, powerht + pcur, rmajor, rminor, kappa95, m_fuel_amu, powerht ) if iinvqd != 0: @@ -6962,7 +6966,7 @@ def calculate_confinement_time( t_electron_confinement = hfact * confinement.jaeri_confinement_time( kappa95, rminor, - afuel, + m_fuel_amu, n20, pcur, bt, @@ -6983,7 +6987,7 @@ def calculate_confinement_time( kappa95, pcur, n20, - afuel, + m_fuel_amu, powerht, ) @@ -6998,7 +7002,7 @@ def calculate_confinement_time( kappa, dnla20, bt, - afuel, + m_fuel_amu, powerht, ) @@ -7011,11 +7015,11 @@ def calculate_confinement_time( t_electron_confinement = min( hfact * confinement.iter_89p_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ), hfact * confinement.iter_89_0_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, afuel, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ), ) @@ -7045,7 +7049,7 @@ def calculate_confinement_time( dnla20, bt, powerht, - afuel, + m_fuel_amu, ) # ======================================================================== @@ -7078,7 +7082,7 @@ def calculate_confinement_time( kappa95, dnla20, bt, - afuel, + m_fuel_amu, powerht, ) @@ -7093,7 +7097,7 @@ def calculate_confinement_time( kappa95, dnla20, bt, - afuel, + m_fuel_amu, powerht, ) @@ -7108,7 +7112,7 @@ def calculate_confinement_time( * confinement.iter_h90_p_amended_confinement_time( pcur, bt, - afuel, + m_fuel_amu, rmajor, powerht, kappa, @@ -7168,7 +7172,7 @@ def calculate_confinement_time( pcur, bt, powerht, - afuel, + m_fuel_amu, rmajor, dnla20, aspect, @@ -7191,7 +7195,7 @@ def calculate_confinement_time( rmajor, aspect, kappa, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7208,7 +7212,7 @@ def calculate_confinement_time( rmajor, aspect, kappa, - afuel, + m_fuel_amu, ) ) @@ -7225,7 +7229,7 @@ def calculate_confinement_time( rmajor, aspect, dnla19, - afuel, + m_fuel_amu, powerht, ) @@ -7240,7 +7244,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - afuel, + m_fuel_amu, rmajor, rminor, kappa, @@ -7259,7 +7263,7 @@ def calculate_confinement_time( rmajor, aspect, dnla19, - afuel, + m_fuel_amu, powerht, ) @@ -7276,7 +7280,7 @@ def calculate_confinement_time( rmajor, physics_variables.kappa_ipb, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7291,7 +7295,7 @@ def calculate_confinement_time( rmajor, kappa, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7306,7 +7310,7 @@ def calculate_confinement_time( rmajor, physics_variables.kappa_ipb, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7321,7 +7325,7 @@ def calculate_confinement_time( rmajor, physics_variables.kappa_ipb, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7336,7 +7340,7 @@ def calculate_confinement_time( rmajor, physics_variables.kappa_ipb, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7351,7 +7355,7 @@ def calculate_confinement_time( rmajor, physics_variables.kappa_ipb, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7400,7 +7404,7 @@ def calculate_confinement_time( rmajor, kappa95, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7446,7 +7450,7 @@ def calculate_confinement_time( q, qstar, aspect, - afuel, + m_fuel_amu, physics_variables.kappa_ipb, ) ) @@ -7499,7 +7503,7 @@ def calculate_confinement_time( rmajor, physics_variables.kappa_ipb, aspect, - afuel, + m_fuel_amu, ) # ========================================================================== @@ -7516,7 +7520,7 @@ def calculate_confinement_time( rmajor, physics_variables.kappa_ipb, aspect, - afuel, + m_fuel_amu, ) ) From e65e065a8e11192cfe80c4220ddc0a598ddb6a71 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 15:48:32 +0000 Subject: [PATCH 071/106] :art: Add all references to mkdocs page --- .../physics-models/plasma_confinement.md | 175 +++++++----------- process/confinement_time.py | 94 +++++----- process/physics.py | 18 -- 3 files changed, 118 insertions(+), 169 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 36fc3d1f83..e1c0e4f8fc 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -96,7 +96,7 @@ $$ ### 1: Nec-Alcator (NA) OH scaling -Is selected with `i_confinement_time = 1` +Is selected with `i_confinement_time = 1`[^1] $$ \tau_{\text{E}} = 0.07 n_{20}aRq_{\text{cyl}} @@ -106,7 +106,7 @@ $$ ### 2: Mirnov scaling (H-mode) -Is selected with `i_confinement_time = 2` +Is selected with `i_confinement_time = 2`[^1] $$ \tau_{\text{E}} = 0.2 a \sqrt{\kappa_{95}}I @@ -116,7 +116,7 @@ $$ ### 3: Merezhkin-Mukhovatov OH/L-mode scaling -Is selected with `i_confinement_time = 3` +Is selected with `i_confinement_time = 3`[^1] $$ \tau_{\text{E}} = 0.0035 \overline{n}_{20}a^{0.25}R^{2.75}q_{\text{cyl}}\kappa_{95}^{0.125}M_i^{0.5}T_{10}^{0.5} @@ -127,7 +127,7 @@ $$ ### 4: Shimomura optimized H-mode scaling -Is selected with `i_confinement_time = 4` +Is selected with `i_confinement_time = 4`[^1] $$ \tau_{\text{E}} = 0.045 Ra B_{\text{T}}\sqrt{\kappa_{95}}\sqrt{M_{\text{i}}} @@ -137,7 +137,7 @@ $$ ### 5: Kaye-Goldston L-mode scaling -Is selected with `i_confinement_time = 5` +Is selected with `i_confinement_time = 5`[^1] $$ \tau_{\text{E}} = 0.055 I^{1.24}P^{-0.58}R^{1.65}a^{-0.49}\kappa_{95}^{0.28}n_{20}^{0.26}B_{\text{T}}^{-0.09}\left(\frac{M_{\text{i}}}{1.5}\right)^{0.5} @@ -147,7 +147,7 @@ $$ ### 6: ITER 89-P L-mode scaling -Is selected with `i_confinement_time = 6` +Is selected with `i_confinement_time = 6`[^1] [^2] $$ \tau_{\text{E}} = 0.048 I^{0.85}R^{1.2}a^{0.3}\kappa^{0.5}\overline{n}_{20}^{0.1}B_{\text{T}}^{0.2}M_{\text{i}}^{0.5} P^{-0.5} @@ -157,7 +157,7 @@ $$ ### 7: ITER 89-0 L-mode scaling -Is selected with `i_confinement_time = 7` +Is selected with `i_confinement_time = 7` [^2] $$ \begin{aligned} @@ -170,7 +170,7 @@ $$ ### 8: Rebut-Lallia L-mode scaling -Is selected with `i_confinement_time = 8` +Is selected with `i_confinement_time = 8` [^2] $$ \begin{aligned} @@ -186,7 +186,7 @@ where $\ell = \left(a^2R\kappa\right)^{\frac{1}{3}}$ ### 9: Goldston L-mode scaling -Is selected with `i_confinement_time = 9` +Is selected with `i_confinement_time = 9` [^1] $$ \tau_{\text{E}} = 0.037 I P^{-0.5} R^{1.75}a^{-0.37}\kappa_{95}^{0.5} \left(\frac{M_i}{1.5}\right)^{0.5} @@ -196,7 +196,7 @@ $$ ### 10: T-10 L-mode scaling -Is selected with `i_confinement_time = 10` +Is selected with `i_confinement_time = 10` [^1] $$ @@ -209,7 +209,7 @@ where $\overline{n}_{20*} = 1.3\left(\frac{B_{\text{T}}}{Rq_{\text{cyl}}}\right) ### 11: JAERI / Odajima-Shimomura L-mode scaling -Is selected with `i_confinement_time = 11` +Is selected with `i_confinement_time = 11` [^1] $$ @@ -223,7 +223,7 @@ where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\ ### 12: Kaye "big" L-mode scaling -Is selected with `i_confinement_time = 12` +Is selected with `i_confinement_time = 12` [^1] $$ \tau_{\text{E}} = 0.1051 I^{0.85} P^{-0.5} R^{0.5} a^{0.3} \kappa^{0.25} n_{20}^{0.1}B_{\text{T}}^{0.3}M_{\text{i}}^{0.5} @@ -233,7 +233,7 @@ $$ ### 13: ITER H90-P H-mode scaling -Is selected with `i_confinement_time = 13` +Is selected with `i_confinement_time = 13` [^2] $$ \tau_{\text{E}} = 0.064 I^{0.87} R^{1.82} a^{-0.12} \kappa_{95}^{0.35} \overline{n}_{20}^{0.09} B_{\text{T}}^{0.15} M_{\text{i}}^{0.5} P^{-0.5} @@ -243,7 +243,7 @@ $$ ### 14: Minimum of ITER 89-P and ITER 89-O -Is selected with `i_confinement_time = 14` +Is selected with `i_confinement_time = 14` [^1] [^2] Will return the value of [ITER 89-P](#6-iter-89-p-l-mode-scaling) or [ITER 89-O](#7-iter-89-0-l-mode-scaling), whichever is smaller. @@ -251,7 +251,7 @@ Will return the value of [ITER 89-P](#6-iter-89-p-l-mode-scaling) or [ITER 89-O] ### 15: Riedel L-mode scaling -Is selected with `i_confinement_time = 15` +Is selected with `i_confinement_time = 15` [^2] $$ \tau_{\text{E}} = 0.044 I^{0.93} R^{1.37} a^{-0.049} \kappa_{95}^{0.588} \overline{n}_{20}^{0.078} B_{\text{T}}^{0.152} P^{-0.537} @@ -259,9 +259,9 @@ $$ ------------------------- -### 16: Christiansen L-mode scaling +### 16: Christiansen L-mode scaling -Is selected with `i_confinement_time = 16` +Is selected with `i_confinement_time = 16` [^2] $$ \tau_{\text{E}} = 0.24 I^{0.79} R^{0.56} a^{1.46} \kappa_{95}^{0.73} \overline{n}_{20}^{0.41} B_{\text{T}}^{0.29} P^{-0.79} M_{\text{i}}^{-0.02} @@ -269,9 +269,9 @@ $$ ------------------------- -### 17: Lackner-Gottardi L-mode scaling +### 17: Lackner-Gottardi L-mode scaling -Is selected with `i_confinement_time = 17` +Is selected with `i_confinement_time = 17` [^2] $$ \tau_{\text{E}} = 0.12 I^{0.8} R^{1.8} a^{0.4} \left(\frac{\kappa_{95}}{\left(1+\kappa_{95}\right)^{0.8}}\right) \overline{n}_{20}^{0.6} \hat{q}^{0.4} P^{-0.6} @@ -283,7 +283,7 @@ where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I R}$ ### 18: Neo-Kaye L-mode scaling -Is selected with `i_confinement_time = 18` +Is selected with `i_confinement_time = 18` [^2] $$ \tau_{\text{E}} = 0.063 I^{1.12} R^{1.3} a^{-0.04} \kappa_{95}^{0.28} \overline{n}_{20}^{0.14} B_{\text{T}}^{0.04} P^{-0.59} @@ -293,7 +293,7 @@ $$ ### 19: Riedel H-mode scaling -Is selected with `i_confinement_time = 19` +Is selected with `i_confinement_time = 19` [^2] $$ \tau_{\text{E}} = 0.1 M_{\text{i}}^{0.5} I^{0.884} R^{1.24} a^{-0.23} \kappa_{95}^{0.317} \overline{n}_{20}^{0.105} B_{\text{T}}^{0.207} P^{-0.486} @@ -303,7 +303,7 @@ $$ ### 20: Amended ITER H90-P H-mode scaling -Is selected with `i_confinement_time = 20` +Is selected with `i_confinement_time = 20` [^3] $$ \tau_{\text{E}} = 0.082 M_{\text{i}}^{0.5} I^{1.02} R^{1.6} \kappa_{95}^{-0.19} B_{\text{T}}^{0.15} P^{-0.47} @@ -313,7 +313,7 @@ $$ ### 21: Sudo et al. stellarators/heliotron scaling -Is selected with `i_confinement_time = 21` +Is selected with `i_confinement_time = 21` [^4] $$ \tau_{\text{E}} = 0.17 P^{-0.58} \overline{n}_{20}^{0.69} B^{0.84} a^{2.0} R^{0.75} @@ -323,7 +323,7 @@ $$ ### 22: Gyro reduced Bohm scaling -Is selected with `i_confinement_time = 22` +Is selected with `i_confinement_time = 22` [^5] $$ \tau_{\text{E}} = 0.25 P^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.4} R^{0.6} @@ -333,7 +333,7 @@ $$ ### 23: Lackner-Gottardi Stellerator scaling -Is selected with `i_confinement_time = 23` +Is selected with `i_confinement_time = 23` [^6] $$ \tau_{\text{E}} = 0.17 P^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.0} R q_{95}^{0.4} @@ -343,7 +343,7 @@ $$ ### 24: ITER 93 ELM-free H-mode scaling -Is selected with `i_confinement_time = 24` +Is selected with `i_confinement_time = 24` [^7] $$ \tau_{\text{E}} = 0.036 I^{1.06} B_{\text{T}}^{0.32} P^{-0.67} R^{1.79} \epsilon^{-0.11} \kappa^{0.66} \overline{n}_{20}^{0.17} M_{\text{i}}^{0.41} @@ -362,7 +362,7 @@ Is selected with `i_confinement_time = 25` ### 26: ELM-free: ITERH-97P scaling -Is selected with `i_confinement_time = 26` +Is selected with `i_confinement_time = 26` [^8] $$ \tau_{\text{E}} = 0.031 M_{\text{i}}^{0.42} I^{0.95} R^{1.92} \epsilon^{0.08} \kappa_{95}^{0.63} \overline{n}_{19}^{0.35} B_{\text{T}}^{0.25} P^{-0.67} @@ -372,7 +372,7 @@ $$ ### 27: ELMy ITER H-H97-P(y) scaling -Is selected with `i_confinement_time = 27` +Is selected with `i_confinement_time = 27` [^8] [^9] $$ \tau_{\text{E}} = 0.029 M_{\text{i}}^{0.2} I^{0.9} R^{2.03} \epsilon^{-0.19} \kappa_{95}^{0.92} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.20} P^{-0.66} @@ -382,7 +382,7 @@ $$ ### 28: ITER-96P (ITER-97L) L-mode scaling -Is selected with `i_confinement_time = 28` +Is selected with `i_confinement_time = 28` [^10] $$ \tau_{\text{E}} = 0.023 M_{\text{i}}^{0.2} I^{0.96} R^{1.83} \epsilon^{-0.06} \kappa_{95}^{0.64} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.03} P^{-0.73} @@ -418,7 +418,7 @@ $$ ### 31: ITERH-PB98P(y) H mode scaling -Is selected with `i_confinement_time = 31` +Is selected with `i_confinement_time = 31` $$ \tau_{\text{E}} = 0.0615 M^{0.2} I^{0.9} R^{2.0} \kappa_{\text{IPB}}^{0.75} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.1} P^{-0.66} \epsilon^{0.66} @@ -431,7 +431,7 @@ $$ ### 32: IPB98(y) ELMy H-mode scaling -Is selected with `i_confinement_time = 32` +Is selected with `i_confinement_time = 32` [^11] [^12] $$ \tau_{\text{E}} = 0.0365 I^{0.97} B_{\text{T}}^{0.08} \overline{n}_{19}^{0.41} P^{-0.63} R^{1.93} \kappa^{0.67} \epsilon^{0.23} M^{0.2} @@ -442,7 +442,7 @@ $$ ### 33: IPB98(y,1) ELMy H-mode scaling -Is selected with `i_confinement_time = 33` +Is selected with `i_confinement_time = 33` [^11] [^12] $$ \tau_{\text{E}} = 0.0503 I^{0.91} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.44} P^{-0.65} R^{2.05} \kappa_{\text{IPB}}^{0.72} \epsilon^{0.57} M^{0.13} @@ -452,7 +452,7 @@ $$ ### 34: IPB98(y,2) ELMy H-mode scaling -Is selected with `i_confinement_time = 34` +Is selected with `i_confinement_time = 34` [^11] [^12] $$ \tau_{\text{E}} = 0.0562 I^{0.93} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.41} P^{-0.69} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} @@ -462,7 +462,7 @@ $$ ### 35: IPB98(y,3) ELMy H-mode scaling -Is selected with `i_confinement_time = 35` +Is selected with `i_confinement_time = 35` [^11] [^12] $$ \tau_{\text{E}} = 0.0564 I^{0.88} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.4} P^{-0.69} R^{2.15} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.64} M^{0.2} @@ -472,7 +472,7 @@ $$ ### 36: IPB98(y,4) ELMy H-mode scaling -Is selected with `i_confinement_time = 36` +Is selected with `i_confinement_time = 36` [^11] [^12] $$ \tau_{\text{E}} = 0.0587 I^{0.85} B_{\text{T}}^{0.29} \overline{n}_{19}^{0.39} P^{-0.7} R^{2.08} \kappa_{\text{IPB}}^{0.76} \epsilon^{0.69} M^{0.17} @@ -483,7 +483,7 @@ $$ ### 37: ISS95 stellarator scaling -Is selected with `i_confinement_time = 37` +Is selected with `i_confinement_time = 37` [^13] $$ \tau_{\text{E}} = 0.079 a^{2.21} R^{0.65} P^{-0.59} \overline{n}_{19}^{0.51} B_{\text{T}}^{0.83} \iota_{2/3}^{0.4} @@ -494,7 +494,7 @@ $$ ### 38: ISS04 stellarator scaling -Is selected with `i_confinement_time = 38` +Is selected with `i_confinement_time = 38` [^14] $$ \tau_{\text{E}} = 0.134 a^{2.28} R^{0.64} P^{-0.61} \overline{n}_{19}^{0.54} B_{\text{T}}^{0.84} \iota_{2/3}^{0.41} @@ -504,7 +504,7 @@ $$ ### 39: DS03 beta-independent H-mode scaling -Is selected with `i_confinement_time = 39` +Is selected with `i_confinement_time = 39` [^15] $$ \tau_{\text{E}} = 0.028 I^{0.83} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.49} P^{-0.55} R^{2.11} \kappa_{95}^{0.75} \epsilon^{0.3} M^{0.14} @@ -514,7 +514,7 @@ $$ ### 40: Murari "Non-power law" H-mode scaling -Is selected with `i_confinement_time = 40` +Is selected with `i_confinement_time = 40` [^16] $$ \tau_{\text{E}} = 0.0367 I^{1.006} R^{1.731} \kappa_{\text{IPB}}^{1.45} P^{-0.735} \\ @@ -525,7 +525,7 @@ $$ ### 41: Petty08 H-mode scaling -Is selected with `i_confinement_time = 41` +Is selected with `i_confinement_time = 41` [^17] $$ \tau_{\text{E}} = 0.052 I^{0.75} B_{\text{T}}^{0.3} \overline{n}_{19}^{0.32} P^{-0.47} R^{2.09} \kappa_{\text{IPB}}^{0.88} \epsilon^{0.84} @@ -535,7 +535,7 @@ $$ ### 42: Lang high density H-mode scaling -Is selected with `i_confinement_time = 42` +Is selected with `i_confinement_time = 42` [^18] $$ \tau_{\text{E}} = 6.94\times 10^{-7} M^{0.2} \kappa_{\text{IPB}}^{0.37} \left(\frac{q_{95}}{q_{\text{cyl}}}\right)^{0.77} \\ @@ -546,7 +546,7 @@ $$ ### 43: Hubbard I-mode nominal scaling -Is selected with `i_confinement_time = 43` +Is selected with `i_confinement_time = 43` [^19] $$ \tau_{\text{E}} = 0.014 I^{0.68} B_{\text{T}}^{0.77} \overline{n}_{20}^{0.02} P^{-0.29} @@ -556,7 +556,7 @@ $$ ### 44: Hubbard I-mode lower scaling -Is selected with `i_confinement_time = 44` +Is selected with `i_confinement_time = 44` [^19] $$ \tau_{\text{E}} = 0.014 I^{0.6} B_{\text{T}}^{0.7} \overline{n}_{20}^{-0.03} P^{-0.33} @@ -566,7 +566,7 @@ $$ ### 45: Hubbard I-mode upper scaling -Is selected with `i_confinement_time = 45` +Is selected with `i_confinement_time = 45` [^19] $$ \tau_{\text{E}} = 0.014 I^{0.76} B_{\text{T}}^{0.84} \overline{n}_{20}^{-0.07} P^{-0.25} @@ -577,7 +577,7 @@ $$ ### 46: Menard NSTX H-mode scaling -Is selected with `i_confinement_time = 46` +Is selected with `i_confinement_time = 46` [^20] $$ \tau_{\text{E}} = 0.095 I^{0.75} B_{\text{T}}^{1.08} \overline{n}_{19}^{0.44} P^{-0.73} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} @@ -587,7 +587,7 @@ $$ ### 47: Menard NSTX-Petty08 hybrid scaling -Is selected with `i_confinement_time = 47` +Is selected with `i_confinement_time = 47` [^20] - If $\epsilon \le 0.4 \ (A \ge 2.5)$ apply the [Petty08 scaling](#41-petty-h-mode-scaling) - If $\epsilon \ge 0.6 \ (A \le 1.7)$ apply the [Menard NSTX scaling](#46-menard-nstx-h-mode-scaling) @@ -602,7 +602,7 @@ $$ ### 48: Buxton NSTX Gyro-Bohm H-mode scaling -Is selected with `i_confinement_time = 48` +Is selected with `i_confinement_time = 48` [^21] $$ \tau_{\text{E}} = 0.21 I^{0.54} B_{\text{T}}^{0.91} \overline{n}_{20}^{-0.05} P^{-0.38} R^{2.14} @@ -612,7 +612,7 @@ $$ ### 49: ITPA20 H-mode scaling -Is selected with `i_confinement_time = 49` +Is selected with `i_confinement_time = 49` [^22] $$ \tau_{\text{E}} = 0.053 I^{0.98} B_{\text{T}}^{0.22} \overline{n}_{19}^{0.24} P^{-0.669} R^{1.71} \left(1+\delta \right)^{0.36} \kappa_{\text{IPB}}^{0.8} \epsilon^{0.35} M^{0.2} @@ -620,58 +620,6 @@ $$ ------------------------- -| `i_confinement_time` | scaling law | reference | -| :-: | - | - | -| 1 | Neo-Alcator (ohmic) | [^1] | -| 2 | Mirnov (H-mode) | [^1] | -| 3 | Merezhkin-Muhkovatov (L-mode) | [^1] | -| 4 | Shimomura (H-mode) | JAERI-M 87-080 (1987) | -| 5 | Kaye-Goldston (L-mode) | Nuclear Fusion **25** (1985) p.65 | -| 6 | ITER 89-P (L-mode) | Nuclear Fusion **30** (1990) p.1999 | -| 7 | ITER 89-O (L-mode) | [^2] | -| 8 | Rebut-Lallia (L-mode) | Plasma Physics and Controlled Nuclear Fusion Research **2** (1987) p. 187 | -| 9 | Goldston (L-mode)| Plas.\ Phys.\ Controlled Fusion **26** (1984) p.87 | -| 10 | T10 (L-mode) | [^2] | -| 11 | JAERI-88 (L-mode) | JAERI-M 88-068 (1988) | -| 12 | Kaye-Big Complex (L-mode) | Phys.\ Fluids B **2** (1990) p.2926 | -| 13 | ITER H90-P (H-mode) | | -| 14 | ITER Mix (minimum of 6 and 7) | | -| 15 | Riedel (L-mode) | | -| 16 | Christiansen et al. (L-mode) | JET Report JET-P (1991) 03 | -| 17 | Lackner-Gottardi (L-mode) | Nuclear Fusion **30** (1990) p.767 | -| 18 | Neo-Kaye (L-mode) | [^2] | -| 19 | Riedel (H-mode) | | -| 20 | ITER H90-P (amended) | Nuclear Fusion **32** (1992) p.318 | -| 21 | Large Helical Device (stellarator) | Nuclear Fusion **30** (1990) | -| 22 | Gyro-reduced Bohm (stellarator) | Bull. Am. Phys. Society, **34** (1989) p.1964 | -| 23 | Lackner-Gottardi (stellarator) | Nuclear Fusion **30** (1990) p.767 | -| 24 | ITER-93H (H-mode) | PPCF, Proc. 15th Int. Conf.Seville, 1994 IAEA-CN-60/E-P-3 | -| 25 | TITAN (RFP) | TITAN RFP Fusion Reactor Study, Scoping Phase Report, UCLA-PPG-1100, page 5--9, Jan 1987 | -| 26 | ITER H-97P ELM-free (H-mode) | J. G. Cordey et al., EPS Berchtesgaden, 1997 | -| 27 | ITER H-97P ELMy (H-mode) | J. G. Cordey et al., EPS Berchtesgaden, 1997 | -| 28 | ITER-96P (= ITER97-L) (L-mode) | Nuclear Fusion **37** (1997) p.1303 | -| 29 | Valovic modified ELMy (H-mode) | | -| 30 | Kaye PPPL April 98 (L-mode) | | -| 31 | ITERH-PB98P(y) (H-mode) | | -| 32 | IPB98(y) (H-mode) | Nuclear Fusion **39** (1999) p.2175, Table 5, | -| 33 | IPB98(y,1) (H-mode) | Nuclear Fusion **39** (1999) p.2175, Table 5, full data | -| 34 | IPB98(y,2) (H-mode) | Nuclear Fusion **39** (1999) p.2175, Table 5, NBI only | -| 35 | IPB98(y,3) (H-mode) | Nuclear Fusion **39** (1999) p.2175, Table 5, NBI only, no C-Mod | -| 36 | IPB98(y,4) (H-mode) | Nuclear Fusion **39** (1999) p.2175, Table 5, NBI only ITER like | -| 37 | ISS95 (stellarator) | Nuclear Fusion **36** (1996) p.1063 | -| 38 | ISS04 (stellarator) | Nuclear Fusion **45** (2005) p.1684 | -| 39 | DS03 (H-mode) | Plasma Phys. Control. Fusion **50** (2008) 043001, equation 4.13 | -| 40 | Non-power law (H-mode) | A. Murari et al 2015 Nucl. Fusion 55 073009, Table 4. | -| 41 | Petty 2008 (H-mode) | C.C. Petty 2008 Phys. Plasmas **15** 080501, equation 36 | -| 42 | Lang 2012 (H-mode) | P.T. Lang et al. 2012 IAEA conference proceeding EX/P4-01 | -| 43 | Hubbard 2017 -- nominal (I-mode) | A.E. Hubbard et al. 2017, Nuclear Fusion **57** 126039 | -| 44 | Hubbard 2017 -- lower (I-mode) | A.E. Hubbard et al. 2017, Nuclear Fusion **57** 126039 | -| 45 | Hubbard 2017 -- upper (I-mode) | A.E. Hubbard et al. 2017, Nuclear Fusion **57** 126039 | -| 46 | NSTX (H-mode; spherical tokamak) | J. Menard 2019, Phil. Trans. R. Soc. A 377:201704401 | -| 47 | NSTX-Petty08 Hybrid (H-mode) | J. Menard 2019, Phil. Trans. R. Soc. A 377:201704401 | -| 48 | NSTX gyro-Bohm (Buxton) (H-mode; spherical tokamak) | P. Buxton et al. 2019 Plasma Phys. Control. Fusion 61 035006 | -| 49 | Use input `tauee_in` | | -| 50 | ITPA20 (H-mode) | G. Verdoolaege et al 2021 Nucl. Fusion 61 076006 | ### Effect of radiation on energy confinement @@ -743,7 +691,26 @@ The value of `f_alpha_energy_confinement_min` can be set to the desired minimum The scaling value `ftaulimit` can be varied also. -[^1]: T. C. Hender et al., 'Physics Assessment for the European Reactor Study', -AEA Fusion Report AEA FUS 172 (1992) -[^2]: N.A. Uckan and ITER Physics Group, 'ITER Physics Design Guidelines: 1989', -ITER Documentation Series, No. 10, IAEA/ITER/DS/10 (1990) \ No newline at end of file +[^1]: N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group,"ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. +[^2]: T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 +[^3]: J. P. Christiansen et al., “Global energy confinement H-mode database for ITER,” Nuclear Fusion, vol. 32, no. 2, pp. 291-338, Feb. 1992, doi: https://doi.org/10.1088/0029-5515/32/2/i11. +[^4]: S. Sudo et al., “Scalings of energy confinement and density limit in stellarator/heliotron devices,” Nuclear Fusion, vol. 30, no. 1, pp. 11-21, Jan. 1990, doi: https://doi.org/10.1088/0029-5515/30/1/002. +[^5]: Goldston, R. J., H. Biglari, and G. W. Hammett. "E x B/B 2 vs. µ B/B as the Cause of Transport in Tokamaks." Bull. Am. Phys. Soc 34 (1989): 1964. +[^6]: K. Lackner and N. A. O. Gottardi, “Tokamak confinement in relation to plateau scaling,” Nuclear Fusion, vol. 30, no. 4, pp. 767-770, Apr. 1990, doi: https://doi.org/10.1088/0029-5515/30/4/018. +[^7]: K. Thomsen et al., “ITER H mode confinement database update,” vol. 34, no. 1, pp. 131-167, Jan. 1994, doi: https://doi.org/10.1088/0029-5515/34/1/i10. +[^8]: I. C. Database and M. W. G. (presented Cordey), “Energy confinement scaling and the extrapolation to ITER,” Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115-B127, Dec. 1997, doi: https://doi.org/10.1088/0741-3335/39/12b/009. +[^9]: International Atomic Energy Agency, Vienna (Austria), "Technical basis for the ITER final design report, cost review and safety analysis (FDR)",no.16. Dec. 1998. +[^10]: S. B. Kaye et al., “ITER L mode confinement database,” Nuclear Fusion, vol. 37, no. 9, pp. 1303-1328, Sep. 1997, doi: https://doi.org/10.1088/0029-5515/37/9/i10. +[^11]: I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” Nuclear Fusion, vol. 39, no. 12, pp. 2175-2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. +[^12]: None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. +[^13]: U. Stroth et al., “Energy confinement scaling from the international stellarator database,” vol. 36, no. 8, pp. 1063-1077, Aug. 1996, doi: https://doi.org/10.1088/0029-5515/36/8/i11. +[^14]: H. Yamada et al., “Characterization of energy confinement in net-current free plasmas using the extended International Stellarator Database,” vol. 45, no. 12, pp. 1684-1693, Nov. 2005, doi: https://doi.org/10.1088/0029-5515/45/12/024. +[^15]: T. C. Luce, C. C. Petty, and J. G. Cordey, “Application of dimensionless parameter scaling techniques to the design and interpretation of magnetic fusion experiments,” Plasma Physics and Controlled Fusion, vol. 50, no. 4, p. 043001, Mar. 2008, doi: https://doi.org/10.1088/0741-3335/50/4/043001. +[^16]: A. Murari, E. Peluso, Michela Gelfusa, I. Lupelli, and P. Gaudio, “A new approach to the formulation and validation of scaling expressions for plasma confinement in tokamaks,” Nuclear Fusion, vol. 55, no. 7, pp. 073009-073009, Jun. 2015, doi: https://doi.org/10.1088/0029-5515/55/7/073009. +[^17]: C. C. Petty, “Sizing up plasmas using dimensionless parameters,” Physics of Plasmas, vol. 15, no. 8, Aug. 2008, doi: https://doi.org/10.1063/1.2961043. +[^18]: P. T. Lang, C. Angioni, R. M. M. Dermott, R. Fischer, and H. Zohm, “Pellet Induced High Density Phases during ELM Suppression in ASDEX Upgrade,” +24th IAEA Conference Fusion Energy, 2012, Oct. 2012, Available: https://www.researchgate.net/publication/274456104_Pellet_Induced_High_Density_Phases_during_ELM_Suppression_in_ASDEX_Upgrade +[^19]: A. E. Hubbard et al., “Physics and performance of the I-mode regime over an expanded operating space on Alcator C-Mod,” Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. +[^20]: J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440-20170440, Feb. 2019, doi: https://doi.org/10.1098/rsta.2017.0440. +[^21]: P. F. Buxton, L. Connor, A. E. Costley, Mikhail Gryaznevich, and S. McNamara, “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” vol. 61, no. 3, pp. 035006-035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. +[^22‌]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. \ No newline at end of file diff --git a/process/confinement_time.py b/process/confinement_time.py index f60bc130ed..f0e588285d 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -671,52 +671,6 @@ def lackner_gottardi_confinement_time( ) -def iter_93h_confinement_time( - pcur: float, - bt: float, - powerht: float, - afuel: float, - rmajor: float, - dnla20: float, - aspect: float, - kappa: float, -) -> float: - """ - Calculate the ITER-93H scaling ELM-free confinement time - - Parameters: - pcur (float): Plasma current [MA] - bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] - afuel (float): Fuel atomic mass number - rmajor (float): Plasma major radius [m] - dnla20 (float): Line averaged electron density in units of 10**20 m**-3 - aspect (float): Aspect ratio - kappa (float): Plasma elongation - - Returns: - float: ITER-93H confinement time [s] - - Notes: - - References: - - K. Thomsen et al., “ITER H mode confinement database update,” - vol. 34, no. 1, pp. 131-167, Jan. 1994, doi: https://doi.org/10.1088/0029-5515/34/1/i10. - - """ - return ( - 0.036e0 - * pcur**1.06e0 - * bt**0.32e0 - * powerht ** (-0.67e0) - * afuel**0.41e0 - * rmajor**1.79e0 - * dnla20**0.17e0 - * aspect**0.11e0 - * kappa**0.66e0 - ) - - def neo_kaye_confinement_time( pcur: float, rmajor: float, @@ -957,6 +911,52 @@ def lackner_gottardi_stellarator_confinement_time( ) +def iter_93h_confinement_time( + pcur: float, + bt: float, + powerht: float, + afuel: float, + rmajor: float, + dnla20: float, + aspect: float, + kappa: float, +) -> float: + """ + Calculate the ITER-93H scaling ELM-free confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + powerht (float): Net Heating power [MW] + afuel (float): Fuel atomic mass number + rmajor (float): Plasma major radius [m] + dnla20 (float): Line averaged electron density in units of 10**20 m**-3 + aspect (float): Aspect ratio + kappa (float): Plasma elongation + + Returns: + float: ITER-93H confinement time [s] + + Notes: + + References: + - K. Thomsen et al., “ITER H mode confinement database update,” + vol. 34, no. 1, pp. 131-167, Jan. 1994, doi: https://doi.org/10.1088/0029-5515/34/1/i10. + + """ + return ( + 0.036e0 + * pcur**1.06e0 + * bt**0.32e0 + * powerht ** (-0.67e0) + * afuel**0.41e0 + * rmajor**1.79e0 + * dnla20**0.17e0 + * aspect**0.11e0 + * kappa**0.66e0 + ) + + def iter_h97p_confinement_time( pcur: float, bt: float, @@ -1038,7 +1038,7 @@ def iter_h97p_elmy_confinement_time( doi: https://doi.org/10.1088/0741-3335/39/12b/009. - International Atomic Energy Agency, Vienna (Austria), "Technical basis for the ITER final design report, cost review and safety analysis (FDR)", - no. no.16. Dec. 1998. + no.16. Dec. 1998. """ return ( 0.029e0 diff --git a/process/physics.py b/process/physics.py index 4a71e5b7a0..c291f05d7b 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7008,8 +7008,6 @@ def calculate_confinement_time( # ======================================================================== - # ======================================================================== - # Minimum of ITER 89-P and ITER 89-O elif i_confinement_time == 14: t_electron_confinement = min( @@ -7054,8 +7052,6 @@ def calculate_confinement_time( # ======================================================================== - # ======================================================================== - # Lackner-Gottardi scaling (L-mode) elif i_confinement_time == 17: t_electron_confinement = ( @@ -7103,8 +7099,6 @@ def calculate_confinement_time( # ======================================================================== - # ======================================================================== - # Amended version of ITER H90-P law elif i_confinement_time == 20: t_electron_confinement = ( @@ -7121,8 +7115,6 @@ def calculate_confinement_time( # ========================================================================== - # ========================================================================== - # Sudo et al. scaling (stellarators/heliotron) elif i_confinement_time == 21: t_electron_confinement = hfact * confinement.sudo_et_al_confinement_time( @@ -7218,8 +7210,6 @@ def calculate_confinement_time( # ========================================================================== - # ========================================================================== - # ITER-96P (= ITER-97L) L-mode scaling elif i_confinement_time == 28: t_electron_confinement = hfact * confinement.iter_96p_confinement_time( @@ -7235,8 +7225,6 @@ def calculate_confinement_time( # ========================================================================== - # ========================================================================== - # Valovic modified ELMy-H mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 29: @@ -7557,12 +7545,6 @@ def calculate_confinement_time( # ========================================================================== - # ========================================================================== - - # ========================================================================== - - # ========================================================================== - else: error_handling.idiags[0] = i_confinement_time error_handling.report_error(81) From 881518ae0b6a08935e5dbc97961708c272609421 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 15:51:37 +0000 Subject: [PATCH 072/106] Update documentation and code to use 'vol_plasma' instead of 'plasma_volume' for consistency in confinement calculations --- .../proc-pages/physics-models/plasma_confinement.md | 6 +++--- process/physics.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index e1c0e4f8fc..782d173859 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -667,17 +667,17 @@ derived directly from the energy confinement scaling law. `i_rad_loss = 0` -- Total power lost is scaling power plus radiation: -`pscaling + pradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` +`pscaling + pradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` `i_rad_loss = 1` -- Total power lost is scaling power plus radiation from a region defined as the "core": -`pscaling + pcoreradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` +`pscaling + pcoreradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` `i_rad_loss = 2` -- Total power lost is scaling power only, with no additional allowance for radiation. This is not recommended for power plant models. -`pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/plasma_volume` +`pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` **It is highly recommended to always have this constraint on as it is a global consistency checker** diff --git a/process/physics.py b/process/physics.py index c291f05d7b..7b703379a1 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5409,7 +5409,7 @@ def outplas(self): physics_variables.tin, physics_variables.q, physics_variables.qstar, - physics_variables.plasma_volume, + physics_variables.vol_plasma, physics_variables.xarea, physics_variables.zeff, ) From 9c97fe6d09b702ead242aae70929c41bf9d88db9 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 16:11:52 +0000 Subject: [PATCH 073/106] :fire: Remove unused inverse quadrature switch from L-mode scaling and related documentation --- .../physics-models/plasma_overview.md | 18 ----------------- process/physics.py | 20 ------------------- process/stellarator.py | 2 -- source/fortran/input.f90 | 5 +---- source/fortran/physics_variables.f90 | 7 ------- tests/integration/ref_dicts.json | 8 -------- .../input_files/large_tokamak.IN.DAT | 3 --- .../input_files/large_tokamak_nof.IN.DAT | 3 --- .../large_tokamak_once_through.IN.DAT | 1 - .../input_files/st_regression.IN.DAT | 4 ---- .../regression/input_files/stellarator.IN.DAT | 2 +- tests/unit/test_physics.py | 19 ------------------ 12 files changed, 2 insertions(+), 90 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_overview.md b/documentation/proc-pages/physics-models/plasma_overview.md index a48849fa4a..44f11bc531 100644 --- a/documentation/proc-pages/physics-models/plasma_overview.md +++ b/documentation/proc-pages/physics-models/plasma_overview.md @@ -16,23 +16,5 @@ domain. More detail is given in [^1], but this webpage is more up to date. -## Other Plasma Physics Options - -### Neo-Classical Correction Effects - -Neo-classical trapped particle effects are -included in the calculation of the plasma resistance and ohmic heating power in -subroutine `plasma_ohmic_heating()`, which is called by routine `physics`. The scaling used is only valid for aspect -ratios between 2.5 and 4, and it is possible for the plasma resistance to be -incorrect or even negative if the aspect ratio is outside this range. An error is reported if the -calculated plasma resistance is negative. - -### Inverse Quadrature in $\tau_E$ Scaling Laws - -Switch `iinvqd` determines whether the energy confinement time scaling -laws due to Kaye-Goldston (`i_confinement_time = 5`) and Goldston (`i_confinement_time = 9`) should include -an inverse quadrature scaling with the Neo-Alcator result (`i_confinement_time = 1`). A value -`iinvqd = 1`includes this scaling. - [^1]: M. Kovari, R. Kemp, H. Lux, P. Knight, J. Morris, D.J. Ward, '“PROCESS”: A systems code for fusion power plants—Part 1: Physics' Fusion Engineering and Design 89 (2014) 3054–3069 diff --git a/process/physics.py b/process/physics.py index 7b703379a1..ff62926242 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2265,7 +2265,6 @@ def physics(self): physics_variables.dnla, physics_variables.eps, physics_variables.hfact, - physics_variables.iinvqd, physics_variables.i_confinement_time, physics_variables.ignite, physics_variables.kappa, @@ -5393,7 +5392,6 @@ def outplas(self): physics_variables.dnla, physics_variables.eps, 1.0, - physics_variables.iinvqd, iisc, physics_variables.ignite, physics_variables.kappa, @@ -5853,7 +5851,6 @@ def igmarcal(self): physics_variables.dnla, physics_variables.eps, 1.0, - physics_variables.iinvqd, iisc, physics_variables.ignite, physics_variables.kappa, @@ -6645,7 +6642,6 @@ def fhz(self, hhh): physics_variables.dnla, physics_variables.eps, hhh, - physics_variables.iinvqd, physics_module.iscz, physics_variables.ignite, physics_variables.kappa, @@ -6703,7 +6699,6 @@ def calculate_confinement_time( dnla, eps, hfact, - iinvqd, i_confinement_time, ignite, kappa, @@ -6735,7 +6730,6 @@ def calculate_confinement_time( dnla : input real : line-averaged electron density (/m3) eps : input real : inverse aspect ratio hfact : input real : H factor on energy confinement scalings - iinvqd : input integer : switch for inverse quadrature i_confinement_time : input integer : switch for energy confinement scaling to use ignite : input integer : switch for ignited calculation kappa : input real : plasma elongation @@ -6847,9 +6841,6 @@ def calculate_confinement_time( np.pi * rminor**2 ) - # Calculate Neo-Alcator confinement time (used in several scalings) - taueena = 0.07e0 * n20 * rminor * rmajor * rmajor * qstar - # Electron energy confinement times # ======================================================================== @@ -6862,7 +6853,6 @@ def calculate_confinement_time( # Nec-Alcator(NA) OH scaling if i_confinement_time == 1: - # t_electron_confinement = taueena t_electron_confinement = hfact * confinement.neo_alcator_confinement_time( n20, rminor, rmajor, qstar ) @@ -6902,11 +6892,6 @@ def calculate_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ) - if iinvqd != 0: - t_electron_confinement = 1.0e0 / np.sqrt( - 1.0e0 / taueena**2 + 1.0e0 / t_electron_confinement**2 - ) - # ======================================================================== # ITER Power scaling - ITER 89-P (L-mode) @@ -6946,11 +6931,6 @@ def calculate_confinement_time( pcur, rmajor, rminor, kappa95, m_fuel_amu, powerht ) - if iinvqd != 0: - t_electron_confinement = 1.0e0 / np.sqrt( - 1.0e0 / taueena**2 + 1.0e0 / t_electron_confinement**2 - ) - # ======================================================================== # T-10 scaling (L-mode) diff --git a/process/stellarator.py b/process/stellarator.py index 4f857d2adc..20c2039d7d 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -230,7 +230,6 @@ def stigma(self): physics_variables.dnla, physics_variables.eps, 2.0, - physics_variables.iinvqd, physics_variables.i_confinement_time, physics_variables.ignite, physics_variables.kappa, @@ -4471,7 +4470,6 @@ def stphys(self, output): physics_variables.dnla, physics_variables.eps, physics_variables.hfact, - physics_variables.iinvqd, physics_variables.i_confinement_time, physics_variables.ignite, physics_variables.kappa, diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index e19a476133..c9843a632c 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -311,7 +311,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) i_beta_fast_alpha, tauee_in, alphaj, alphat, i_plasma_current, q, ti, tesep, rli, triang, & itart, f_nd_alpha_electron, iprofile, triang95, rad_fraction_sol, betbm0, f_nd_protium_electrons, & teped, f_helium3, iwalld, gamma, f_alpha_plasma, fgwped, tbeta, i_bootstrap_current, & - i_rad_loss, te, alphan, rmajor, plasma_square, kappa, iinvqd, fkzohm, beamfus0, & + i_rad_loss, te, alphan, rmajor, plasma_square, kappa, fkzohm, beamfus0, & tauratio, i_density_limit, bt, i_plasma_wall_gap, ipnlaws, beta_max, beta_min, & i_diamagnetic_current, i_pfirsch_schluter_current, m_s_limit, burnup_in use pf_power_variables, only: iscenr, maxpoloidalpower @@ -641,9 +641,6 @@ subroutine parse_input_file(in_file,out_file,show_changes) case ('ignite') call parse_int_variable('ignite', ignite, 0, 1, & 'Switch for ignited plasma assumption') - case ('iinvqd') - call parse_int_variable('iinvqd', iinvqd, 0, 1, & - 'Switch for inverse quadrature') case ('ilhthresh') call parse_int_variable('ilhthresh', ilhthresh, 1, 21, & 'Switch for L-H power threshold to enforce') diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index bacd8871c1..97a6f5f982 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -347,12 +347,6 @@ module physics_variables !! - =0 do not assume plasma ignition !! - =1 assume ignited (but include auxiliary power in costs)
                          \n
                        • =2 treat initial blanket, divertor, first wall\n as capital costs. Treat all later items and\n fraction fcdfuel of CD equipment as fuel costs
                        • \n
                        • =1 treat blanket divertor, first wall and\n fraction fcdfuel of CD equipment as fuel cost
                        • \n
                        • =0 treat these as capital cost
                        • \n
                        ", "igeom": "switch for plasma geometry calculation:\n
                          \n
                        • =0 original method (possibly based on Peng ST modelling)
                        • \n
                        • =1 improved (and traceable) method
                        • \n
                        ", "ignite": "switch for ignition assumption. Obviously, ignite must be zero if current drive\n is required. If ignite is 1, any auxiliary power is assumed to be used only during\n plasma start-up, and is excluded from all steady-state power balance calculations.\n
                          \n
                        • =0 do not assume plasma ignition
                        • \n
                        • =1 assume ignited (but include auxiliary power in costs)\n
                        ", - "iinvqd": "switch for inverse quadrature in L-mode scaling laws 5 and 9:\n
                          \n
                        • =0 inverse quadrature not used
                        • \n
                        • =1 inverse quadrature with Neo-Alcator tau-E used
                        • \n
                        ", "ikind": "", "ilhthresh": "switch for L-H mode power threshold scaling to use (see pthrmw for list)", "ilower": "", @@ -13387,10 +13385,6 @@ "lb": 0, "ub": 1 }, - "iinvqd": { - "lb": 0, - "ub": 1 - }, "ilhthresh": { "lb": 1, "ub": 21 @@ -19142,7 +19136,6 @@ "i_beta_fast_alpha", "igeom", "ignite", - "iinvqd", "ipedestal", "i_pfirsch_schluter_current", "neped", @@ -20473,7 +20466,6 @@ "ifueltyp": "int_variable", "igeom": "int_variable", "ignite": "int_variable", - "iinvqd": "int_variable", "ilhthresh": "int_variable", "ilw_smelter_h": "real_variable", "ilw_smelter_l": "real_variable", diff --git a/tests/regression/input_files/large_tokamak.IN.DAT b/tests/regression/input_files/large_tokamak.IN.DAT index e6863aab02..b54d0a974c 100644 --- a/tests/regression/input_files/large_tokamak.IN.DAT +++ b/tests/regression/input_files/large_tokamak.IN.DAT @@ -386,9 +386,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/regression/input_files/large_tokamak_nof.IN.DAT b/tests/regression/input_files/large_tokamak_nof.IN.DAT index 326cc0c220..26c75bbcc9 100644 --- a/tests/regression/input_files/large_tokamak_nof.IN.DAT +++ b/tests/regression/input_files/large_tokamak_nof.IN.DAT @@ -368,9 +368,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/regression/input_files/large_tokamak_once_through.IN.DAT b/tests/regression/input_files/large_tokamak_once_through.IN.DAT index 687e04d5ed..3dcd33ccfd 100644 --- a/tests/regression/input_files/large_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/large_tokamak_once_through.IN.DAT @@ -329,7 +329,6 @@ i_beta_component = 1 * switch for beta limit scaling (`constraint equation 24` i_plasma_current = 4 * switch for plasma current scaling to use i_density_limit = 7 * switch for density limit to enforce (`constraint equation 5`) i_beta_fast_alpha = 1 * switch for fast alpha pressure calculation -iinvqd = 1 * switch for inverse quadrature in L-mode scaling laws 5 and 9; ipedestal = 1 * switch for pedestal profiles; neped = 0.5e20 * electron density of pedestal [m-3] (`ipedestal==1) nesep = 0.2e20 * electron density at separatrix [m-3] (`ipedestal==1) diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index 46a7ee73f4..5503e7a6a5 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -436,10 +436,6 @@ boundu(21) = 10.0 * DESCRIPTION: Input electron energy confinement time (sec) (i_confinement_time=49 only)' * JUSTIFICATION: Not set, not ussing i_confinement_time = 49. -*iinvqd = -* DESCRIPTION: Switch for inverse quadrature in L-mode scaling laws 5 and 9 -* JUSTIFICATION: Not used, L mode plasma - *ilhthresh = * DESCRIPTION: Switch for L-H power threshold to enforce * JUSTIFICATION: Not set yet, default = 19. diff --git a/tests/regression/input_files/stellarator.IN.DAT b/tests/regression/input_files/stellarator.IN.DAT index 26ac9668b8..1ef2e8ffd3 100644 --- a/tests/regression/input_files/stellarator.IN.DAT +++ b/tests/regression/input_files/stellarator.IN.DAT @@ -126,7 +126,7 @@ rmajor = 22.16 *Plasma major radius (m) aspect = 10.1 *Aspect ratio ignite = 1 *Switch for ignition assumption (1: Ignited) -iinvqd = 1 *Switch for inverse quadrature in L-mode scaling laws 5 and 9 (1: Inverse quadrature with Neo-Alcator tau-E used) + ipedestal = 0 *Switch for pedestal profiles (0: Parabolic Profiles) i_rad_loss = 1 *Switch for radiation loss term usage in power balance (1: Total power lost is scaling power plus core radiation only) i_confinement_time = 38 *Switch for energy confinement time scaling law (38: ISS04, 49: ISS04-Gyro-Bohm) diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index a00c8d7436..f6fbf29619 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2183,8 +2183,6 @@ class ConfinementTimeParam(NamedTuple): f_alpha_plasma: Any = None - iinvqd: Any = None - i_confinement_time: Any = None ignite: Any = None @@ -2266,7 +2264,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=32, ignite=0, m_fuel_amu=2.5, @@ -2310,7 +2307,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=33, ignite=0, m_fuel_amu=2.5, @@ -2354,7 +2350,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=34, ignite=0, m_fuel_amu=2.5, @@ -2398,7 +2393,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=35, ignite=0, m_fuel_amu=2.5, @@ -2442,7 +2436,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=36, ignite=0, m_fuel_amu=2.5, @@ -2486,7 +2479,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=37, ignite=0, m_fuel_amu=2.5, @@ -2530,7 +2522,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=38, ignite=0, m_fuel_amu=2.5, @@ -2574,7 +2565,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=39, ignite=0, m_fuel_amu=2.5, @@ -2618,7 +2608,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=40, ignite=0, m_fuel_amu=2.5, @@ -2662,7 +2651,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=41, ignite=0, m_fuel_amu=2.5, @@ -2706,7 +2694,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=42, ignite=0, m_fuel_amu=2.5, @@ -2750,7 +2737,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=43, ignite=0, m_fuel_amu=2.5, @@ -2794,7 +2780,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=44, ignite=0, m_fuel_amu=2.5, @@ -2838,7 +2823,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=45, ignite=0, m_fuel_amu=2.5, @@ -2882,7 +2866,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=46, ignite=0, m_fuel_amu=2.5, @@ -2926,7 +2909,6 @@ class ConfinementTimeParam(NamedTuple): kappa_ipb=1.68145080681586, p_plasma_ohmic_mw=0.63634001890069991, f_alpha_plasma=0.94999999999999996, - iinvqd=1, i_confinement_time=47, ignite=0, m_fuel_amu=2.5, @@ -3007,7 +2989,6 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): t_energy_confinement, powerht, ) = physics.calculate_confinement_time( - iinvqd=confinementtimeparam.iinvqd, i_confinement_time=confinementtimeparam.i_confinement_time, ignite=confinementtimeparam.ignite, m_fuel_amu=confinementtimeparam.m_fuel_amu, From d918a6b87f6b5475d186dad7fc093a912e27ff7d Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 16:32:35 +0000 Subject: [PATCH 074/106] Add constants to ion/electron confinement time calc instead of loose floats --- process/physics.py | 162 ++++++++++++++++++++++----------------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/process/physics.py b/process/physics.py index ff62926242..ac4f2bcd6a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6690,85 +6690,73 @@ def fhz(self, hhh): @staticmethod def calculate_confinement_time( - m_fuel_amu, - alpha_power_total, - aspect, - bt, - nd_ions_total, - dene, - dnla, - eps, - hfact, - i_confinement_time, - ignite, - kappa, - kappa95, - non_alpha_charged_power, - pinjmw, - plasma_current, - pcoreradpv, - rmajor, - rminor, - _te, - ten, - tin, - q, - qstar, - vol_plasma, - a_plasma_poloidal, - zeff, - ): - """Routine to calculate the confinement times and - the transport power loss terms. - author: P J Knight, CCFE, Culham Science Centre - m_fuel_amu : input real : average mass of fuel (amu) - alpha_power_total : input real : alpha particle power (MW) - aspect : input real : aspect ratio - bt : input real : toroidal field on axis (T) - dene : input real : volume averaged electron density (/m3) - nd_ions_total : input real : total ion density (/m3) - dnla : input real : line-averaged electron density (/m3) - eps : input real : inverse aspect ratio - hfact : input real : H factor on energy confinement scalings - i_confinement_time : input integer : switch for energy confinement scaling to use - ignite : input integer : switch for ignited calculation - kappa : input real : plasma elongation - kappa95 : input real : plasma elongation at 95% surface - kappaa : output real : plasma elongation calculated using area ratio - non_alpha_charged_power : input real : non-alpha charged particle fusion power (MW) - pinjmw : input real : auxiliary power to ions and electrons (MW) - plasma_current : input real : plasma current (A) - pcoreradpv: input real : total core radiation power (MW/m3) - q : input real : edge safety factor (tokamaks), or - rotational transform iotabar (stellarators) - qstar : input real : equivalent cylindrical edge safety factor - rmajor : input real : plasma major radius (m) - rminor : input real : plasma minor radius (m) - te : input real : average electron temperature (keV) - ten : input real : density weighted average electron temp. (keV) - tin : input real : density weighted average ion temperature (keV) - vol_plasma : input real : plasma volume (m3) - a_plasma_poloidal : input real : plasma cross-sectional area (m2) - zeff : input real : plasma effective charge - ptrepv : output real : electron transport power (MW/m3) - ptripv : output real : ion transport power (MW/m3) - t_electron_confinement : output real : electron energy confinement time (s) - t_energy_confinement : output real : global energy confinement time (s) - t_ion_confinement : output real : ion energy confinement time (s) - powerht : output real : heating power (MW) assumed in calculation - This subroutine calculates the energy confinement time - using one of a large number of scaling laws, and the - transport power loss terms. - N. A. Uckan and ITER Physics Group, - "ITER Physics Design Guidelines: 1989", - ITER Documentation Series, No. 10, IAEA/ITER/DS/10 (1990) - A. Murari et al 2015 Nucl. Fusion, 55, 073009 - C.C. Petty 2008 Phys. Plasmas, 15, 080501 - P.T. Lang et al. 2012 IAEA conference proceeding EX/P4-01 - ITER physics basis Chapter 2, 1999 Nuclear Fusion 39 2175 - Nuclear Fusion corrections, 2008 Nuclear Fusion 48 099801 - Menard 2019, Phil. Trans. R. Soc. A 377:20170440 - Kaye et al. 2006, Nucl. Fusion 46 848 + m_fuel_amu: float, + alpha_power_total: float, + aspect: float, + bt: float, + nd_ions_total: float, + dene: float, + dnla: float, + eps: float, + hfact: float, + i_confinement_time: int, + ignite: int, + kappa: float, + kappa95: float, + non_alpha_charged_power: float, + pinjmw: float, + plasma_current: float, + pcoreradpv: float, + rmajor: float, + rminor: float, + _te: float, + ten: float, + tin: float, + q: float, + qstar: float, + vol_plasma: float, + a_plasma_poloidal: float, + zeff: float, + ) -> tuple[float, float, float, float, float, float, float]: + """ + Calculate the confinement times and the transport power loss terms. + + :param m_fuel_amu: Average mass of fuel (amu) + :param alpha_power_total: Alpha particle power (MW) + :param aspect: Aspect ratio + :param bt: Toroidal field on axis (T) + :param nd_ions_total: Total ion density (/m3) + :param dene: Volume averaged electron density (/m3) + :param dnla: Line-averaged electron density (/m3) + :param eps: Inverse aspect ratio + :param hfact: H factor on energy confinement scalings + :param i_confinement_time: Switch for energy confinement scaling to use + :param ignite: Switch for ignited calculation + :param kappa: Plasma elongation + :param kappa95: Plasma elongation at 95% surface + :param non_alpha_charged_power: Non-alpha charged particle fusion power (MW) + :param pinjmw: Auxiliary power to ions and electrons (MW) + :param plasma_current: Plasma current (A) + :param pcoreradpv: Total core radiation power (MW/m3) + :param q: Edge safety factor (tokamaks), or rotational transform iotabar (stellarators) + :param qstar: Equivalent cylindrical edge safety factor + :param rmajor: Plasma major radius (m) + :param rminor: Plasma minor radius (m) + :param _te: Average electron temperature (keV) + :param ten: Density weighted average electron temperature (keV) + :param tin: Density weighted average ion temperature (keV) + :param vol_plasma: Plasma volume (m3) + :param a_plasma_poloidal: Plasma cross-sectional area (m2) + :param zeff: Plasma effective charge + + :return: Tuple containing: + - kappaa (float): Plasma elongation calculated using area ratio + - ptrepv (float): Electron transport power (MW/m3) + - ptripv (float): Ion transport power (MW/m3) + - t_electron_confinement (float): Electron energy confinement time (s) + - t_ion_confinement (float): Ion energy confinement time (s) + - t_energy_confinement (float): Global energy confinement time (s) + - powerht (float): Heating power (MW) assumed in calculation """ eps2 = eps / 2.0e0 @@ -7538,8 +7526,20 @@ def calculate_confinement_time( # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV # (here, tin and ten are in keV, and ptrepv and ptripv are in MW/m3) - ptripv = 2.403e-22 * nd_ions_total * tin / t_ion_confinement - ptrepv = 2.403e-22 * dene * ten / t_electron_confinement + ptripv = ( + (3 / 2) + * (constants.electron_charge / 1e3) + * nd_ions_total + * tin + / t_ion_confinement + ) + ptrepv = ( + (3 / 2) + * (constants.electron_charge / 1e3) + * dene + * ten + / t_electron_confinement + ) ratio = nd_ions_total / dene * tin / ten From e43cc84749fe8af0ca70de7235b9055a53b8c510 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 16:50:10 +0000 Subject: [PATCH 075/106] :fire: Remove references to 'kappaa' from physics calculations and related tests for clarity and consistency --- process/physics.py | 20 -------------------- process/stellarator.py | 2 -- source/fortran/physics_variables.f90 | 4 +--- tests/integration/ref_dicts.json | 4 +--- tests/unit/test_physics.py | 3 --- 5 files changed, 2 insertions(+), 31 deletions(-) diff --git a/process/physics.py b/process/physics.py index ac4f2bcd6a..620b1a0200 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2248,7 +2248,6 @@ def physics(self): # Calculate transport losses and energy confinement time using the # chosen scaling law ( - physics_variables.kappaa, physics_variables.ptrepv, physics_variables.ptripv, physics_variables.t_electron_confinement, @@ -3556,14 +3555,6 @@ def outplas(self): "OP ", ) - po.ovarrf( - self.outfile, - "Elongation, area ratio calc.", - "(kappaa)", - physics_variables.kappaa, - "OP ", - ) - if physics_variables.i_plasma_geometry in [0, 2, 6, 8, 9, 10, 11]: po.ovarrf( self.outfile, @@ -5375,7 +5366,6 @@ def outplas(self): # Put the ITPA value first for iisc in [49, 34, 37, 38, 39, 46, 47, 48]: ( - physics_variables.kappaa, ptrez, ptriz, taueez, @@ -5834,7 +5824,6 @@ def igmarcal(self): # Put the ITPA value first for iisc in [49, 34, 37, 38, 39, 46, 47, 48]: ( - physics_variables.kappaa, ptrez, ptriz, taueez, @@ -6625,7 +6614,6 @@ def fhz(self, hhh): """ ( - physics_variables.kappaa, ptrez, ptriz, taueezz, @@ -6709,13 +6697,11 @@ def calculate_confinement_time( pcoreradpv: float, rmajor: float, rminor: float, - _te: float, ten: float, tin: float, q: float, qstar: float, vol_plasma: float, - a_plasma_poloidal: float, zeff: float, ) -> tuple[float, float, float, float, float, float, float]: """ @@ -6742,7 +6728,6 @@ def calculate_confinement_time( :param qstar: Equivalent cylindrical edge safety factor :param rmajor: Plasma major radius (m) :param rminor: Plasma minor radius (m) - :param _te: Average electron temperature (keV) :param ten: Density weighted average electron temperature (keV) :param tin: Density weighted average ion temperature (keV) :param vol_plasma: Plasma volume (m3) @@ -6750,7 +6735,6 @@ def calculate_confinement_time( :param zeff: Plasma effective charge :return: Tuple containing: - - kappaa (float): Plasma elongation calculated using area ratio - ptrepv (float): Electron transport power (MW/m3) - ptripv (float): Ion transport power (MW/m3) - t_electron_confinement (float): Electron energy confinement time (s) @@ -6814,9 +6798,6 @@ def calculate_confinement_time( # Plasma current in MA pcur = plasma_current / 1.0e6 - # Separatrix kappa defined with X-section for general use - kappaa = a_plasma_poloidal / (np.pi * rminor * rminor) - # Separatrix kappa defined with plasma volume for IPB scalings # Updated version of kappa used by the IPB98 scalings correction in: @@ -7550,7 +7531,6 @@ def calculate_confinement_time( ) return ( - kappaa, ptrepv, ptripv, t_electron_confinement, diff --git a/process/stellarator.py b/process/stellarator.py index 20c2039d7d..1a940d84e4 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -213,7 +213,6 @@ def stigma(self): for iisc, i in enumerate(istlaw): ( - physics_variables.kappaa, physics_variables.ptrepv, physics_variables.ptripv, physics_variables.t_electron_confinement, @@ -4453,7 +4452,6 @@ def stphys(self, output): # N.B. stellarator_variables.iotabar replaces tokamak physics_variables.q95 in argument list ( - physics_variables.kappaa, physics_variables.ptrepv, physics_variables.ptripv, physics_variables.t_electron_confinement, diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 97a6f5f982..af304d3b71 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -526,8 +526,6 @@ module physics_variables real(dp) :: kappa95 !! plasma elongation at 95% surface (calculated if `i_plasma_geometry = 0-3, 6, or 8-10`) - real(dp) :: kappaa - !! plasma elongation calculated as a_plasma_poloidal/(pi.a^2) real(dp) :: kappa_ipb !! Separatrix elongation calculated for IPB scalings @@ -1011,7 +1009,7 @@ subroutine init_physics_variables plasma_square = 0.0D0 kappa = 1.792D0 kappa95 = 1.6D0 - kappaa = 0.0D0 + kappa_ipb = 0.d0 ne0 = 0.0D0 ni0 = 0.0D0 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index ae93899973..91c1ac0895 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2888,7 +2888,6 @@ "kappa": 1.792, "kappa0": 2390.0, "kappa95": 1.6, - "kappaa": 0.0, "kappa_ipb": 0.0, "keV_": "1000*e_", "kh2o": 0.651, @@ -9951,7 +9950,6 @@ "kappa": "plasma separatrix elongation (calculated if `i_plasma_geometry = 1-5, 7 or 9-10`)", "kappa0": "", "kappa95": "plasma elongation at 95% surface (calculated if `i_plasma_geometry = 0-3, 6, or 8-10`)", - "kappaa": "plasma elongation calculated as a_plasma_poloidal/(pi.a^2)", "kappa_ipb": "Separatrix elongation calculated for IPB scalings", "keV_": "", "kh2o": "thermal conductivity of water (W/m/K)", @@ -19161,7 +19159,7 @@ "iwalld", "kappa", "kappa95", - "kappaa", + "kappa_ipb", "ne0", "ni0", diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index f6fbf29619..525bc74bc6 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2981,7 +2981,6 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): ) ( - kappaa, ptrepv, ptripv, t_electron_confinement, @@ -3022,8 +3021,6 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): confinementtimeparam.expected_kappaa_ipb ) - assert kappaa == pytest.approx(confinementtimeparam.expected_kappaa) - assert powerht == pytest.approx(confinementtimeparam.expected_powerht) assert ptrepv == pytest.approx(confinementtimeparam.expected_ptrepv) From ab3cfd4fb2df64c0d3d559fc21b5f1bae48dad32 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Wed, 29 Jan 2025 17:12:13 +0000 Subject: [PATCH 076/106] Refactor variable names for consistency: update 'kappaa' to 'kappa' in physics calculations and tests --- process/physics.py | 2 +- tests/unit/test_physics.py | 118 ++++++++++++++++--------------------- 2 files changed, 51 insertions(+), 69 deletions(-) diff --git a/process/physics.py b/process/physics.py index 620b1a0200..b9a4d55830 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5448,7 +5448,7 @@ def outplas(self): ) po.ovarre( self.outfile, - "Volume measure of elongation", + "ITER Physics Basis definition of elongation", "(kappa_ipb)", physics_variables.kappa_ipb, "OP ", diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 525bc74bc6..ef75deb08a 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2237,7 +2237,7 @@ class ConfinementTimeParam(NamedTuple): zeff: Any = None - expected_kappaa_ipb: Any = None + expected_kappa_ipb: Any = None expected_kappaa: Any = None @@ -2291,10 +2291,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.012570664670798823, - expected_ptripv=0.011156836223364355, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.012572050692511346, + expected_ptripv=0.011158066358576262, expected_tauee=21.17616899712392, expected_t_ion_confinement=21.17616899712392, expected_t_energy_confinement=21.17616899712392, @@ -2334,10 +2333,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081458458765440875, - expected_ptripv=0.072296788376262536, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.08146744024696746, + expected_ptripv=0.07230475970642361, expected_tauee=3.2679051814806361, expected_t_ion_confinement=3.2679051814806361, expected_t_energy_confinement=3.2679051814806366, @@ -2377,10 +2375,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081327750398391824, - expected_ptripv=0.072180780839479111, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.0813367174682195, + expected_ptripv=0.07218873937883169, expected_tauee=3.2731572946627923, expected_t_ion_confinement=3.2731572946627923, expected_t_energy_confinement=3.2731572946627923, @@ -2420,10 +2417,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.12077931279593926, - expected_ptripv=0.10719520783694242, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.12079262973297819, + expected_ptripv=0.10720702701193681, expected_tauee=2.2040075681235445, expected_t_ion_confinement=2.2040075681235445, expected_t_energy_confinement=2.2040075681235445, @@ -2463,10 +2459,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081309182573405442, - expected_ptripv=0.072164301346324039, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.08131814759597392, + expected_ptripv=0.07217225806867361, expected_tauee=3.2739047552801135, expected_t_ion_confinement=3.2739047552801135, expected_t_energy_confinement=3.2739047552801135, @@ -2506,10 +2501,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.08142612910014517, - expected_ptripv=0.072268094843318462, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.08143510701705373, + expected_ptripv=0.07227606300977574, expected_tauee=3.269202679985145, expected_t_ion_confinement=3.269202679985145, expected_t_energy_confinement=3.2692026799851455, @@ -2549,10 +2543,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.072709146314778414, - expected_ptripv=0.064531515128155068, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.07271716311087716, + expected_ptripv=0.06453863027150285, expected_tauee=3.6611421391548524, expected_t_ion_confinement=3.6611421391548524, expected_t_energy_confinement=3.6611421391548529, @@ -2592,10 +2585,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.078529089520063822, - expected_ptripv=0.069696886639614319, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.07853774801394538, + expected_ptripv=0.06970457130869961, expected_tauee=3.3898077909969717, expected_t_ion_confinement=3.3898077909969717, expected_t_energy_confinement=3.3898077909969717, @@ -2635,10 +2627,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.08399287091443618, - expected_ptripv=0.07454615402313478, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.0840021318362596, + expected_ptripv=0.07455437336481374, expected_tauee=3.169298972363837, expected_t_ion_confinement=3.169298972363837, expected_t_energy_confinement=3.169298972363837, @@ -2678,10 +2669,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.0831039731066564, - expected_ptripv=0.07375723096135396, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.08311313602000579, + expected_ptripv=0.07376536331761714, expected_tauee=3.203198469625145, expected_t_ion_confinement=3.203198469625145, expected_t_energy_confinement=3.203198469625145, @@ -2721,10 +2711,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.073097992274882811, - expected_ptripv=0.064876627403966491, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.07310605194452542, + expected_ptripv=0.0648837805988509, expected_tauee=3.6416666339340682, expected_t_ion_confinement=3.6416666339340682, expected_t_energy_confinement=3.6416666339340686, @@ -2764,10 +2753,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081423406537449478, - expected_ptripv=0.072265678488503571, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.08143238415417252, + expected_ptripv=0.07227364638853734, expected_tauee=3.2693119926464509, expected_t_ion_confinement=3.2693119926464509, expected_t_energy_confinement=3.2693119926464513, @@ -2807,10 +2795,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081419881443596701, - expected_ptripv=0.072262549863580605, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.08142885867164847, + expected_ptripv=0.07227051741865713, expected_tauee=3.2694535383156871, expected_t_ion_confinement=3.2694535383156871, expected_t_energy_confinement=3.2694535383156871, @@ -2850,10 +2837,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.081421142032658531, - expected_ptripv=0.072263668673609824, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.08143011939694184, + expected_ptripv=0.07227163634959588, expected_tauee=3.2694029195542003, expected_t_ion_confinement=3.2694029195542003, expected_t_energy_confinement=3.2694029195542003, @@ -2893,10 +2879,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.079599509500323962, - expected_ptripv=0.070646915991500636, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.07960828601702878, + expected_ptripv=0.07065470540932789, expected_tauee=3.3442231132583498, expected_t_ion_confinement=3.3442231132583498, expected_t_energy_confinement=3.3442231132583502, @@ -2936,10 +2921,9 @@ class ConfinementTimeParam(NamedTuple): vol_plasma=1888.1711539956691, a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, - expected_kappaa_ipb=1.68145080681586, - expected_kappaa=1.7187938085542791, - expected_ptrepv=0.07147653259174333, - expected_ptripv=0.06343753403847416, + expected_kappa_ipb=1.68145080681586, + expected_ptrepv=0.07148441348179191, + expected_ptripv=0.06344452856118785, expected_tauee=3.7242785823911264, expected_t_ion_confinement=3.7242785823911264, expected_t_energy_confinement=3.7242785823911264, @@ -3009,16 +2993,14 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): qstar=confinementtimeparam.qstar, rmajor=confinementtimeparam.rmajor, rminor=confinementtimeparam.rminor, - _te=confinementtimeparam.te, ten=confinementtimeparam.ten, tin=confinementtimeparam.tin, vol_plasma=confinementtimeparam.vol_plasma, - a_plasma_poloidal=confinementtimeparam.a_plasma_poloidal, zeff=confinementtimeparam.zeff, ) assert physics_variables.kappa_ipb == pytest.approx( - confinementtimeparam.expected_kappaa_ipb + confinementtimeparam.expected_kappa_ipb ) assert powerht == pytest.approx(confinementtimeparam.expected_powerht) From 8f1b73fc6df2196eeeebf02832b9f4570d94591b Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 30 Jan 2025 09:07:53 +0000 Subject: [PATCH 077/106] Refactor physics variable names for clarity: update 'a_plasma_poloidal' to 'None' and 'aion' to 'm_ions_total_amu' --- process/physics.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/process/physics.py b/process/physics.py index b9a4d55830..f2be78cca2 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2274,13 +2274,11 @@ def physics(self): physics_variables.pcoreradpv, physics_variables.rmajor, physics_variables.rminor, - physics_variables.te, physics_variables.ten, physics_variables.tin, physics_variables.q95, physics_variables.qstar, physics_variables.vol_plasma, - physics_variables.a_plasma_poloidal, physics_variables.zeff, ) @@ -5377,7 +5375,7 @@ def outplas(self): physics_variables.alpha_power_total, physics_variables.aspect, physics_variables.bt, - physics_variables.dnitot, + physics_variables.nd_ions_total, physics_variables.dene, physics_variables.dnla, physics_variables.eps, @@ -5392,13 +5390,11 @@ def outplas(self): physics_variables.pcoreradpv, physics_variables.rmajor, physics_variables.rminor, - physics_variables.te, physics_variables.ten, physics_variables.tin, physics_variables.q, physics_variables.qstar, physics_variables.vol_plasma, - physics_variables.xarea, physics_variables.zeff, ) @@ -6640,13 +6636,11 @@ def fhz(self, hhh): physics_variables.pcoreradpv, physics_variables.rmajor, physics_variables.rminor, - physics_variables.te, physics_variables.ten, physics_variables.tin, physics_variables.q, physics_variables.qstar, physics_variables.vol_plasma, - physics_variables.a_plasma_poloidal, physics_variables.zeff, ) @@ -7489,7 +7483,7 @@ def calculate_confinement_time( physics_variables.triang, physics_variables.kappa_ipb, eps, - physics_variables.aion, + physics_variables.m_ions_total_amu, ) # ========================================================================== From 4a1c22db3c583ecf783d6c66aa9c59474fe77b47 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 30 Jan 2025 09:17:52 +0000 Subject: [PATCH 078/106] :bug: Fix too many variables called to Neo Kaye scaling --- process/physics.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/process/physics.py b/process/physics.py index f2be78cca2..96acf47798 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5362,7 +5362,9 @@ def outplas(self): # for iisc in range(32, 48): # Put the ITPA value first - for iisc in [49, 34, 37, 38, 39, 46, 47, 48]: + for iisc in range(1, 49): + if iisc == 25: + continue ( ptrez, ptriz, @@ -7021,7 +7023,6 @@ def calculate_confinement_time( kappa95, dnla20, bt, - m_fuel_amu, powerht, ) From 4b4261075480dbe9c3e9312332186068de929c49 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 31 Jan 2025 11:03:52 +0000 Subject: [PATCH 079/106] Refactor ion confinement variable names for clarity: update 't_ion_confinement' to 't_ion_energy_confinement' across multiple files --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 ++++----- process/physics.py | 18 ++++----- process/stellarator.py | 4 +- source/fortran/physics_variables.f90 | 4 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++++------- tests/integration/data/scan_MFILE.DAT | 18 ++++----- tests/integration/ref_dicts.json | 6 +-- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 40 +++++++++---------- 19 files changed, 80 insertions(+), 80 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index f77b4b4075..07e9524d7c 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -490,7 +490,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1808E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2379E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2379E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2379E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2379E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.6225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2095E+21 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index b4ce8f4529..95c6955c31 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 974bb5e12d..415e2bde2f 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index ce285dffe3..04ef3f201b 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index d548f8744c..1ba1b36155 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index ca58ae0050..8cab7202fc 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -343,7 +343,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -1338,7 +1338,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -2333,7 +2333,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -3328,7 +3328,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -4323,7 +4323,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -5318,7 +5318,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -6313,7 +6313,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -7308,7 +7308,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -8303,7 +8303,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP diff --git a/process/physics.py b/process/physics.py index 96acf47798..30810eb5ad 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2252,7 +2252,7 @@ def physics(self): physics_variables.ptripv, physics_variables.t_electron_confinement, physics_variables.t_energy_confinement, - physics_variables.t_ion_confinement, + physics_variables.t_ion_energy_confinement, physics_variables.powerht, ) = self.calculate_confinement_time( physics_variables.m_fuel_amu, @@ -5211,8 +5211,8 @@ def outplas(self): po.ovarrf( self.outfile, "Ion energy confinement time (s)", - "(t_ion_confinement)", - physics_variables.t_ion_confinement, + "(t_ion_energy_confinement)", + physics_variables.t_ion_energy_confinement, "OP ", ) po.ovarrf( @@ -6734,7 +6734,7 @@ def calculate_confinement_time( - ptrepv (float): Electron transport power (MW/m3) - ptripv (float): Ion transport power (MW/m3) - t_electron_confinement (float): Electron energy confinement time (s) - - t_ion_confinement (float): Ion energy confinement time (s) + - t_ion_energy_confinement (float): Ion energy confinement time (s) - t_energy_confinement (float): Global energy confinement time (s) - powerht (float): Heating power (MW) assumed in calculation """ @@ -6755,7 +6755,7 @@ def calculate_confinement_time( / ((np.sqrt(tin)) * (bt**2)) ) str2 = 2.0e0 * (kappa**2) / (1.0e0 + (kappa**2)) - t_ion_confinement = 0.375e0 * rminor**2 / chii * str2 + t_ion_energy_confinement = 0.375e0 * rminor**2 / chii * str2 # ======================================================================== @@ -7496,7 +7496,7 @@ def calculate_confinement_time( # Ion energy confinement time # N.B. Overwrites earlier calculation above - t_ion_confinement = t_electron_confinement + t_ion_energy_confinement = t_electron_confinement # Calculation of the transport power loss terms # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV @@ -7507,7 +7507,7 @@ def calculate_confinement_time( * (constants.electron_charge / 1e3) * nd_ions_total * tin - / t_ion_confinement + / t_ion_energy_confinement ) ptrepv = ( (3 / 2) @@ -7522,14 +7522,14 @@ def calculate_confinement_time( # Global energy confinement time t_energy_confinement = (ratio + 1.0e0) / ( - ratio / t_ion_confinement + 1.0e0 / t_electron_confinement + ratio / t_ion_energy_confinement + 1.0e0 / t_electron_confinement ) return ( ptrepv, ptripv, t_electron_confinement, - t_ion_confinement, + t_ion_energy_confinement, t_energy_confinement, powerht, ) diff --git a/process/stellarator.py b/process/stellarator.py index 1a940d84e4..bb2ed84b17 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -216,7 +216,7 @@ def stigma(self): physics_variables.ptrepv, physics_variables.ptripv, physics_variables.t_electron_confinement, - physics_variables.t_ion_confinement, + physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, physics_variables.powerht, ) = self.physics.calculate_confinement_time( @@ -4455,7 +4455,7 @@ def stphys(self, output): physics_variables.ptrepv, physics_variables.ptripv, physics_variables.t_electron_confinement, - physics_variables.t_ion_confinement, + physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, physics_variables.powerht, ) = self.physics.calculate_confinement_time( diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index af304d3b71..c4ad6111a4 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -821,7 +821,7 @@ module physics_variables real(dp) :: t_energy_confinement !! global thermal energy confinement time (sec) - real(dp) :: t_ion_confinement + real(dp) :: t_ion_energy_confinement !! ion energy confinement time (sec) real(dp) :: t_alpha_confinement @@ -1098,7 +1098,7 @@ subroutine init_physics_variables t_electron_confinement = 0.0D0 tauee_in = 0.0D0 t_energy_confinement = 0.0D0 - t_ion_confinement = 0.0D0 + t_ion_energy_confinement = 0.0D0 t_alpha_confinement = 0.0D0 f_alpha_energy_confinement = 0.0D0 te = 12.9D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index 95eca34357..6f31f87bb1 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -485,7 +485,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 2acfceec74..da22757025 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index fe4dc5eb91..7ef29c68e9 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index a116f626c2..eb68c2317a 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -486,7 +486,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7416E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2037E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index e9efb4f0d2..fce22fdd75 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -482,7 +482,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7733E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index f40d368ad7..2037f92de7 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -488,7 +488,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1671E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1609E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1609E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1609E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1609E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5403E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0737E+21 OP @@ -1651,7 +1651,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1660E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1472E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1472E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1472E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1472E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5390E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0722E+21 OP @@ -2814,7 +2814,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1665E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1421E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1421E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1421E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1421E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5425E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0764E+21 OP @@ -3977,7 +3977,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1778E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1540E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1540E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1540E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1540E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5409E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0999E+21 OP @@ -5140,7 +5140,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1743E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1491E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1491E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1491E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1491E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5361E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0940E+21 OP @@ -6303,7 +6303,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1735E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1469E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1469E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1469E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1469E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5258E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0815E+21 OP @@ -7466,7 +7466,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1842E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1547E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1547E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1547E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1547E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5216E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1016E+21 OP @@ -8629,7 +8629,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1867E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1544E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1544E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1544E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1544E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5240E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1045E+21 OP @@ -9792,7 +9792,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1917E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1563E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1563E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1563E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1563E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5211E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1009E+21 OP @@ -10955,7 +10955,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1622E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1622E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1622E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1622E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1279E+21 OP @@ -12118,7 +12118,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1940E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1621E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1621E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1621E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1621E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5304E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1377E+21 OP @@ -13281,7 +13281,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1912E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1617E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1617E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1617E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1617E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5280E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1347E+21 OP @@ -14444,7 +14444,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1687E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1687E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1687E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1687E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5289E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1612E+21 OP @@ -15607,7 +15607,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1663E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1663E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1663E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1663E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5365E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1706E+21 OP @@ -16770,7 +16770,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1640E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.1640E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1640E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1640E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5446E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1807E+21 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 38401fa8dd..bcf395a666 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -343,7 +343,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -1338,7 +1338,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -2333,7 +2333,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -3328,7 +3328,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -4323,7 +4323,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -5318,7 +5318,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -6313,7 +6313,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -7308,7 +7308,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP @@ -8303,7 +8303,7 @@ Confinement_scaling_law_________________________________________________ (tauelaw)_____________________ "IPB98(y,2)" Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.6434E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 91c1ac0895..091e28543b 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7425,7 +7425,7 @@ "t_electron_confinement": 0.0, "tauee_in": 0.0, "t_energy_confinement": 0.0, - "t_ion_confinement": 0.0, + "t_ion_energy_confinement": 0.0, "taufall": 0.0, "f_alpha_energy_confinement_min": 5.0, "taumax": 10.0, @@ -10730,7 +10730,7 @@ "t_electron_confinement": "electron energy confinement time (sec)", "tauee_in": "Input electron energy confinement time (sec) (`i_confinement_time=48 only`)", "t_energy_confinement": "global thermal energy confinement time (sec)", - "t_ion_confinement": "ion energy confinement time (sec)", + "t_ion_energy_confinement": "ion energy confinement time (sec)", "taufall": "Lithium Fall Time (s)", "f_alpha_energy_confinement_min": "Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement\n times (`constraint equation 62`)", "taumax": "Maximum allowed energy confinement time (s)", @@ -19247,7 +19247,7 @@ "t_electron_confinement", "tauee_in", "t_energy_confinement", - "t_ion_confinement", + "t_ion_energy_confinement", "t_alpha_confinement", "te", "te0", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 8db97c12b9..980dbc8d76 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -482,7 +482,7 @@ L-H_threshold_power_(MW)________________________________________________ (plhthresh)___________________ 9.7733E+01 OP Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 - Ion_energy_confinement_time_(s)_________________________________________ (t_ion_confinement)_______________________ 3.2080E+00 + Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2080E+00 Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index ef75deb08a..e625a8cb57 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2251,7 +2251,7 @@ class ConfinementTimeParam(NamedTuple): expected_t_energy_confinement: Any = None - expected_t_ion_confinement: Any = None + expected_t_ion_energy_confinement: Any = None @pytest.mark.parametrize( @@ -2295,7 +2295,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.012572050692511346, expected_ptripv=0.011158066358576262, expected_tauee=21.17616899712392, - expected_t_ion_confinement=21.17616899712392, + expected_t_ion_energy_confinement=21.17616899712392, expected_t_energy_confinement=21.17616899712392, expected_powerht=290.18368660937881, ), @@ -2337,7 +2337,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08146744024696746, expected_ptripv=0.07230475970642361, expected_tauee=3.2679051814806361, - expected_t_ion_confinement=3.2679051814806361, + expected_t_ion_energy_confinement=3.2679051814806361, expected_t_energy_confinement=3.2679051814806366, expected_powerht=290.18368660937881, ), @@ -2379,7 +2379,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.0813367174682195, expected_ptripv=0.07218873937883169, expected_tauee=3.2731572946627923, - expected_t_ion_confinement=3.2731572946627923, + expected_t_ion_energy_confinement=3.2731572946627923, expected_t_energy_confinement=3.2731572946627923, expected_powerht=290.18368660937881, ), @@ -2421,7 +2421,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.12079262973297819, expected_ptripv=0.10720702701193681, expected_tauee=2.2040075681235445, - expected_t_ion_confinement=2.2040075681235445, + expected_t_ion_energy_confinement=2.2040075681235445, expected_t_energy_confinement=2.2040075681235445, expected_powerht=290.18368660937881, ), @@ -2463,7 +2463,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08131814759597392, expected_ptripv=0.07217225806867361, expected_tauee=3.2739047552801135, - expected_t_ion_confinement=3.2739047552801135, + expected_t_ion_energy_confinement=3.2739047552801135, expected_t_energy_confinement=3.2739047552801135, expected_powerht=290.18368660937881, ), @@ -2505,7 +2505,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08143510701705373, expected_ptripv=0.07227606300977574, expected_tauee=3.269202679985145, - expected_t_ion_confinement=3.269202679985145, + expected_t_ion_energy_confinement=3.269202679985145, expected_t_energy_confinement=3.2692026799851455, expected_powerht=290.18368660937881, ), @@ -2547,7 +2547,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.07271716311087716, expected_ptripv=0.06453863027150285, expected_tauee=3.6611421391548524, - expected_t_ion_confinement=3.6611421391548524, + expected_t_ion_energy_confinement=3.6611421391548524, expected_t_energy_confinement=3.6611421391548529, expected_powerht=290.18368660937881, ), @@ -2589,7 +2589,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.07853774801394538, expected_ptripv=0.06970457130869961, expected_tauee=3.3898077909969717, - expected_t_ion_confinement=3.3898077909969717, + expected_t_ion_energy_confinement=3.3898077909969717, expected_t_energy_confinement=3.3898077909969717, expected_powerht=290.18368660937881, ), @@ -2631,7 +2631,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.0840021318362596, expected_ptripv=0.07455437336481374, expected_tauee=3.169298972363837, - expected_t_ion_confinement=3.169298972363837, + expected_t_ion_energy_confinement=3.169298972363837, expected_t_energy_confinement=3.169298972363837, expected_powerht=290.18368660937881, ), @@ -2673,7 +2673,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08311313602000579, expected_ptripv=0.07376536331761714, expected_tauee=3.203198469625145, - expected_t_ion_confinement=3.203198469625145, + expected_t_ion_energy_confinement=3.203198469625145, expected_t_energy_confinement=3.203198469625145, expected_powerht=290.18368660937881, ), @@ -2715,7 +2715,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.07310605194452542, expected_ptripv=0.0648837805988509, expected_tauee=3.6416666339340682, - expected_t_ion_confinement=3.6416666339340682, + expected_t_ion_energy_confinement=3.6416666339340682, expected_t_energy_confinement=3.6416666339340686, expected_powerht=290.18368660937881, ), @@ -2757,7 +2757,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08143238415417252, expected_ptripv=0.07227364638853734, expected_tauee=3.2693119926464509, - expected_t_ion_confinement=3.2693119926464509, + expected_t_ion_energy_confinement=3.2693119926464509, expected_t_energy_confinement=3.2693119926464513, expected_powerht=290.18368660937881, ), @@ -2799,7 +2799,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08142885867164847, expected_ptripv=0.07227051741865713, expected_tauee=3.2694535383156871, - expected_t_ion_confinement=3.2694535383156871, + expected_t_ion_energy_confinement=3.2694535383156871, expected_t_energy_confinement=3.2694535383156871, expected_powerht=290.18368660937881, ), @@ -2841,7 +2841,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.08143011939694184, expected_ptripv=0.07227163634959588, expected_tauee=3.2694029195542003, - expected_t_ion_confinement=3.2694029195542003, + expected_t_ion_energy_confinement=3.2694029195542003, expected_t_energy_confinement=3.2694029195542003, expected_powerht=290.18368660937881, ), @@ -2883,7 +2883,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.07960828601702878, expected_ptripv=0.07065470540932789, expected_tauee=3.3442231132583498, - expected_t_ion_confinement=3.3442231132583498, + expected_t_ion_energy_confinement=3.3442231132583498, expected_t_energy_confinement=3.3442231132583502, expected_powerht=290.18368660937881, ), @@ -2925,7 +2925,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv=0.07148441348179191, expected_ptripv=0.06344452856118785, expected_tauee=3.7242785823911264, - expected_t_ion_confinement=3.7242785823911264, + expected_t_ion_energy_confinement=3.7242785823911264, expected_t_energy_confinement=3.7242785823911264, expected_powerht=290.18368660937881, ), @@ -2968,7 +2968,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): ptrepv, ptripv, t_electron_confinement, - t_ion_confinement, + t_ion_energy_confinement, t_energy_confinement, powerht, ) = physics.calculate_confinement_time( @@ -3015,6 +3015,6 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): confinementtimeparam.expected_t_energy_confinement ) - assert t_ion_confinement == pytest.approx( - confinementtimeparam.expected_t_ion_confinement + assert t_ion_energy_confinement == pytest.approx( + confinementtimeparam.expected_t_ion_energy_confinement ) From e22101cb228ebcc2e0ee50cd94b9c897c3e1def5 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 31 Jan 2025 11:04:57 +0000 Subject: [PATCH 080/106] Refactor electron confinement variable names for clarity: update 't_electron_confinement' to 't_electron_energy_confinement' across multiple files --- .../proc-pages/physics-models/error.txt | 2 +- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +- process/io/variable_metadata.py | 2 +- process/physics.py | 536 ++++++++++-------- process/stellarator.py | 4 +- source/fortran/physics_variables.f90 | 4 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +- tests/integration/data/scan_MFILE.DAT | 18 +- tests/integration/ref_dicts.json | 6 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 6 +- 21 files changed, 366 insertions(+), 282 deletions(-) diff --git a/documentation/proc-pages/physics-models/error.txt b/documentation/proc-pages/physics-models/error.txt index 5b74c07fb0..dd2b71e11b 100644 --- a/documentation/proc-pages/physics-models/error.txt +++ b/documentation/proc-pages/physics-models/error.txt @@ -967,7 +967,7 @@ J. Menard 2019, Phil. Trans. R. Soc. A 377:201704401\strut \begin{minipage}[t]{0.05\columnwidth}\centering\strut 48\strut \end{minipage} & \begin{minipage}[t]{0.03\columnwidth}\raggedright\strut -Use input \texttt{t_electron_confinement\_in}\strut +Use input \texttt{t_electron_energy_confinement\_in}\strut \end{minipage} & \begin{minipage}[t]{0.03\columnwidth}\raggedright\strut \strut \end{minipage}\tabularnewline diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 07e9524d7c..b8f87fd878 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -491,7 +491,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1808E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2379E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2379E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2379E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2379E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.6225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2095E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.8997E+02 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 95c6955c31..47dd44aa42 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 415e2bde2f..d4ff7a2296 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 04ef3f201b..60b6197aad 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 1ba1b36155..4c42839b78 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 8cab7202fc..1d600e6146 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -344,7 +344,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -1339,7 +1339,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -2334,7 +2334,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -3329,7 +3329,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -4324,7 +4324,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -5319,7 +5319,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -6314,7 +6314,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -7309,7 +7309,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -8304,7 +8304,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP diff --git a/process/io/variable_metadata.py b/process/io/variable_metadata.py index f7788dfe30..3093b52cd3 100644 --- a/process/io/variable_metadata.py +++ b/process/io/variable_metadata.py @@ -388,7 +388,7 @@ class VariableMetadata: description="Efficiency of electron cyclotron heating", units="", ), - "t_electron_confinement": VariableMetadata( + "t_electron_energy_confinement": VariableMetadata( latex=r"$\tau_E$", description="Electron energy confinement time (sec)", units="s", diff --git a/process/physics.py b/process/physics.py index 30810eb5ad..952c21bf32 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2250,7 +2250,7 @@ def physics(self): ( physics_variables.ptrepv, physics_variables.ptripv, - physics_variables.t_electron_confinement, + physics_variables.t_electron_energy_confinement, physics_variables.t_energy_confinement, physics_variables.t_ion_energy_confinement, physics_variables.powerht, @@ -5218,8 +5218,8 @@ def outplas(self): po.ovarrf( self.outfile, "Electron energy confinement time (s)", - "(t_electron_confinement)", - physics_variables.t_electron_confinement, + "(t_electron_energy_confinement)", + physics_variables.t_electron_energy_confinement, "OP ", ) po.ovarre( @@ -6733,7 +6733,7 @@ def calculate_confinement_time( :return: Tuple containing: - ptrepv (float): Electron transport power (MW/m3) - ptripv (float): Ion transport power (MW/m3) - - t_electron_confinement (float): Electron energy confinement time (s) + - t_electron_energy_confinement (float): Electron energy confinement time (s) - t_ion_energy_confinement (float): Ion energy confinement time (s) - t_energy_confinement (float): Global energy confinement time (s) - powerht (float): Heating power (MW) assumed in calculation @@ -6811,22 +6811,23 @@ def calculate_confinement_time( # ======================================================================== # User defined confinement time - if i_confinement_time == 0: # t_electron_confinement is an input - t_electron_confinement = hfact * physics_variables.tauee_in + if i_confinement_time == 0: # t_electron_energy_confinement is an input + t_electron_energy_confinement = hfact * physics_variables.tauee_in # ======================================================================== # Nec-Alcator(NA) OH scaling if i_confinement_time == 1: - t_electron_confinement = hfact * confinement.neo_alcator_confinement_time( - n20, rminor, rmajor, qstar + t_electron_energy_confinement = ( + hfact + * confinement.neo_alcator_confinement_time(n20, rminor, rmajor, qstar) ) # ======================================================================== # "Mirnov"-like scaling (H-mode) elif i_confinement_time == 2: # Mirnov scaling (H-mode) - t_electron_confinement = hfact * confinement.mirnov_confinement_time( + t_electron_energy_confinement = hfact * confinement.mirnov_confinement_time( rminor, kappa95, pcur ) @@ -6834,7 +6835,7 @@ def calculate_confinement_time( # Merezhkin-Mukhovatov (MM) OH/L-mode scaling elif i_confinement_time == 3: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.merezhkin_muhkovatov_confinement_time( rmajor, rminor, kappa95, qstar, dnla20, m_fuel_amu, ten @@ -6845,62 +6846,80 @@ def calculate_confinement_time( # Shimomura (S) optimized H-mode scaling elif i_confinement_time == 4: - t_electron_confinement = hfact * confinement.shimomura_confinement_time( - rmajor, rminor, bt, kappa95, m_fuel_amu + t_electron_energy_confinement = ( + hfact + * confinement.shimomura_confinement_time( + rmajor, rminor, bt, kappa95, m_fuel_amu + ) ) # ======================================================================== # Kaye-Goldston scaling (L-mode) elif i_confinement_time == 5: - t_electron_confinement = hfact * confinement.kaye_goldston_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + t_electron_energy_confinement = ( + hfact + * confinement.kaye_goldston_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + ) ) # ======================================================================== # ITER Power scaling - ITER 89-P (L-mode) elif i_confinement_time == 6: - t_electron_confinement = hfact * confinement.iter_89p_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + t_electron_energy_confinement = ( + hfact + * confinement.iter_89p_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + ) ) # ======================================================================== # ITER Offset linear scaling - ITER 89-O (L-mode) elif i_confinement_time == 7: - t_electron_confinement = hfact * confinement.iter_89_0_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + t_electron_energy_confinement = ( + hfact + * confinement.iter_89_0_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + ) ) # ======================================================================== # Rebut-Lallia offset linear scaling (L-mode) elif i_confinement_time == 8: - t_electron_confinement = hfact * confinement.rebut_lallia_confinement_time( - rminor, - rmajor, - kappa, - m_fuel_amu, - pcur, - zeff, - dnla20, - bt, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.rebut_lallia_confinement_time( + rminor, + rmajor, + kappa, + m_fuel_amu, + pcur, + zeff, + dnla20, + bt, + powerht, + ) ) # ======================================================================== # Goldston scaling (L-mode) elif i_confinement_time == 9: # Goldston scaling (L-mode) - t_electron_confinement = hfact * confinement.goldston_confinement_time( - pcur, rmajor, rminor, kappa95, m_fuel_amu, powerht + t_electron_energy_confinement = ( + hfact + * confinement.goldston_confinement_time( + pcur, rmajor, rminor, kappa95, m_fuel_amu, powerht + ) ) # ======================================================================== # T-10 scaling (L-mode) elif i_confinement_time == 10: - t_electron_confinement = hfact * confinement.t10_confinement_time( + t_electron_energy_confinement = hfact * confinement.t10_confinement_time( dnla20, rmajor, qstar, bt, rminor, kappa95, powerht, zeff, pcur ) @@ -6908,7 +6927,7 @@ def calculate_confinement_time( # JAERI / Odajima-Shimomura L-mode scaling elif i_confinement_time == 11: # JAERI scaling - t_electron_confinement = hfact * confinement.jaeri_confinement_time( + t_electron_energy_confinement = hfact * confinement.jaeri_confinement_time( kappa95, rminor, m_fuel_amu, @@ -6925,37 +6944,43 @@ def calculate_confinement_time( # Kaye "big" L-mode scaling (based only on big tokamak data) elif i_confinement_time == 12: - t_electron_confinement = hfact * confinement.kaye_big_confinement_time( - rmajor, - rminor, - bt, - kappa95, - pcur, - n20, - m_fuel_amu, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.kaye_big_confinement_time( + rmajor, + rminor, + bt, + kappa95, + pcur, + n20, + m_fuel_amu, + powerht, + ) ) # ======================================================================== # ITER H90-P H-mode scaling elif i_confinement_time == 13: - t_electron_confinement = hfact * confinement.iter_h90_p_confinement_time( - pcur, - rmajor, - rminor, - kappa, - dnla20, - bt, - m_fuel_amu, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.iter_h90_p_confinement_time( + pcur, + rmajor, + rminor, + kappa, + dnla20, + bt, + m_fuel_amu, + powerht, + ) ) # ======================================================================== # Minimum of ITER 89-P and ITER 89-O elif i_confinement_time == 14: - t_electron_confinement = min( + t_electron_energy_confinement = min( hfact * confinement.iter_89p_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht @@ -6970,36 +6995,42 @@ def calculate_confinement_time( # Riedel scaling (L-mode) elif i_confinement_time == 15: - t_electron_confinement = hfact * confinement.riedel_l_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.riedel_l_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, + ) ) # ======================================================================== # Christiansen et al scaling (L-mode) elif i_confinement_time == 16: - t_electron_confinement = hfact * confinement.christiansen_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.christiansen_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, + m_fuel_amu, + ) ) # ======================================================================== # Lackner-Gottardi scaling (L-mode) elif i_confinement_time == 17: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.lackner_gottardi_confinement_time( pcur, @@ -7016,36 +7047,42 @@ def calculate_confinement_time( # Neo-Kaye scaling (L-mode) elif i_confinement_time == 18: - t_electron_confinement = hfact * confinement.neo_kaye_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.neo_kaye_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, + ) ) # ======== ================================================================ # Riedel scaling (H-mode) elif i_confinement_time == 19: - t_electron_confinement = hfact * confinement.riedel_h_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - m_fuel_amu, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.riedel_h_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + m_fuel_amu, + powerht, + ) ) # ======================================================================== # Amended version of ITER H90-P law elif i_confinement_time == 20: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.iter_h90_p_amended_confinement_time( pcur, @@ -7061,19 +7098,22 @@ def calculate_confinement_time( # Sudo et al. scaling (stellarators/heliotron) elif i_confinement_time == 21: - t_electron_confinement = hfact * confinement.sudo_et_al_confinement_time( - rmajor, - rminor, - dnla20, - bt, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.sudo_et_al_confinement_time( + rmajor, + rminor, + dnla20, + bt, + powerht, + ) ) # ========================================================================== # Gyro-reduced Bohm scaling elif i_confinement_time == 22: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.gyro_reduced_bohm_confinement_time( bt, @@ -7088,7 +7128,7 @@ def calculate_confinement_time( # Lackner-Gottardi stellarator scaling elif i_confinement_time == 23: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.lackner_gottardi_stellarator_confinement_time( rmajor, @@ -7104,15 +7144,18 @@ def calculate_confinement_time( # ITER_93 ELM-free H-mode scaling elif i_confinement_time == 24: - t_electron_confinement = hfact * confinement.iter_93h_confinement_time( - pcur, - bt, - powerht, - m_fuel_amu, - rmajor, - dnla20, - aspect, - kappa, + t_electron_energy_confinement = ( + hfact + * confinement.iter_93h_confinement_time( + pcur, + bt, + powerht, + m_fuel_amu, + rmajor, + dnla20, + aspect, + kappa, + ) ) # ========================================================================== @@ -7123,22 +7166,25 @@ def calculate_confinement_time( # ELM-free: ITERH-97P elif i_confinement_time == 26: - t_electron_confinement = hfact * confinement.iter_h97p_confinement_time( - pcur, - bt, - powerht, - dnla19, - rmajor, - aspect, - kappa, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.iter_h97p_confinement_time( + pcur, + bt, + powerht, + dnla19, + rmajor, + aspect, + kappa, + m_fuel_amu, + ) ) # ========================================================================== # ELMy: ITERH-97P(y) elif i_confinement_time == 27: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.iter_h97p_elmy_confinement_time( pcur, @@ -7156,15 +7202,18 @@ def calculate_confinement_time( # ITER-96P (= ITER-97L) L-mode scaling elif i_confinement_time == 28: - t_electron_confinement = hfact * confinement.iter_96p_confinement_time( - pcur, - bt, - kappa95, - rmajor, - aspect, - dnla19, - m_fuel_amu, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.iter_96p_confinement_time( + pcur, + bt, + kappa95, + rmajor, + aspect, + dnla19, + m_fuel_amu, + powerht, + ) ) # ========================================================================== @@ -7172,15 +7221,18 @@ def calculate_confinement_time( # Valovic modified ELMy-H mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 29: - t_electron_confinement = hfact * confinement.valovic_elmy_confinement_time( - pcur, - bt, - dnla19, - m_fuel_amu, - rmajor, - rminor, - kappa, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.valovic_elmy_confinement_time( + pcur, + bt, + dnla19, + m_fuel_amu, + rmajor, + rminor, + kappa, + powerht, + ) ) # ========================================================================== @@ -7188,7 +7240,7 @@ def calculate_confinement_time( # Kaye PPPL Workshop April 1998 L-mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 30: - t_electron_confinement = hfact * confinement.kaye_confinement_time( + t_electron_energy_confinement = hfact * confinement.kaye_confinement_time( pcur, bt, kappa, @@ -7204,90 +7256,108 @@ def calculate_confinement_time( # ITERH-PB98P(y), ELMy H-mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 31: - t_electron_confinement = hfact * confinement.iter_pb98py_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.iter_pb98py_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, + ) ) # ========================================================================== # IPB98(y), ELMy H-mode scaling elif i_confinement_time == 32: - t_electron_confinement = hfact * confinement.iter_ipb98y_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - kappa, - aspect, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.iter_ipb98y_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa, + aspect, + m_fuel_amu, + ) ) # ========================================================================== # IPB98(y,1), ELMy H-mode scaling elif i_confinement_time == 33: - t_electron_confinement = hfact * confinement.iter_ipb98y1_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.iter_ipb98y1_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, + ) ) # ========================================================================== # IPB98(y,2), ELMy H-mode scaling elif i_confinement_time == 34: - t_electron_confinement = hfact * confinement.iter_ipb98y2_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.iter_ipb98y2_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, + ) ) # ========================================================================== # IPB98(y,3), ELMy H-mode scaling elif i_confinement_time == 35: - t_electron_confinement = hfact * confinement.iter_ipb98y3_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.iter_ipb98y3_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, + ) ) # ========================================================================== # IPB98(y,4), ELMy H-mode scaling elif i_confinement_time == 36: - t_electron_confinement = hfact * confinement.iter_ipb98y4_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.iter_ipb98y4_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, + ) ) # ========================================================================== @@ -7295,7 +7365,7 @@ def calculate_confinement_time( # ISS95 stellarator scaling elif i_confinement_time == 37: iotabar = q # dummy argument q is actual argument iotabar for stellarators - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.iss95_stellarator_confinement_time( rminor, @@ -7312,7 +7382,7 @@ def calculate_confinement_time( # ISS04 stellarator scaling elif i_confinement_time == 38: iotabar = q # dummy argument q is actual argument iotabar for stellarators - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.iss04_stellarator_confinement_time( rminor, @@ -7328,7 +7398,7 @@ def calculate_confinement_time( # DS03 beta-independent H-mode scaling elif i_confinement_time == 39: - t_electron_confinement = hfact * confinement.ds03_confinement_time( + t_electron_energy_confinement = hfact * confinement.ds03_confinement_time( pcur, bt, dnla19, @@ -7343,7 +7413,7 @@ def calculate_confinement_time( # Murari "Non-power law" scaling elif i_confinement_time == 40: - t_electron_confinement = hfact * confinement.murari_confinement_time( + t_electron_energy_confinement = hfact * confinement.murari_confinement_time( pcur, rmajor, physics_variables.kappa_ipb, @@ -7356,21 +7426,24 @@ def calculate_confinement_time( # Petty08, beta independent dimensionless scaling elif i_confinement_time == 41: - t_electron_confinement = hfact * confinement.petty08_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, + t_electron_energy_confinement = ( + hfact + * confinement.petty08_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + ) ) # ========================================================================== # Lang high density relevant confinement scaling elif i_confinement_time == 42: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.lang_high_density_confinement_time( plasma_current, @@ -7391,7 +7464,7 @@ def calculate_confinement_time( # Hubbard 2017 I-mode confinement time scaling - nominal elif i_confinement_time == 43: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.hubbard_nominal_confinement_time( pcur, @@ -7405,44 +7478,53 @@ def calculate_confinement_time( # Hubbard 2017 I-mode confinement time scaling - lower elif i_confinement_time == 44: - t_electron_confinement = hfact * confinement.hubbard_lower_confinement_time( - pcur, - bt, - dnla20, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.hubbard_lower_confinement_time( + pcur, + bt, + dnla20, + powerht, + ) ) # ========================================================================== # Hubbard 2017 I-mode confinement time scaling - upper elif i_confinement_time == 45: - t_electron_confinement = hfact * confinement.hubbard_upper_confinement_time( - pcur, - bt, - dnla20, - powerht, + t_electron_energy_confinement = ( + hfact + * confinement.hubbard_upper_confinement_time( + pcur, + bt, + dnla20, + powerht, + ) ) # ========================================================================== # Menard NSTX, ELMy H-mode scaling elif i_confinement_time == 46: - t_electron_confinement = hfact * confinement.menard_nstx_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, + t_electron_energy_confinement = ( + hfact + * confinement.menard_nstx_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, + ) ) # ========================================================================== # Menard NSTX-Petty08 Hybrid elif i_confinement_time == 47: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.menard_nstx_petty08_hybrid_confinement_time( pcur, @@ -7460,7 +7542,7 @@ def calculate_confinement_time( # NSTX gyro-Bohm (Buxton) elif i_confinement_time == 48: - t_electron_confinement = ( + t_electron_energy_confinement = ( hfact * confinement.nstx_gyro_bohm_confinement_time( pcur, @@ -7475,7 +7557,7 @@ def calculate_confinement_time( # ITPA20 H-mode scaling elif i_confinement_time == 49: - t_electron_confinement = hfact * confinement.itpa20_confinement_time( + t_electron_energy_confinement = hfact * confinement.itpa20_confinement_time( pcur, bt, dnla19, @@ -7496,7 +7578,7 @@ def calculate_confinement_time( # Ion energy confinement time # N.B. Overwrites earlier calculation above - t_ion_energy_confinement = t_electron_confinement + t_ion_energy_confinement = t_electron_energy_confinement # Calculation of the transport power loss terms # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV @@ -7514,7 +7596,7 @@ def calculate_confinement_time( * (constants.electron_charge / 1e3) * dene * ten - / t_electron_confinement + / t_electron_energy_confinement ) ratio = nd_ions_total / dene * tin / ten @@ -7522,13 +7604,13 @@ def calculate_confinement_time( # Global energy confinement time t_energy_confinement = (ratio + 1.0e0) / ( - ratio / t_ion_energy_confinement + 1.0e0 / t_electron_confinement + ratio / t_ion_energy_confinement + 1.0e0 / t_electron_energy_confinement ) return ( ptrepv, ptripv, - t_electron_confinement, + t_electron_energy_confinement, t_ion_energy_confinement, t_energy_confinement, powerht, diff --git a/process/stellarator.py b/process/stellarator.py index bb2ed84b17..23c228025e 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -215,7 +215,7 @@ def stigma(self): ( physics_variables.ptrepv, physics_variables.ptripv, - physics_variables.t_electron_confinement, + physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, physics_variables.powerht, @@ -4454,7 +4454,7 @@ def stphys(self, output): ( physics_variables.ptrepv, physics_variables.ptripv, - physics_variables.t_electron_confinement, + physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, physics_variables.powerht, diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index c4ad6111a4..df8fcd487a 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -812,7 +812,7 @@ module physics_variables real(dp) :: f_sync_reflect !! synchrotron wall reflectivity factor - real(dp) :: t_electron_confinement + real(dp) :: t_electron_energy_confinement !! electron energy confinement time (sec) real(dp) :: tauee_in @@ -1095,7 +1095,7 @@ subroutine init_physics_variables a_plasma_surface_outboard = 0.0D0 i_single_null = 1 f_sync_reflect = 0.6D0 - t_electron_confinement = 0.0D0 + t_electron_energy_confinement = 0.0D0 tauee_in = 0.0D0 t_energy_confinement = 0.0D0 t_ion_energy_confinement = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index 6f31f87bb1..2293925d9d 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -486,7 +486,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index da22757025..f9a48b5732 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 7ef29c68e9..2ae11ba98c 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index eb68c2317a..cb205cffc9 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -487,7 +487,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1886E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2037E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2037E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2037E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index fce22fdd75..401bd04b51 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -483,7 +483,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2080E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 2037f92de7..6c95d11280 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -489,7 +489,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1671E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1609E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1609E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1609E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1609E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5403E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0737E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9249E+02 OP @@ -1652,7 +1652,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1660E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1472E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1472E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1472E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1472E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5390E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0722E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9493E+02 OP @@ -2815,7 +2815,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1665E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1421E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1421E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1421E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1421E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5425E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0764E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP @@ -3978,7 +3978,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1778E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1540E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1540E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1540E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1540E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5409E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0999E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP @@ -5141,7 +5141,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1743E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1491E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1491E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1491E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1491E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5361E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0940E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9667E+02 OP @@ -6304,7 +6304,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1735E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1469E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1469E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1469E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1469E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5258E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0815E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9600E+02 OP @@ -7467,7 +7467,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1842E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1547E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1547E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1547E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1547E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5216E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1016E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9644E+02 OP @@ -8630,7 +8630,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1867E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1544E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1544E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1544E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1544E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5240E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1045E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9674E+02 OP @@ -9793,7 +9793,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1917E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1563E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1563E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1563E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1563E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5211E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1009E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9602E+02 OP @@ -10956,7 +10956,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1622E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1622E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1622E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1622E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1279E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9743E+02 OP @@ -12119,7 +12119,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1940E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1621E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1621E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1621E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1621E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5304E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1377E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9837E+02 OP @@ -13282,7 +13282,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1912E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1617E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1617E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1617E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1617E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5280E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1347E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9823E+02 OP @@ -14445,7 +14445,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1687E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1687E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1687E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1687E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5289E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1612E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9938E+02 OP @@ -15608,7 +15608,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1663E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1663E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1663E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1663E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5365E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1706E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0064E+02 OP @@ -16771,7 +16771,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.2000E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.1640E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.1640E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.1640E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1640E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5446E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1807E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0193E+02 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index bcf395a666..18c7ff276d 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -344,7 +344,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -1339,7 +1339,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -2334,7 +2334,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -3329,7 +3329,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -4324,7 +4324,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -5319,7 +5319,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -6314,7 +6314,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -7309,7 +7309,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP @@ -8304,7 +8304,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1000E+00 Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.6434E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.6434E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.6434E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 091e28543b..baa1bbdc10 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7422,7 +7422,7 @@ "tau2": 0.0, "taubeam": 0.0, "taucq": 30.0, - "t_electron_confinement": 0.0, + "t_electron_energy_confinement": 0.0, "tauee_in": 0.0, "t_energy_confinement": 0.0, "t_ion_energy_confinement": 0.0, @@ -10727,7 +10727,7 @@ "tau2": "", "taubeam": "neutral beam e-decay lengths to plasma centre", "taucq": "allowable TF quench time (s)", - "t_electron_confinement": "electron energy confinement time (sec)", + "t_electron_energy_confinement": "electron energy confinement time (sec)", "tauee_in": "Input electron energy confinement time (sec) (`i_confinement_time=48 only`)", "t_energy_confinement": "global thermal energy confinement time (sec)", "t_ion_energy_confinement": "ion energy confinement time (sec)", @@ -19244,7 +19244,7 @@ "a_plasma_surface_outboard", "i_single_null", "f_sync_reflect", - "t_electron_confinement", + "t_electron_energy_confinement", "tauee_in", "t_energy_confinement", "t_ion_energy_confinement", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 980dbc8d76..e9dca5d931 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -483,7 +483,7 @@ Confinement_H_factor____________________________________________________ (hfact)_______________________ 1.1976E+00 ITV Global_thermal_energy_confinement_time_(s)______________________________ (t_energy_confinement)______________________ 3.2080E+00 Ion_energy_confinement_time_(s)_________________________________________ (t_ion_energy_confinement)_______________________ 3.2080E+00 - Electron_energy_confinement_time_(s)____________________________________ (t_electron_confinement)_______________________ 3.2080E+00 + Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index e625a8cb57..e901019f6f 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2967,7 +2967,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): ( ptrepv, ptripv, - t_electron_confinement, + t_electron_energy_confinement, t_ion_energy_confinement, t_energy_confinement, powerht, @@ -3009,7 +3009,9 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): assert ptripv == pytest.approx(confinementtimeparam.expected_ptripv) - assert t_electron_confinement == pytest.approx(confinementtimeparam.expected_tauee) + assert t_electron_energy_confinement == pytest.approx( + confinementtimeparam.expected_tauee + ) assert t_energy_confinement == pytest.approx( confinementtimeparam.expected_t_energy_confinement From 1f6b6ee500c99bc71029097328c7976271a66247 Mon Sep 17 00:00:00 2001 From: Jack Date: Fri, 31 Jan 2025 14:26:41 +0000 Subject: [PATCH 081/106] =?UTF-8?q?=E2=9E=96=20rearranged=20hfact=20multip?= =?UTF-8?q?lication=20calc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 679 +++++++++++++++++++-------------------------- 1 file changed, 282 insertions(+), 397 deletions(-) diff --git a/process/physics.py b/process/physics.py index 952c21bf32..9ad591d10f 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6812,22 +6812,21 @@ def calculate_confinement_time( # User defined confinement time if i_confinement_time == 0: # t_electron_energy_confinement is an input - t_electron_energy_confinement = hfact * physics_variables.tauee_in + t_electron_confinement = physics_variables.tauee_in # ======================================================================== # Nec-Alcator(NA) OH scaling if i_confinement_time == 1: - t_electron_energy_confinement = ( - hfact - * confinement.neo_alcator_confinement_time(n20, rminor, rmajor, qstar) + t_electron_confinement = confinement.neo_alcator_confinement_time( + n20, rminor, rmajor, qstar ) # ======================================================================== # "Mirnov"-like scaling (H-mode) elif i_confinement_time == 2: # Mirnov scaling (H-mode) - t_electron_energy_confinement = hfact * confinement.mirnov_confinement_time( + t_electron_confinement = confinement.mirnov_confinement_time( rminor, kappa95, pcur ) @@ -6835,91 +6834,70 @@ def calculate_confinement_time( # Merezhkin-Mukhovatov (MM) OH/L-mode scaling elif i_confinement_time == 3: - t_electron_energy_confinement = ( - hfact - * confinement.merezhkin_muhkovatov_confinement_time( - rmajor, rminor, kappa95, qstar, dnla20, m_fuel_amu, ten - ) + t_electron_confinement = confinement.merezhkin_muhkovatov_confinement_time( + rmajor, rminor, kappa95, qstar, dnla20, m_fuel_amu, ten ) # ======================================================================== # Shimomura (S) optimized H-mode scaling elif i_confinement_time == 4: - t_electron_energy_confinement = ( - hfact - * confinement.shimomura_confinement_time( - rmajor, rminor, bt, kappa95, m_fuel_amu - ) + t_electron_confinement = confinement.shimomura_confinement_time( + rmajor, rminor, bt, kappa95, m_fuel_amu ) # ======================================================================== # Kaye-Goldston scaling (L-mode) elif i_confinement_time == 5: - t_electron_energy_confinement = ( - hfact - * confinement.kaye_goldston_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht - ) + t_electron_confinement = confinement.kaye_goldston_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ) # ======================================================================== # ITER Power scaling - ITER 89-P (L-mode) elif i_confinement_time == 6: - t_electron_energy_confinement = ( - hfact - * confinement.iter_89p_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht - ) + t_electron_confinement = confinement.iter_89p_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ) # ======================================================================== # ITER Offset linear scaling - ITER 89-O (L-mode) elif i_confinement_time == 7: - t_electron_energy_confinement = ( - hfact - * confinement.iter_89_0_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht - ) + t_electron_confinement = confinement.iter_89_0_confinement_time( + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ) # ======================================================================== # Rebut-Lallia offset linear scaling (L-mode) elif i_confinement_time == 8: - t_electron_energy_confinement = ( - hfact - * confinement.rebut_lallia_confinement_time( - rminor, - rmajor, - kappa, - m_fuel_amu, - pcur, - zeff, - dnla20, - bt, - powerht, - ) + t_electron_confinement = confinement.rebut_lallia_confinement_time( + rminor, + rmajor, + kappa, + m_fuel_amu, + pcur, + zeff, + dnla20, + bt, + powerht, ) # ======================================================================== # Goldston scaling (L-mode) elif i_confinement_time == 9: # Goldston scaling (L-mode) - t_electron_energy_confinement = ( - hfact - * confinement.goldston_confinement_time( - pcur, rmajor, rminor, kappa95, m_fuel_amu, powerht - ) + t_electron_confinement = confinement.goldston_confinement_time( + pcur, rmajor, rminor, kappa95, m_fuel_amu, powerht ) # ======================================================================== # T-10 scaling (L-mode) elif i_confinement_time == 10: - t_electron_energy_confinement = hfact * confinement.t10_confinement_time( + t_electron_confinement = confinement.t10_confinement_time( dnla20, rmajor, qstar, bt, rminor, kappa95, powerht, zeff, pcur ) @@ -6927,7 +6905,7 @@ def calculate_confinement_time( # JAERI / Odajima-Shimomura L-mode scaling elif i_confinement_time == 11: # JAERI scaling - t_electron_energy_confinement = hfact * confinement.jaeri_confinement_time( + t_electron_confinement = confinement.jaeri_confinement_time( kappa95, rminor, m_fuel_amu, @@ -6944,49 +6922,41 @@ def calculate_confinement_time( # Kaye "big" L-mode scaling (based only on big tokamak data) elif i_confinement_time == 12: - t_electron_energy_confinement = ( - hfact - * confinement.kaye_big_confinement_time( - rmajor, - rminor, - bt, - kappa95, - pcur, - n20, - m_fuel_amu, - powerht, - ) + t_electron_confinement = confinement.kaye_big_confinement_time( + rmajor, + rminor, + bt, + kappa95, + pcur, + n20, + m_fuel_amu, + powerht, ) # ======================================================================== # ITER H90-P H-mode scaling elif i_confinement_time == 13: - t_electron_energy_confinement = ( - hfact - * confinement.iter_h90_p_confinement_time( - pcur, - rmajor, - rminor, - kappa, - dnla20, - bt, - m_fuel_amu, - powerht, - ) + t_electron_confinement = confinement.iter_h90_p_confinement_time( + pcur, + rmajor, + rminor, + kappa, + dnla20, + bt, + m_fuel_amu, + powerht, ) # ======================================================================== # Minimum of ITER 89-P and ITER 89-O elif i_confinement_time == 14: - t_electron_energy_confinement = min( - hfact - * confinement.iter_89p_confinement_time( + t_electron_confinement = min( + confinement.iter_89p_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ), - hfact - * confinement.iter_89_0_confinement_time( + confinement.iter_89_0_confinement_time( pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht ), ) @@ -6995,142 +6965,117 @@ def calculate_confinement_time( # Riedel scaling (L-mode) elif i_confinement_time == 15: - t_electron_energy_confinement = ( - hfact - * confinement.riedel_l_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, - ) + t_electron_confinement = confinement.riedel_l_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, ) # ======================================================================== # Christiansen et al scaling (L-mode) elif i_confinement_time == 16: - t_electron_energy_confinement = ( - hfact - * confinement.christiansen_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, - m_fuel_amu, - ) + t_electron_confinement = confinement.christiansen_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, + m_fuel_amu, ) # ======================================================================== # Lackner-Gottardi scaling (L-mode) elif i_confinement_time == 17: - t_electron_energy_confinement = ( - hfact - * confinement.lackner_gottardi_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, - ) + t_electron_confinement = confinement.lackner_gottardi_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, ) # ======================================================================== # Neo-Kaye scaling (L-mode) elif i_confinement_time == 18: - t_electron_energy_confinement = ( - hfact - * confinement.neo_kaye_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - powerht, - ) + t_electron_confinement = confinement.neo_kaye_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + powerht, ) # ======== ================================================================ # Riedel scaling (H-mode) elif i_confinement_time == 19: - t_electron_energy_confinement = ( - hfact - * confinement.riedel_h_confinement_time( - pcur, - rmajor, - rminor, - kappa95, - dnla20, - bt, - m_fuel_amu, - powerht, - ) + t_electron_confinement = confinement.riedel_h_confinement_time( + pcur, + rmajor, + rminor, + kappa95, + dnla20, + bt, + m_fuel_amu, + powerht, ) # ======================================================================== # Amended version of ITER H90-P law elif i_confinement_time == 20: - t_electron_energy_confinement = ( - hfact - * confinement.iter_h90_p_amended_confinement_time( - pcur, - bt, - m_fuel_amu, - rmajor, - powerht, - kappa, - ) + t_electron_confinement = confinement.iter_h90_p_amended_confinement_time( + pcur, + bt, + m_fuel_amu, + rmajor, + powerht, + kappa, ) # ========================================================================== # Sudo et al. scaling (stellarators/heliotron) elif i_confinement_time == 21: - t_electron_energy_confinement = ( - hfact - * confinement.sudo_et_al_confinement_time( - rmajor, - rminor, - dnla20, - bt, - powerht, - ) + t_electron_confinement = confinement.sudo_et_al_confinement_time( + rmajor, + rminor, + dnla20, + bt, + powerht, ) # ========================================================================== # Gyro-reduced Bohm scaling elif i_confinement_time == 22: - t_electron_energy_confinement = ( - hfact - * confinement.gyro_reduced_bohm_confinement_time( - bt, - dnla20, - powerht, - rminor, - rmajor, - ) + t_electron_confinement = confinement.gyro_reduced_bohm_confinement_time( + bt, + dnla20, + powerht, + rminor, + rmajor, ) # ========================================================================== # Lackner-Gottardi stellarator scaling elif i_confinement_time == 23: - t_electron_energy_confinement = ( - hfact - * confinement.lackner_gottardi_stellarator_confinement_time( + t_electron_confinement = ( + confinement.lackner_gottardi_stellarator_confinement_time( rmajor, rminor, dnla20, @@ -7144,18 +7089,15 @@ def calculate_confinement_time( # ITER_93 ELM-free H-mode scaling elif i_confinement_time == 24: - t_electron_energy_confinement = ( - hfact - * confinement.iter_93h_confinement_time( - pcur, - bt, - powerht, - m_fuel_amu, - rmajor, - dnla20, - aspect, - kappa, - ) + t_electron_confinement = confinement.iter_93h_confinement_time( + pcur, + bt, + powerht, + m_fuel_amu, + rmajor, + dnla20, + aspect, + kappa, ) # ========================================================================== @@ -7166,54 +7108,45 @@ def calculate_confinement_time( # ELM-free: ITERH-97P elif i_confinement_time == 26: - t_electron_energy_confinement = ( - hfact - * confinement.iter_h97p_confinement_time( - pcur, - bt, - powerht, - dnla19, - rmajor, - aspect, - kappa, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_h97p_confinement_time( + pcur, + bt, + powerht, + dnla19, + rmajor, + aspect, + kappa, + m_fuel_amu, ) # ========================================================================== # ELMy: ITERH-97P(y) elif i_confinement_time == 27: - t_electron_energy_confinement = ( - hfact - * confinement.iter_h97p_elmy_confinement_time( - pcur, - bt, - powerht, - dnla19, - rmajor, - aspect, - kappa, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_h97p_elmy_confinement_time( + pcur, + bt, + powerht, + dnla19, + rmajor, + aspect, + kappa, + m_fuel_amu, ) # ========================================================================== # ITER-96P (= ITER-97L) L-mode scaling elif i_confinement_time == 28: - t_electron_energy_confinement = ( - hfact - * confinement.iter_96p_confinement_time( - pcur, - bt, - kappa95, - rmajor, - aspect, - dnla19, - m_fuel_amu, - powerht, - ) + t_electron_confinement = confinement.iter_96p_confinement_time( + pcur, + bt, + kappa95, + rmajor, + aspect, + dnla19, + m_fuel_amu, + powerht, ) # ========================================================================== @@ -7221,18 +7154,15 @@ def calculate_confinement_time( # Valovic modified ELMy-H mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 29: - t_electron_energy_confinement = ( - hfact - * confinement.valovic_elmy_confinement_time( - pcur, - bt, - dnla19, - m_fuel_amu, - rmajor, - rminor, - kappa, - powerht, - ) + t_electron_confinement = confinement.valovic_elmy_confinement_time( + pcur, + bt, + dnla19, + m_fuel_amu, + rmajor, + rminor, + kappa, + powerht, ) # ========================================================================== @@ -7240,7 +7170,7 @@ def calculate_confinement_time( # Kaye PPPL Workshop April 1998 L-mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 30: - t_electron_energy_confinement = hfact * confinement.kaye_confinement_time( + t_electron_confinement = confinement.kaye_confinement_time( pcur, bt, kappa, @@ -7256,108 +7186,90 @@ def calculate_confinement_time( # ITERH-PB98P(y), ELMy H-mode scaling # WARNING: No reference found for this scaling. This may not be its real name elif i_confinement_time == 31: - t_electron_energy_confinement = ( - hfact - * confinement.iter_pb98py_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_pb98py_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, ) # ========================================================================== # IPB98(y), ELMy H-mode scaling elif i_confinement_time == 32: - t_electron_energy_confinement = ( - hfact - * confinement.iter_ipb98y_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - kappa, - aspect, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_ipb98y_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + kappa, + aspect, + m_fuel_amu, ) # ========================================================================== # IPB98(y,1), ELMy H-mode scaling elif i_confinement_time == 33: - t_electron_energy_confinement = ( - hfact - * confinement.iter_ipb98y1_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_ipb98y1_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, ) # ========================================================================== # IPB98(y,2), ELMy H-mode scaling elif i_confinement_time == 34: - t_electron_energy_confinement = ( - hfact - * confinement.iter_ipb98y2_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_ipb98y2_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, ) # ========================================================================== # IPB98(y,3), ELMy H-mode scaling elif i_confinement_time == 35: - t_electron_energy_confinement = ( - hfact - * confinement.iter_ipb98y3_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_ipb98y3_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, ) # ========================================================================== # IPB98(y,4), ELMy H-mode scaling elif i_confinement_time == 36: - t_electron_energy_confinement = ( - hfact - * confinement.iter_ipb98y4_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, - ) + t_electron_confinement = confinement.iter_ipb98y4_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, ) # ========================================================================== @@ -7365,16 +7277,13 @@ def calculate_confinement_time( # ISS95 stellarator scaling elif i_confinement_time == 37: iotabar = q # dummy argument q is actual argument iotabar for stellarators - t_electron_energy_confinement = ( - hfact - * confinement.iss95_stellarator_confinement_time( - rminor, - rmajor, - dnla19, - bt, - powerht, - iotabar, - ) + t_electron_confinement = confinement.iss95_stellarator_confinement_time( + rminor, + rmajor, + dnla19, + bt, + powerht, + iotabar, ) # ========================================================================== @@ -7382,23 +7291,20 @@ def calculate_confinement_time( # ISS04 stellarator scaling elif i_confinement_time == 38: iotabar = q # dummy argument q is actual argument iotabar for stellarators - t_electron_energy_confinement = ( - hfact - * confinement.iss04_stellarator_confinement_time( - rminor, - rmajor, - dnla19, - bt, - powerht, - iotabar, - ) + t_electron_confinement = confinement.iss04_stellarator_confinement_time( + rminor, + rmajor, + dnla19, + bt, + powerht, + iotabar, ) # ========================================================================== # DS03 beta-independent H-mode scaling elif i_confinement_time == 39: - t_electron_energy_confinement = hfact * confinement.ds03_confinement_time( + t_electron_confinement = confinement.ds03_confinement_time( pcur, bt, dnla19, @@ -7413,7 +7319,7 @@ def calculate_confinement_time( # Murari "Non-power law" scaling elif i_confinement_time == 40: - t_electron_energy_confinement = hfact * confinement.murari_confinement_time( + t_electron_confinement = confinement.murari_confinement_time( pcur, rmajor, physics_variables.kappa_ipb, @@ -7426,107 +7332,88 @@ def calculate_confinement_time( # Petty08, beta independent dimensionless scaling elif i_confinement_time == 41: - t_electron_energy_confinement = ( - hfact - * confinement.petty08_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - ) + t_electron_confinement = confinement.petty08_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, ) # ========================================================================== # Lang high density relevant confinement scaling elif i_confinement_time == 42: - t_electron_energy_confinement = ( - hfact - * confinement.lang_high_density_confinement_time( - plasma_current, - bt, - dnla, - powerht, - rmajor, - rminor, - q, - qstar, - aspect, - m_fuel_amu, - physics_variables.kappa_ipb, - ) + t_electron_confinement = confinement.lang_high_density_confinement_time( + plasma_current, + bt, + dnla, + powerht, + rmajor, + rminor, + q, + qstar, + aspect, + m_fuel_amu, + physics_variables.kappa_ipb, ) # ========================================================================== # Hubbard 2017 I-mode confinement time scaling - nominal elif i_confinement_time == 43: - t_electron_energy_confinement = ( - hfact - * confinement.hubbard_nominal_confinement_time( - pcur, - bt, - dnla20, - powerht, - ) + t_electron_confinement = confinement.hubbard_nominal_confinement_time( + pcur, + bt, + dnla20, + powerht, ) # ========================================================================== # Hubbard 2017 I-mode confinement time scaling - lower elif i_confinement_time == 44: - t_electron_energy_confinement = ( - hfact - * confinement.hubbard_lower_confinement_time( - pcur, - bt, - dnla20, - powerht, - ) + t_electron_confinement = confinement.hubbard_lower_confinement_time( + pcur, + bt, + dnla20, + powerht, ) # ========================================================================== # Hubbard 2017 I-mode confinement time scaling - upper elif i_confinement_time == 45: - t_electron_energy_confinement = ( - hfact - * confinement.hubbard_upper_confinement_time( - pcur, - bt, - dnla20, - powerht, - ) + t_electron_confinement = confinement.hubbard_upper_confinement_time( + pcur, + bt, + dnla20, + powerht, ) # ========================================================================== # Menard NSTX, ELMy H-mode scaling elif i_confinement_time == 46: - t_electron_energy_confinement = ( - hfact - * confinement.menard_nstx_confinement_time( - pcur, - bt, - dnla19, - powerht, - rmajor, - physics_variables.kappa_ipb, - aspect, - m_fuel_amu, - ) + t_electron_confinement = confinement.menard_nstx_confinement_time( + pcur, + bt, + dnla19, + powerht, + rmajor, + physics_variables.kappa_ipb, + aspect, + m_fuel_amu, ) # ========================================================================== # Menard NSTX-Petty08 Hybrid elif i_confinement_time == 47: - t_electron_energy_confinement = ( - hfact - * confinement.menard_nstx_petty08_hybrid_confinement_time( + t_electron_confinement = ( + confinement.menard_nstx_petty08_hybrid_confinement_time( pcur, bt, dnla19, @@ -7542,22 +7429,19 @@ def calculate_confinement_time( # NSTX gyro-Bohm (Buxton) elif i_confinement_time == 48: - t_electron_energy_confinement = ( - hfact - * confinement.nstx_gyro_bohm_confinement_time( - pcur, - bt, - powerht, - rmajor, - dnla20, - ) + t_electron_confinement = confinement.nstx_gyro_bohm_confinement_time( + pcur, + bt, + powerht, + rmajor, + dnla20, ) # ========================================================================== # ITPA20 H-mode scaling elif i_confinement_time == 49: - t_electron_energy_confinement = hfact * confinement.itpa20_confinement_time( + t_electron_confinement = confinement.itpa20_confinement_time( pcur, bt, dnla19, @@ -7577,6 +7461,7 @@ def calculate_confinement_time( # Ion energy confinement time # N.B. Overwrites earlier calculation above + t_electron_energy_confinement = hfact * t_electron_confinement t_ion_energy_confinement = t_electron_energy_confinement From ea9bda89511db242b64f92e3b0aa6bd074bea494 Mon Sep 17 00:00:00 2001 From: Jack Date: Fri, 31 Jan 2025 15:03:27 +0000 Subject: [PATCH 082/106] =?UTF-8?q?=E2=9E=95=20Added=20ITPA20-IL=20confine?= =?UTF-8?q?ment=20scaling=20for=20papercut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/confinement_time.py | 48 +++++++++++++++++++++++++++++++++++++ process/physics.py | 14 +++++++++++ 2 files changed, 62 insertions(+) diff --git a/process/confinement_time.py b/process/confinement_time.py index f0e588285d..016fcae38e 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -2067,5 +2067,53 @@ def itpa20_confinement_time( ) +def itpa20_il_confinement_time( + pcur: float, + bt: float, + powerht: float, + dnla19: float, + aion: float, + rmajor: float, + triang: float, + kappa_ipb: float, +) -> float: + """ + Calculate the ITPA20-IL Issue #1852 confinement time + + Parameters: + pcur (float): Plasma current [MA] + bt (float): Toroidal magnetic field [T] + powerht (float): Thermal power lost due to transport through the LCFS [MW] + dnla19 (float): Central line-averaged electron density in units of 10**19 m**-3 + aion (float): Average mass of all ions (amu) + rmajor (float): Plasma major radius [m] + triang (float): Triangularity + kappa_ipb (float): IPB specific plasma separatrix elongation + + Returns: + float: ITPA20-IL confinement time [s] + + Notes: + - Mass term is the effective mass of the plasma, so we assume the total ion mass here + - This scaling uses the IPB defintiion of elongation, see reference for more information. + + References: + - T. Luda et al., “Validation of a full-plasma integrated modeling approach on ASDEX Upgrade,” + Nuclear Fusion, vol. 61, no. 12, pp. 126048-126048, Nov. 2021, doi: https://doi.org/10.1088/1741-4326/ac3293. + """ + + return ( + 0.067 + * pcur**1.29 + * bt**-0.13 + * powerht ** (-0.644) + * dnla19**0.15 + * aion**0.3 + * rmajor**1.19 + * (1 + triang) ** 0.56 + * kappa_ipb**0.67 + ) + + if __name__ == "__main__": pass diff --git a/process/physics.py b/process/physics.py index 9ad591d10f..7e0bd16e18 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7455,6 +7455,20 @@ def calculate_confinement_time( # ========================================================================== + elif i_confinement_time == 50: + t_electron_confinement = confinement.itpa20_il_confinement_time( + pcur, + bt, + powerht, + dnla19, + physics_variables.m_ions_total_amu, + rmajor, + physics_variables.triang, + physics_variables.kappa_ipb, + ) + + # ========================================================================== + else: error_handling.idiags[0] = i_confinement_time error_handling.report_error(81) From 84505a22634cd91bda51ac585ff074e243736b4c Mon Sep 17 00:00:00 2001 From: Jack Date: Fri, 31 Jan 2025 15:10:55 +0000 Subject: [PATCH 083/106] =?UTF-8?q?=E2=9E=95=20Added=20comment=20for=20ITP?= =?UTF-8?q?A20-IL=20scaling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 79 +++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/process/physics.py b/process/physics.py index 7e0bd16e18..0ae13ab424 100644 --- a/process/physics.py +++ b/process/physics.py @@ -504,9 +504,9 @@ def calculate_current_coefficient_hastie( eprime = er * lamp1 / (1.0 + lamda / 3.0) # Delta primed in AEA FUS 172 - deltap = (0.5 * kap1 * eps * 0.5 * li) + (beta0 / (0.5 * kap1 * eps)) * lamp1**2 / ( - 1.0 + nu - ) + deltap = (0.5 * kap1 * eps * 0.5 * li) + ( + beta0 / (0.5 * kap1 * eps) + ) * lamp1**2 / (1.0 + nu) # Delta/R0 in AEA FUS 172 deltar = beta0 / 6.0 * (1.0 + 5.0 * lamda / 6.0 + 0.25 * lamda**2) + ( @@ -2412,14 +2412,10 @@ def physics(self): else: # Single null configuration - including SoL radaition physics_variables.pflux_fw_rad_mw = ( - (1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv) - * physics_variables.p_plasma_rad_mw - / build_variables.fwarea - + (1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv) - * physics_variables.rad_fraction_sol - * physics_variables.pdivt - / build_variables.fwarea - ) + 1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv + ) * physics_variables.p_plasma_rad_mw / build_variables.fwarea + ( + 1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv + ) * physics_variables.rad_fraction_sol * physics_variables.pdivt / build_variables.fwarea constraint_variables.pflux_fw_rad_max_mw = ( physics_variables.pflux_fw_rad_mw * constraint_variables.f_fw_rad_max @@ -5993,37 +5989,41 @@ def bootstrap_fraction_wilson( # Square root of current profile index term saj = np.sqrt(aj) - a = np.array([ - 1.41 * (1.0 - 0.28 * saj) * (1.0 + 0.12 / z), - 0.36 * (1.0 - 0.59 * saj) * (1.0 + 0.8 / z), - -0.27 * (1.0 - 0.47 * saj) * (1.0 + 3.0 / z), - 0.0053 * (1.0 + 5.0 / z), - -0.93 * (1.0 - 0.34 * saj) * (1.0 + 0.15 / z), - -0.26 * (1.0 - 0.57 * saj) * (1.0 - 0.27 * z), - 0.064 * (1.0 - 0.6 * aj + 0.15 * aj * aj) * (1.0 + 7.6 / z), - -0.0011 * (1.0 + 9.0 / z), - -0.33 * (1.0 - aj + 0.33 * aj * aj), - -0.26 * (1.0 - 0.87 / saj - 0.16 * aj), - -0.14 * (1.0 - 1.14 / saj - 0.45 * saj), - -0.0069, - ]) + a = np.array( + [ + 1.41 * (1.0 - 0.28 * saj) * (1.0 + 0.12 / z), + 0.36 * (1.0 - 0.59 * saj) * (1.0 + 0.8 / z), + -0.27 * (1.0 - 0.47 * saj) * (1.0 + 3.0 / z), + 0.0053 * (1.0 + 5.0 / z), + -0.93 * (1.0 - 0.34 * saj) * (1.0 + 0.15 / z), + -0.26 * (1.0 - 0.57 * saj) * (1.0 - 0.27 * z), + 0.064 * (1.0 - 0.6 * aj + 0.15 * aj * aj) * (1.0 + 7.6 / z), + -0.0011 * (1.0 + 9.0 / z), + -0.33 * (1.0 - aj + 0.33 * aj * aj), + -0.26 * (1.0 - 0.87 / saj - 0.16 * aj), + -0.14 * (1.0 - 1.14 / saj - 0.45 * saj), + -0.0069, + ] + ) seps1 = np.sqrt(eps1) - b = np.array([ - 1.0, - alfpnw, - alftnw, - alfpnw * alftnw, - seps1, - alfpnw * seps1, - alftnw * seps1, - alfpnw * alftnw * seps1, - eps1, - alfpnw * eps1, - alftnw * eps1, - alfpnw * alftnw * eps1, - ]) + b = np.array( + [ + 1.0, + alfpnw, + alftnw, + alfpnw * alftnw, + seps1, + alfpnw * seps1, + alftnw * seps1, + alfpnw * alftnw * seps1, + eps1, + alfpnw * eps1, + alftnw * eps1, + alfpnw * alftnw * eps1, + ] + ) # Empirical bootstrap current fraction return seps1 * betpth * (a * b).sum() @@ -7455,6 +7455,7 @@ def calculate_confinement_time( # ========================================================================== + # ITPA20-IL confinement time scaling elif i_confinement_time == 50: t_electron_confinement = confinement.itpa20_il_confinement_time( pcur, From c3ae2b2417aba63de366c06c28b1e9fc261ae45c Mon Sep 17 00:00:00 2001 From: Jack Date: Fri, 31 Jan 2025 15:20:01 +0000 Subject: [PATCH 084/106] =?UTF-8?q?=F0=9F=93=9D=20Updated=20docs=20for=20n?= =?UTF-8?q?ew=20scaling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proc-pages/physics-models/plasma_confinement.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 782d173859..355820690e 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -620,6 +620,16 @@ $$ ------------------------- +### 50: ITPA20-IL H-mode scaling + +Is selected with `i_confinement_time = 50` [^23] + +$$ +\tau_{\text{E}} = 0.067 I^{1.29} B_{\text{T}}^{-0.13} P^{-0.644} \overline{n}_{19}^{0.15} M^{0.3} R^{1.19} \left(1+\delta \right)^{0.56} \kappa_{\text{IPB}}^{0.67} +$$ + +------------------------- + ### Effect of radiation on energy confinement @@ -713,4 +723,5 @@ The value of `f_alpha_energy_confinement_min` can be set to the desired minimum [^19]: A. E. Hubbard et al., “Physics and performance of the I-mode regime over an expanded operating space on Alcator C-Mod,” Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. [^20]: J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440-20170440, Feb. 2019, doi: https://doi.org/10.1098/rsta.2017.0440. [^21]: P. F. Buxton, L. Connor, A. E. Costley, Mikhail Gryaznevich, and S. McNamara, “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” vol. 61, no. 3, pp. 035006-035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. -[^22‌]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. \ No newline at end of file +[^22‌]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. +[^23]: T. Luda et al., “Validation of a full-plasma integrated modeling approach on ASDEX Upgrade,” Nuclear Fusion, vol. 61, no. 12, pp. 126048–126048, Nov. 2021, doi: https://doi.org/10.1088/1741-4326/ac3293. \ No newline at end of file From 3c8b1861deb71ff2df30d156952f47fecaf28f7f Mon Sep 17 00:00:00 2001 From: Jack Date: Fri, 31 Jan 2025 15:45:01 +0000 Subject: [PATCH 085/106] =?UTF-8?q?=F0=9F=93=9D=20updated=20tauscl=20and?= =?UTF-8?q?=20ipnlaws?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/fortran/physics_variables.f90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index df8fcd487a..7453fd5e9f 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -14,7 +14,7 @@ module physics_variables public - integer, parameter :: ipnlaws = 50 + integer, parameter :: ipnlaws = 51 !! number of energy confinement time scaling laws real(dp) :: m_beam_amu @@ -469,7 +469,8 @@ module physics_variables 'NSTX (Spherical) (H)', & 'NSTX-Petty08 Hybrid (H)', & 'NSTX gyro-Bohm Buxton(H)', & - 'ITPA20 (H)' /) + 'ITPA20 (H)', & + 'ITPA20-IL (H)' /) integer :: i_plasma_wall_gap !! Switch for plasma-first wall clearances at the mid-plane: From 3c8f0a71c4f78edd5d7e8ad4fc2cd9a0e7c2a0fb Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 13:48:41 +0000 Subject: [PATCH 086/106] =?UTF-8?q?=E2=9E=95=20Added=20unit=20tests=20for?= =?UTF-8?q?=20various=20confinement=20time=20calculations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 21 +- process/physics.py | 78 +++---- source/fortran/physics_variables.f90 | 2 +- tests/unit/test_confinement_time.py | 193 ++++++++++++++++++ 4 files changed, 243 insertions(+), 51 deletions(-) create mode 100644 tests/unit/test_confinement_time.py diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 355820690e..c59cda72a5 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -701,27 +701,26 @@ The value of `f_alpha_energy_confinement_min` can be set to the desired minimum The scaling value `ftaulimit` can be varied also. -[^1]: N. A. Uckan, International Atomic Energy Agency, Vienna (Austria)and ITER Physics Group,"ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. -[^2]: T.C.Hender et.al., 'Physics Assesment of the European Reactor Study', AEA FUS 172, 1992 +[^1]: N. A. Uckan, International Atomic Energy Agency, Vienna (Austria) and ITER Physics Group, "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. +[^2]: T.C. Hender et al., 'Physics Assessment of the European Reactor Study', AEA FUS 172, 1992. [^3]: J. P. Christiansen et al., “Global energy confinement H-mode database for ITER,” Nuclear Fusion, vol. 32, no. 2, pp. 291-338, Feb. 1992, doi: https://doi.org/10.1088/0029-5515/32/2/i11. [^4]: S. Sudo et al., “Scalings of energy confinement and density limit in stellarator/heliotron devices,” Nuclear Fusion, vol. 30, no. 1, pp. 11-21, Jan. 1990, doi: https://doi.org/10.1088/0029-5515/30/1/002. -[^5]: Goldston, R. J., H. Biglari, and G. W. Hammett. "E x B/B 2 vs. µ B/B as the Cause of Transport in Tokamaks." Bull. Am. Phys. Soc 34 (1989): 1964. +[^5]: Goldston, R. J., H. Biglari, and G. W. Hammett. "E x B/B² vs. µ B/B as the Cause of Transport in Tokamaks." Bull. Am. Phys. Soc 34 (1989): 1964. [^6]: K. Lackner and N. A. O. Gottardi, “Tokamak confinement in relation to plateau scaling,” Nuclear Fusion, vol. 30, no. 4, pp. 767-770, Apr. 1990, doi: https://doi.org/10.1088/0029-5515/30/4/018. [^7]: K. Thomsen et al., “ITER H mode confinement database update,” vol. 34, no. 1, pp. 131-167, Jan. 1994, doi: https://doi.org/10.1088/0029-5515/34/1/i10. [^8]: I. C. Database and M. W. G. (presented Cordey), “Energy confinement scaling and the extrapolation to ITER,” Plasma Physics and Controlled Fusion, vol. 39, no. 12B, pp. B115-B127, Dec. 1997, doi: https://doi.org/10.1088/0741-3335/39/12b/009. -[^9]: International Atomic Energy Agency, Vienna (Austria), "Technical basis for the ITER final design report, cost review and safety analysis (FDR)",no.16. Dec. 1998. +[^9]: International Atomic Energy Agency, Vienna (Austria), "Technical basis for the ITER final design report, cost review and safety analysis (FDR)", no. 16. Dec. 1998. [^10]: S. B. Kaye et al., “ITER L mode confinement database,” Nuclear Fusion, vol. 37, no. 9, pp. 1303-1328, Sep. 1997, doi: https://doi.org/10.1088/0029-5515/37/9/i10. [^11]: I. P. E. G. on C. Transport, I. P. E. G. on C. Database, and I. P. B. Editors, “Chapter 2: Plasma confinement and transport,” Nuclear Fusion, vol. 39, no. 12, pp. 2175-2249, Dec. 1999, doi: https://doi.org/10.1088/0029-5515/39/12/302. -[^12]: None Otto Kardaun, N. K. Thomsen, and None Alexander Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. +[^12]: O. Kardaun, N. K. Thomsen, and A. Chudnovskiy, “Corrections to a sequence of papers in Nuclear Fusion,” Nuclear Fusion, vol. 48, no. 9, pp. 099801-099801, Aug. 2008, doi: https://doi.org/10.1088/0029-5515/48/9/099801. [^13]: U. Stroth et al., “Energy confinement scaling from the international stellarator database,” vol. 36, no. 8, pp. 1063-1077, Aug. 1996, doi: https://doi.org/10.1088/0029-5515/36/8/i11. [^14]: H. Yamada et al., “Characterization of energy confinement in net-current free plasmas using the extended International Stellarator Database,” vol. 45, no. 12, pp. 1684-1693, Nov. 2005, doi: https://doi.org/10.1088/0029-5515/45/12/024. [^15]: T. C. Luce, C. C. Petty, and J. G. Cordey, “Application of dimensionless parameter scaling techniques to the design and interpretation of magnetic fusion experiments,” Plasma Physics and Controlled Fusion, vol. 50, no. 4, p. 043001, Mar. 2008, doi: https://doi.org/10.1088/0741-3335/50/4/043001. -[^16]: A. Murari, E. Peluso, Michela Gelfusa, I. Lupelli, and P. Gaudio, “A new approach to the formulation and validation of scaling expressions for plasma confinement in tokamaks,” Nuclear Fusion, vol. 55, no. 7, pp. 073009-073009, Jun. 2015, doi: https://doi.org/10.1088/0029-5515/55/7/073009. +[^16]: A. Murari, E. Peluso, M. Gelfusa, I. Lupelli, and P. Gaudio, “A new approach to the formulation and validation of scaling expressions for plasma confinement in tokamaks,” Nuclear Fusion, vol. 55, no. 7, pp. 073009-073009, Jun. 2015, doi: https://doi.org/10.1088/0029-5515/55/7/073009. [^17]: C. C. Petty, “Sizing up plasmas using dimensionless parameters,” Physics of Plasmas, vol. 15, no. 8, Aug. 2008, doi: https://doi.org/10.1063/1.2961043. -[^18]: P. T. Lang, C. Angioni, R. M. M. Dermott, R. Fischer, and H. Zohm, “Pellet Induced High Density Phases during ELM Suppression in ASDEX Upgrade,” -24th IAEA Conference Fusion Energy, 2012, Oct. 2012, Available: https://www.researchgate.net/publication/274456104_Pellet_Induced_High_Density_Phases_during_ELM_Suppression_in_ASDEX_Upgrade +[^18]: P. T. Lang, C. Angioni, R. M. M. Dermott, R. Fischer, and H. Zohm, “Pellet Induced High Density Phases during ELM Suppression in ASDEX Upgrade,” 24th IAEA Conference Fusion Energy, 2012, Oct. 2012, Available: https://www.researchgate.net/publication/274456104_Pellet_Induced_High_Density_Phases_during_ELM_Suppression_in_ASDEX_Upgrade. [^19]: A. E. Hubbard et al., “Physics and performance of the I-mode regime over an expanded operating space on Alcator C-Mod,” Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. [^20]: J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440-20170440, Feb. 2019, doi: https://doi.org/10.1098/rsta.2017.0440. -[^21]: P. F. Buxton, L. Connor, A. E. Costley, Mikhail Gryaznevich, and S. McNamara, “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” vol. 61, no. 3, pp. 035006-035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. -[^22‌]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. -[^23]: T. Luda et al., “Validation of a full-plasma integrated modeling approach on ASDEX Upgrade,” Nuclear Fusion, vol. 61, no. 12, pp. 126048–126048, Nov. 2021, doi: https://doi.org/10.1088/1741-4326/ac3293. \ No newline at end of file +[^21]: P. F. Buxton, L. Connor, A. E. Costley, M. Gryaznevich, and S. McNamara, “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” vol. 61, no. 3, pp. 035006-035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. +[^22]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. +[^23]: T. Luda et al., “Validation of a full-plasma integrated modeling approach on ASDEX Upgrade,” Nuclear Fusion, vol. 61, no. 12, pp. 126048-126048, Nov. 2021, doi: https://doi.org/10.1088/1741-4326/ac3293. \ No newline at end of file diff --git a/process/physics.py b/process/physics.py index 0ae13ab424..ac3cd4c3f2 100644 --- a/process/physics.py +++ b/process/physics.py @@ -504,9 +504,9 @@ def calculate_current_coefficient_hastie( eprime = er * lamp1 / (1.0 + lamda / 3.0) # Delta primed in AEA FUS 172 - deltap = (0.5 * kap1 * eps * 0.5 * li) + ( - beta0 / (0.5 * kap1 * eps) - ) * lamp1**2 / (1.0 + nu) + deltap = (0.5 * kap1 * eps * 0.5 * li) + (beta0 / (0.5 * kap1 * eps)) * lamp1**2 / ( + 1.0 + nu + ) # Delta/R0 in AEA FUS 172 deltar = beta0 / 6.0 * (1.0 + 5.0 * lamda / 6.0 + 0.25 * lamda**2) + ( @@ -2412,10 +2412,14 @@ def physics(self): else: # Single null configuration - including SoL radaition physics_variables.pflux_fw_rad_mw = ( - 1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv - ) * physics_variables.p_plasma_rad_mw / build_variables.fwarea + ( - 1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv - ) * physics_variables.rad_fraction_sol * physics_variables.pdivt / build_variables.fwarea + (1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv) + * physics_variables.p_plasma_rad_mw + / build_variables.fwarea + + (1.0e0 - fwbs_variables.fhcd - fwbs_variables.fdiv) + * physics_variables.rad_fraction_sol + * physics_variables.pdivt + / build_variables.fwarea + ) constraint_variables.pflux_fw_rad_max_mw = ( physics_variables.pflux_fw_rad_mw * constraint_variables.f_fw_rad_max @@ -5989,41 +5993,37 @@ def bootstrap_fraction_wilson( # Square root of current profile index term saj = np.sqrt(aj) - a = np.array( - [ - 1.41 * (1.0 - 0.28 * saj) * (1.0 + 0.12 / z), - 0.36 * (1.0 - 0.59 * saj) * (1.0 + 0.8 / z), - -0.27 * (1.0 - 0.47 * saj) * (1.0 + 3.0 / z), - 0.0053 * (1.0 + 5.0 / z), - -0.93 * (1.0 - 0.34 * saj) * (1.0 + 0.15 / z), - -0.26 * (1.0 - 0.57 * saj) * (1.0 - 0.27 * z), - 0.064 * (1.0 - 0.6 * aj + 0.15 * aj * aj) * (1.0 + 7.6 / z), - -0.0011 * (1.0 + 9.0 / z), - -0.33 * (1.0 - aj + 0.33 * aj * aj), - -0.26 * (1.0 - 0.87 / saj - 0.16 * aj), - -0.14 * (1.0 - 1.14 / saj - 0.45 * saj), - -0.0069, - ] - ) + a = np.array([ + 1.41 * (1.0 - 0.28 * saj) * (1.0 + 0.12 / z), + 0.36 * (1.0 - 0.59 * saj) * (1.0 + 0.8 / z), + -0.27 * (1.0 - 0.47 * saj) * (1.0 + 3.0 / z), + 0.0053 * (1.0 + 5.0 / z), + -0.93 * (1.0 - 0.34 * saj) * (1.0 + 0.15 / z), + -0.26 * (1.0 - 0.57 * saj) * (1.0 - 0.27 * z), + 0.064 * (1.0 - 0.6 * aj + 0.15 * aj * aj) * (1.0 + 7.6 / z), + -0.0011 * (1.0 + 9.0 / z), + -0.33 * (1.0 - aj + 0.33 * aj * aj), + -0.26 * (1.0 - 0.87 / saj - 0.16 * aj), + -0.14 * (1.0 - 1.14 / saj - 0.45 * saj), + -0.0069, + ]) seps1 = np.sqrt(eps1) - b = np.array( - [ - 1.0, - alfpnw, - alftnw, - alfpnw * alftnw, - seps1, - alfpnw * seps1, - alftnw * seps1, - alfpnw * alftnw * seps1, - eps1, - alfpnw * eps1, - alftnw * eps1, - alfpnw * alftnw * eps1, - ] - ) + b = np.array([ + 1.0, + alfpnw, + alftnw, + alfpnw * alftnw, + seps1, + alfpnw * seps1, + alftnw * seps1, + alfpnw * alftnw * seps1, + eps1, + alfpnw * eps1, + alftnw * eps1, + alfpnw * alftnw * eps1, + ]) # Empirical bootstrap current fraction return seps1 * betpth * (a * b).sum() diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 7453fd5e9f..4e074fc0b6 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -470,7 +470,7 @@ module physics_variables 'NSTX-Petty08 Hybrid (H)', & 'NSTX gyro-Bohm Buxton(H)', & 'ITPA20 (H)', & - 'ITPA20-IL (H)' /) + 'ITPA20-IL (H)' /) integer :: i_plasma_wall_gap !! Switch for plasma-first wall clearances at the mid-plane: diff --git a/tests/unit/test_confinement_time.py b/tests/unit/test_confinement_time.py new file mode 100644 index 0000000000..825d033c6a --- /dev/null +++ b/tests/unit/test_confinement_time.py @@ -0,0 +1,193 @@ +import pytest + +from process import confinement_time as conf + + +@pytest.mark.parametrize( + "func, args, expected", + [ + (conf.neo_alcator_confinement_time, (1.0, 1.0, 1.0, 1.0), 0.07), + (conf.mirnov_confinement_time, (1.0, 1.0, 1.0), 0.2), + ( + conf.merezhkin_muhkovatov_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.011067971810589328, + ), + (conf.shimomura_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0), 0.045), + ( + conf.kaye_goldston_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.04490731195102493, + ), + ( + conf.iter_89p_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.048, + ), + ( + conf.iter_89_0_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.104, + ), + ( + conf.rebut_lallia_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.18434273785533292, + ), + ( + conf.goldston_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.03021037349432586, + ), + ( + conf.t10_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.07307692307692307, + ), + ( + conf.jaeri_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.13187536611732242, + ), + ( + conf.kaye_big_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.105, + ), + ( + conf.iter_h90_p_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.064, + ), + (conf.riedel_l_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), 0.044), + ( + conf.christiansen_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.24, + ), + ( + conf.lackner_gottardi_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.13120344887319335, + ), + (conf.neo_kaye_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), 0.063), + (conf.riedel_h_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), 0.1), + ( + conf.iter_h90_p_amended_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.082, + ), + (conf.sudo_et_al_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0), 0.17), + (conf.gyro_reduced_bohm_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0), 0.25), + ( + conf.lackner_gottardi_stellarator_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.17, + ), + ( + conf.iter_93h_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.036, + ), + ( + conf.iter_h97p_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.031, + ), + ( + conf.iter_h97p_elmy_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.029, + ), + ( + conf.iter_96p_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.023, + ), + ( + conf.valovic_elmy_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.067, + ), + (conf.kaye_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), 0.021), + ( + conf.iter_pb98py_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.0615, + ), + ( + conf.iter_ipb98y_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.0365, + ), + ( + conf.iter_ipb98y1_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.0503, + ), + ( + conf.iter_ipb98y2_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.0562, + ), + ( + conf.iter_ipb98y3_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.0564, + ), + ( + conf.iter_ipb98y4_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.0587, + ), + ( + conf.iss95_stellarator_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.079, + ), + ( + conf.iss04_stellarator_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.134, + ), + (conf.ds03_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), 0.028), + ( + conf.murari_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.03669697337069055, + ), + (conf.petty08_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), 0.052), + ( + conf.lang_high_density_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 1.0970434976417428e-103, + ), + (conf.hubbard_nominal_confinement_time, (1.0, 1.0, 1.0, 1.0), 0.014), + (conf.hubbard_lower_confinement_time, (1.0, 1.0, 1.0, 1.0), 0.014), + (conf.hubbard_upper_confinement_time, (1.0, 1.0, 1.0, 1.0), 0.014), + ( + conf.menard_nstx_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.095, + ), + ( + conf.menard_nstx_petty08_hybrid_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.095, + ), + (conf.nstx_gyro_bohm_confinement_time, (1.0, 1.0, 1.0, 1.0, 1.0), 0.21), + ( + conf.itpa20_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.06802157257083392, + ), + ( + conf.itpa20_il_confinement_time, + (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), + 0.09877603755850378, + ), + ], +) +def test_confinement_time(func, args, expected): + result = func(*args) + assert result == pytest.approx(expected) From 529af124738c6b33955a68aef607cfd74d42448c Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 14:05:56 +0000 Subject: [PATCH 087/106] =?UTF-8?q?=E2=9E=96=20Removed=20inverse=20quadrat?= =?UTF-8?q?ure=20switch=20from=20multiple=20MFILE=20and=20IN=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/data/csv_output_large_tokamak_MFILE.DAT | 3 --- examples/data/large_tokamak_1_MFILE.DAT | 3 --- examples/data/large_tokamak_2_MFILE.DAT | 3 --- examples/data/large_tokamak_3_MFILE.DAT | 2 -- examples/data/large_tokamak_4_MFILE.DAT | 2 -- examples/data/large_tokamak_IN.DAT | 2 -- examples/data/scan_MFILE.DAT | 1 - examples/data/scan_example_file_IN.DAT | 2 -- tests/integration/data/large_tokamak_1_MFILE.DAT | 3 --- tests/integration/data/large_tokamak_2_MFILE.DAT | 3 --- tests/integration/data/large_tokamak_3_MFILE.DAT | 3 --- tests/integration/data/large_tokamak_4_MFILE.DAT | 3 --- tests/integration/data/large_tokamak_IN.DAT | 3 --- tests/integration/data/large_tokamak_MFILE.DAT | 3 --- tests/integration/data/large_tokamak_once_through.IN.DAT | 1 - tests/integration/data/ref_IN.DAT | 1 - tests/integration/data/scan_2D_MFILE.DAT | 2 -- tests/integration/data/scan_MFILE.DAT | 1 - tests/integration/data/uncertainties_nonopt_ref_IN.DAT | 1 - tests/integration/data/uncertainties_ref_IN.DAT | 1 - tests/unit/data/large_tokamak_IN.DAT | 2 -- tests/unit/data/large_tokamak_MFILE.DAT | 2 -- 22 files changed, 47 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index b8f87fd878..4034f29ac5 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -1582,9 +1582,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 47dd44aa42..f1f39bc2dd 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -1576,9 +1576,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index d4ff7a2296..3afb440b8e 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -1576,9 +1576,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 60b6197aad..77a614a664 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -1576,8 +1576,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 * Switch for pedestal profiles ipedestal = 1 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 4c42839b78..2f7a5a3e1d 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -1576,8 +1576,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 * Switch for pedestal profiles ipedestal = 1 diff --git a/examples/data/large_tokamak_IN.DAT b/examples/data/large_tokamak_IN.DAT index d36160b1ae..1b3611a106 100644 --- a/examples/data/large_tokamak_IN.DAT +++ b/examples/data/large_tokamak_IN.DAT @@ -386,8 +386,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 * Switch for pedestal profiles ipedestal = 1 diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 1d600e6146..007250a57a 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -9244,7 +9244,6 @@ i_plasma_current = 4 * Switch for plasma current scaling to use; i_density_limit = 7 * Switch for density limit to enforce (constraint equation 5); i_beta_fast_alpha = 1 * Switch for fast alpha pressure calculation; ifispact = 0 * Switch for neutronics calculations; -iinvqd = 1 * Switch for inverse quadrature in l-mode scaling laws 5 and 9; ipedestal = 1 * Switch for pedestal profiles; fgwped = 0.85 * fraction of Greenwald density to set as pedestal-top density neped = 0.678e20 * Electron density of pedestal (/m3) (ipedestal=1) INITIAL VALUE diff --git a/examples/data/scan_example_file_IN.DAT b/examples/data/scan_example_file_IN.DAT index 87d2e5d66a..b4e6c1db93 100644 --- a/examples/data/scan_example_file_IN.DAT +++ b/examples/data/scan_example_file_IN.DAT @@ -386,8 +386,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index 2293925d9d..ef518bacc6 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -1575,9 +1575,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index f9a48b5732..597fac86da 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -1576,9 +1576,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 2ae11ba98c..b9cc38fa01 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -1576,9 +1576,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index cb205cffc9..0014ceb718 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -1576,9 +1576,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/large_tokamak_IN.DAT b/tests/integration/data/large_tokamak_IN.DAT index d36160b1ae..8e576e9c59 100644 --- a/tests/integration/data/large_tokamak_IN.DAT +++ b/tests/integration/data/large_tokamak_IN.DAT @@ -386,9 +386,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 401bd04b51..3fec754127 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -1577,9 +1577,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 - * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/large_tokamak_once_through.IN.DAT b/tests/integration/data/large_tokamak_once_through.IN.DAT index 2e86f0d17e..2d4b25998a 100644 --- a/tests/integration/data/large_tokamak_once_through.IN.DAT +++ b/tests/integration/data/large_tokamak_once_through.IN.DAT @@ -329,7 +329,6 @@ i_beta_component = 1 * switch for beta limit scaling (`constraint equation 24` i_plasma_current = 4 * switch for plasma current scaling to use i_density_limit = 7 * switch for density limit to enforce (`constraint equation 5`) i_beta_fast_alpha = 1 * switch for fast alpha pressure calculation -iinvqd = 1 * switch for inverse quadrature in L-mode scaling laws 5 and 9; ipedestal = 1 * switch for pedestal profiles; neped = 0.5e20 * electron density of pedestal [m-3] (`ipedestal==1) nesep = 0.2e20 * electron density at separatrix [m-3] (`ipedestal==1) diff --git a/tests/integration/data/ref_IN.DAT b/tests/integration/data/ref_IN.DAT index 5a69d1f916..1a1917c03e 100644 --- a/tests/integration/data/ref_IN.DAT +++ b/tests/integration/data/ref_IN.DAT @@ -265,7 +265,6 @@ i_plasma_current = 4 * Switch for plasma current scaling to use; i_density_limit = 7 * Switch for density limit to enforce (constraint equation 5); i_beta_fast_alpha = 1 * Switch for fast alpha pressure calculation; ifispact = 0 * Switch for neutronics calculations; -iinvqd = 1 * Switch for inverse quadrature in l-mode scaling laws 5 and 9; ipedestal = 1 * Switch for pedestal profiles; fgwped = 0.85 * fraction of Greenwald density to set as pedestal-top density neped = 0.678e20 * Electron density of pedestal (/m3) (ipedestal=1) INITIAL VALUE diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 6c95d11280..4dc0ce6319 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -17862,8 +17862,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 18c7ff276d..b96e74ab55 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -9244,7 +9244,6 @@ i_plasma_current = 4 * Switch for plasma current scaling to use; i_density_limit = 7 * Switch for density limit to enforce (constraint equation 5); i_beta_fast_alpha = 1 * Switch for fast alpha pressure calculation; ifispact = 0 * Switch for neutronics calculations; -iinvqd = 1 * Switch for inverse quadrature in l-mode scaling laws 5 and 9; ipedestal = 1 * Switch for pedestal profiles; fgwped = 0.85 * fraction of Greenwald density to set as pedestal-top density neped = 0.678e20 * Electron density of pedestal (/m3) (ipedestal=1) INITIAL VALUE diff --git a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT index ad395bf618..fc185173cd 100644 --- a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT +++ b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT @@ -265,7 +265,6 @@ i_plasma_current = 4 * Switch for plasma current scaling to use; i_density_limit = 7 * Switch for density limit to enforce (constraint equation 5); i_beta_fast_alpha = 1 * Switch for fast alpha pressure calculation; ifispact = 0 * Switch for neutronics calculations; -iinvqd = 1 * Switch for inverse quadrature in l-mode scaling laws 5 and 9; ipedestal = 1 * Switch for pedestal profiles; fgwped = 0.85 * fraction of Greenwald density to set as pedestal-top density neped = 0.678e20 * Electron density of pedestal (/m3) (ipedestal=1) INITIAL VALUE diff --git a/tests/integration/data/uncertainties_ref_IN.DAT b/tests/integration/data/uncertainties_ref_IN.DAT index d683feb0f7..6d5c33eba8 100644 --- a/tests/integration/data/uncertainties_ref_IN.DAT +++ b/tests/integration/data/uncertainties_ref_IN.DAT @@ -265,7 +265,6 @@ i_plasma_current = 4 * Switch for plasma current scaling to use; i_density_limit = 7 * Switch for density limit to enforce (constraint equation 5); i_beta_fast_alpha = 1 * Switch for fast alpha pressure calculation; ifispact = 0 * Switch for neutronics calculations; -iinvqd = 1 * Switch for inverse quadrature in l-mode scaling laws 5 and 9; ipedestal = 1 * Switch for pedestal profiles; fgwped = 0.85 * fraction of Greenwald density to set as pedestal-top density neped = 0.678e20 * Electron density of pedestal (/m3) (ipedestal=1) INITIAL VALUE diff --git a/tests/unit/data/large_tokamak_IN.DAT b/tests/unit/data/large_tokamak_IN.DAT index e80d2a0b2a..e6c9da7797 100644 --- a/tests/unit/data/large_tokamak_IN.DAT +++ b/tests/unit/data/large_tokamak_IN.DAT @@ -386,8 +386,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 * Switch for pedestal profiles ipedestal = 1 diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index e9dca5d931..541709e5d5 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -1577,8 +1577,6 @@ i_density_limit = 7 * Switch for fast alpha pressure calculation i_beta_fast_alpha = 1 -* Switch for inverse quadrature in l-mode scaling laws 5 and 9 -iinvqd = 1 * Switch for pedestal profiles ipedestal = 1 From 762d5922da76c955c7ddc5abfbb88875c36987a5 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 14:48:07 +0000 Subject: [PATCH 088/106] Refactor confinement time calculations and update output formatting in physics module --- process/physics.py | 120 ++++++++++----------------- source/fortran/physics_variables.f90 | 104 +++++++++++------------ 2 files changed, 96 insertions(+), 128 deletions(-) diff --git a/process/physics.py b/process/physics.py index ac3cd4c3f2..ee4f12cb28 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5350,66 +5350,9 @@ def outplas(self): self.outfile, " (= stored energy including fast particles / loss power including radiation", ) - po.oheadr(self.outfile, "Energy confinement times, and required H-factors :") - po.ocmmnt( - self.outfile, - f"{'':>5}{'scaling law':<25}{'confinement time (s)':<25}H-factor for", - ) - po.ocmmnt( - self.outfile, - f"{'':>34}{'for H = 1':<20}power balance", - ) - # for iisc in range(32, 48): - # Put the ITPA value first - for iisc in range(1, 49): - if iisc == 25: - continue - ( - ptrez, - ptriz, - taueez, - taueiz, - taueffz, - powerhtz, - ) = self.calculate_confinement_time( - physics_variables.m_fuel_amu, - physics_variables.alpha_power_total, - physics_variables.aspect, - physics_variables.bt, - physics_variables.nd_ions_total, - physics_variables.dene, - physics_variables.dnla, - physics_variables.eps, - 1.0, - iisc, - physics_variables.ignite, - physics_variables.kappa, - physics_variables.kappa95, - physics_variables.non_alpha_charged_power, - current_drive_variables.pinjmw, - physics_variables.plasma_current, - physics_variables.pcoreradpv, - physics_variables.rmajor, - physics_variables.rminor, - physics_variables.ten, - physics_variables.tin, - physics_variables.q, - physics_variables.qstar, - physics_variables.vol_plasma, - physics_variables.zeff, - ) - - physics_variables.hfac[iisc - 1] = self.fhfac(iisc) - - po.ocmmnt( - self.outfile, - f"{'':>2}{f2py_compatible_to_string(physics_variables.tauscl[iisc]):<32}" - f"{taueez:<26.3f}{physics_variables.hfac[iisc - 1]:.3f}", - ) - - po.oblnkl(self.outfile) - po.ostars(self.outfile, 110) + # Plot table of al the H-factor scalings and coparison values + self.output_confinement_comparison() if stellarator_variables.istell == 0: # Issues 363 Output dimensionless plasma parameters MDK @@ -5800,27 +5743,48 @@ def outplas(self): reinke_variables.fzactual, ) - def igmarcal(self): - """Routine to calculate ignition margin - author: P J Knight, CCFE, Culham Science Centre - outfile : input integer : Fortran output unit identifier - This routine calculates the ignition margin at the final point - with different scalings. + def output_confinement_comparison(self) -> None: + """ + Routine to calculate ignition margin for different confinement scalings and equivalent confinement times for H=1. + + This routine calculates the ignition margin at the final point with different scalings and outputs the results to a file. + + The output includes: + - Energy confinement times + - Required H-factors for power balance + + The routine iterates over a range of confinement times, skipping the first user input and a specific index (25). For each confinement time, it calculates various parameters related to confinement and ignition using the `calculate_confinement_time` method. It then calculates the H-factor for when the plasma is ignited using the `fhfac` method and writes the results to the output file. + + Output format: + - Header: "Energy confinement times, and required H-factors :" + - Columns: "Scaling law", "Confinement time [s]", "H-factor for power balance" + + Methods used: + - `calculate_confinement_time`: Calculates confinement-related parameters. + - `fhfac`: Calculates the H-factor for a given confinement time. + + Parameters: + - None + + Returns: + - None """ po.oheadr(self.outfile, "Energy confinement times, and required H-factors :") po.ocmmnt( self.outfile, - f"{'':>5}{'scaling law':<25}{'confinement time (s)':<25}H-factor for", + f"{'':>2}{'Scaling law':<35}{'Confinement time [s]':<40}H-factor for", ) po.ocmmnt( self.outfile, - f"{'':>34}{'for H = 1':<20}power balance", + f"{'':>40}{'for H = 1':<26}power balance", ) - # for iisc in range(32, 48): - # Put the ITPA value first - for iisc in [49, 34, 37, 38, 39, 46, 47, 48]: + # Plot all of the confinement scalings for comparison when H = 1 + # Start from range 1 as the first i_confinement_time is a user input + for i_confinement_time in range(1, physics_variables.ipnlaws): + if i_confinement_time == 25: + continue ( ptrez, ptriz, @@ -5838,7 +5802,7 @@ def igmarcal(self): physics_variables.dnla, physics_variables.eps, 1.0, - iisc, + i_confinement_time, physics_variables.ignite, physics_variables.kappa, physics_variables.kappa95, @@ -5848,24 +5812,28 @@ def igmarcal(self): physics_variables.pcoreradpv, physics_variables.rmajor, physics_variables.rminor, - physics_variables.te, physics_variables.ten, physics_variables.tin, physics_variables.q, physics_variables.qstar, physics_variables.vol_plasma, - physics_variables.a_plasma_poloidal, physics_variables.zeff, ) - physics_variables.hfac[iisc - 1] = self.fhfac(iisc) + # Calculate the H-factor for when the plasma is ignited + physics_variables.hfac[i_confinement_time - 1] = self.fhfac( + i_confinement_time + ) po.ocmmnt( self.outfile, - f"{'':>2}{f2py_compatible_to_string(physics_variables.tauscl[iisc]):<32}" - f"{taueez:<26.3f}{physics_variables.hfac[iisc - 1]:.3f}", + f"{'':>2}{f2py_compatible_to_string(physics_variables.tauscl[i_confinement_time]):<38}" + f"{taueez:<32.3f}{physics_variables.hfac[i_confinement_time - 1]:.3f}", ) + po.oblnkl(self.outfile) + po.ostars(self.outfile, 110) + @staticmethod def bootstrap_fraction_iter89( aspect: float, diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 4e074fc0b6..af2f90be7a 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -419,58 +419,58 @@ module physics_variables !! switch for energy confinement time scaling law (see description in `tauscl`) !! tauscl(ipnlaws) : labels describing energy confinement scaling laws - character*24, parameter, dimension(ipnlaws) :: tauscl = (/ & - 'Input tauee_in ', & - 'Neo-Alcator (ohmic)', & - 'Mirnov (H)', & - 'Merezkhin-Muhkovatov (L)', & - 'Shimomura (H)', & - 'Kaye-Goldston (L)', & - 'ITER 89-P (L)', & - 'ITER 89-O (L)', & - 'Rebut-Lallia (L)', & - 'Goldston (L)', & - 'T10 (L)', & - 'JAERI-88 (L)', & - 'Kaye-Big Complex (L)', & - 'ITER H90-P (H)', & - 'ITER Mix (L)', & - 'Riedel (L)', & - 'Christiansen (L)', & - 'Lackner-Gottardi (L)', & - 'Neo-Kaye (L)', & - 'Riedel (H)', & - 'ITER H90-P amended (H)', & - 'LHD (stell)', & - 'Gyro-reduced Bohm(stell)', & - 'Lackner-Gottardi (stell)', & - 'ITER-93H (H)', & - 'TITAN RFP OBSOLETE ', & - 'ITER H-97P ELM-free (H)', & - 'ITER H-97P ELMy (H)', & - 'ITER-96P (L)', & - 'Valovic modified ELMy(H)', & - 'Kaye PPPL April 98 (L)', & - 'ITERH-PB98P(y) (H)', & - 'IPB98(y) (H)', & - 'IPB98(y,1) (H)', & - 'IPB98(y,2) (H)', & - 'IPB98(y,3) (H)', & - 'IPB98(y,4) (H)', & - 'ISS95 (stell)', & - 'ISS04 (stell)', & - 'DS03 (H)', & - 'Murari et al NPL (H)', & - 'Petty 2008 (H)', & - 'Lang et al. 2012 (H)', & - 'Hubbard 2017 - nom (I)', & - 'Hubbard 2017 - lower (I)', & - 'Hubbard 2017 - upper (I)', & - 'NSTX (Spherical) (H)', & - 'NSTX-Petty08 Hybrid (H)', & - 'NSTX gyro-Bohm Buxton(H)', & - 'ITPA20 (H)', & - 'ITPA20-IL (H)' /) + character*30, parameter, dimension(ipnlaws) :: tauscl = (/ & + 'Input tauee_in ', & + 'Neo-Alcator (Ohmic)', & + 'Mirnov (H)', & + 'Merezkhin-Muhkovatov (L)', & + 'Shimomura (H)', & + 'Kaye-Goldston (L)', & + 'ITER 89-P (L)', & + 'ITER 89-O (L)', & + 'Rebut-Lallia (L)', & + 'Goldston (L)', & + 'T10 (L)', & + 'JAERI-88 (L)', & + 'Kaye-Big Complex (L)', & + 'ITER H90-P (H)', & + 'ITER Mix (L)', & + 'Riedel (L)', & + 'Christiansen (L)', & + 'Lackner-Gottardi (L)', & + 'Neo-Kaye (L)', & + 'Riedel (H)', & + 'ITER H90-P amended (H)', & + 'LHD (Stell)', & + 'Gyro-reduced Bohm (Stell)', & + 'Lackner-Gottardi (Stell)', & + 'ITER-93H (H)', & + 'TITAN RFP OBSOLETE ', & + 'ITER H-97P ELM-free (H)', & + 'ITER H-97P ELMy (H)', & + 'ITER-96P (L)', & + 'Valovic modified ELMy (H)', & + 'Kaye PPPL April 98 (L)', & + 'ITERH-PB98P(y) (H)', & + 'IPB98(y) (H)', & + 'IPB98(y,1) (H)', & + 'IPB98(y,2) (H)', & + 'IPB98(y,3) (H)', & + 'IPB98(y,4) (H)', & + 'ISS95 (Stell)', & + 'ISS04 (Stell)', & + 'DS03 (H)', & + 'Murari et al NPL (H)', & + 'Petty 2008 (ST)(H)', & + 'Lang et al. 2012 (H)', & + 'Hubbard 2017 - nom (I)', & + 'Hubbard 2017 - lower (I)', & + 'Hubbard 2017 - upper (I)', & + 'NSTX (ST)(H)', & + 'NSTX-Petty08 Hybrid (ST)(H)', & + 'NSTX gyro-Bohm Buxton (ST)(H)', & + 'ITPA20 (H)', & + 'ITPA20-IL (H)' /) integer :: i_plasma_wall_gap !! Switch for plasma-first wall clearances at the mid-plane: From 9442e9e8e2f868300c9bf63d4570894ba63f7d14 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 14:53:33 +0000 Subject: [PATCH 089/106] =?UTF-8?q?=20=F0=9F=94=84=20Rename=20ipnlaws=20to?= =?UTF-8?q?=20n=5Fconfinement=5Fscalings=20for=20clarity=20and=20consisten?= =?UTF-8?q?cy=20across=20the=20codebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 2 +- source/fortran/input.f90 | 4 ++-- source/fortran/physics_variables.f90 | 8 ++++---- tests/integration/ref_dicts.json | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/process/physics.py b/process/physics.py index ee4f12cb28..de55d2eb10 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5782,7 +5782,7 @@ def output_confinement_comparison(self) -> None: # Plot all of the confinement scalings for comparison when H = 1 # Start from range 1 as the first i_confinement_time is a user input - for i_confinement_time in range(1, physics_variables.ipnlaws): + for i_confinement_time in range(1, physics_variables.n_confinement_scalings): if i_confinement_time == 25: continue ( diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index c9843a632c..10e87ce992 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -312,7 +312,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) itart, f_nd_alpha_electron, iprofile, triang95, rad_fraction_sol, betbm0, f_nd_protium_electrons, & teped, f_helium3, iwalld, gamma, f_alpha_plasma, fgwped, tbeta, i_bootstrap_current, & i_rad_loss, te, alphan, rmajor, plasma_square, kappa, fkzohm, beamfus0, & - tauratio, i_density_limit, bt, i_plasma_wall_gap, ipnlaws, beta_max, beta_min, & + tauratio, i_density_limit, bt, i_plasma_wall_gap, n_confinement_scalings, beta_max, beta_min, & i_diamagnetic_current, i_pfirsch_schluter_current, m_s_limit, burnup_in use pf_power_variables, only: iscenr, maxpoloidalpower use pulse_variables, only: lpulse, dtstor, itcycl, istore, bctmp @@ -658,7 +658,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) call parse_int_variable('i_rad_loss', i_rad_loss, 0, 2, & 'Switch for radiation loss term inclusion in power balance') case ('i_confinement_time') - call parse_int_variable('i_confinement_time', i_confinement_time, 0, ipnlaws-1, & + call parse_int_variable('i_confinement_time', i_confinement_time, 0, n_confinement_scalings-1, & 'Switch for confinement scaling law') case ('i_plasma_wall_gap') call parse_int_variable('i_plasma_wall_gap', i_plasma_wall_gap, 0, 1, & diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index af2f90be7a..ec68b7eec5 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -14,7 +14,7 @@ module physics_variables public - integer, parameter :: ipnlaws = 51 + integer, parameter :: n_confinement_scalings = 51 !! number of energy confinement time scaling laws real(dp) :: m_beam_amu @@ -266,7 +266,7 @@ module physics_variables real(dp) :: f_beta_alpha_beam_thermal !! ratio of (fast alpha + neutral beam beta) to thermal beta - real(dp), dimension(ipnlaws) :: hfac + real(dp), dimension(n_confinement_scalings) :: hfac !! H factors for an ignited plasma for each energy confinement time scaling law real(dp) :: hfact @@ -418,8 +418,8 @@ module physics_variables integer :: i_confinement_time !! switch for energy confinement time scaling law (see description in `tauscl`) - !! tauscl(ipnlaws) : labels describing energy confinement scaling laws - character*30, parameter, dimension(ipnlaws) :: tauscl = (/ & + !! tauscl(n_confinement_scalings) : labels describing energy confinement scaling laws + character*30, parameter, dimension(n_confinement_scalings) :: tauscl = (/ & 'Input tauee_in ', & 'Neo-Alcator (Ohmic)', & 'Mirnov (H)', & diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index baa1bbdc10..c8da2e36a6 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2645,7 +2645,7 @@ "ipfres": 0.0, "ipnet": 0.0, "ipnfoms": 19.0, - "ipnlaws": 48.0, + "n_confinement_scalings": 48.0, "ipnscns": 1000.0, "ipnscnv": 64.0, "ipnvars": 175.0, @@ -9883,7 +9883,7 @@ "ipfres": "switch for PF coil type:\n
                          \n
                        • =0 superconducting PF coils
                        • \n
                        • =1 resistive PF coils
                        • \n
                        ", "ipnet": "Switch for net electric power calculation:\n
                          \n
                        • =0 scale so that always > 0
                        • \n
                        • =1 let go < 0 (no c-o-e)
                        • \n
                        ", "ipnfoms": "ipnfoms FIX : number of available figures of merit", - "ipnlaws": "number of energy confinement time scaling laws", + "n_confinement_scalings": "number of energy confinement time scaling laws", "ipnscns": "Maximum number of scan points", "ipnscnv": "Number of available scan variables", "ipnvars": "ipnvars FIX : total number of variables available for iteration", @@ -10736,7 +10736,7 @@ "taumax": "Maximum allowed energy confinement time (s)", "t_alpha_confinement": "alpha particle confinement time (sec)", "tauratio": "tauratio /1.0/ : ratio of He and pellet particle confinement times", - "tauscl": "tauscl(ipnlaws) : labels describing energy confinement scaling laws:
                          \n \n
                        • ( 1) Neo-Alcator (ohmic)\n
                        • ( 2) Mirnov (H-mode)\n
                        • ( 3) Merezkhin-Muhkovatov (L-mode)\n
                        • ( 4) Shimomura (H-mode)\n
                        • ( 5) Kaye-Goldston (L-mode)\n
                        • ( 6) ITER 89-P (L-mode)\n
                        • ( 7) ITER 89-O (L-mode)\n
                        • ( 8) Rebut-Lallia (L-mode)\n
                        • ( 9) Goldston (L-mode)\n
                        • (10) T10 (L-mode)\n
                        • (11) JAERI-88 (L-mode)\n
                        • (12) Kaye-Big Complex (L-mode)\n
                        • (13) ITER H90-P (H-mode)\n
                        • (14) ITER Mix (L-mode)\n
                        • (15) Riedel (L-mode)\n
                        • (16) Christiansen (L-mode)\n
                        • (17) Lackner-Gottardi (L-mode)\n
                        • (18) Neo-Kaye (L-mode)\n
                        • (19) Riedel (H-mode)\n
                        • (20) ITER H90-P amended (H-mode)\n
                        • (21) LHD (stellarator)\n
                        • (22) Gyro-reduced Bohm (stellarator)\n
                        • (23) Lackner-Gottardi (stellarator)\n
                        • (24) ITER-93H (H-mode)\n
                        • (25) OBSOLETE\n
                        • (26) ITER H-97P ELM-free (H-mode)\n
                        • (27) ITER H-97P ELMy (H-mode)\n
                        • (28) ITER-96P (=ITER-97L) (L-mode)\n
                        • (29) Valovic modified ELMy (H-mode)\n
                        • (30) Kaye PPPL April 98 (L-mode)\n
                        • (31) ITERH-PB98P(y) (H-mode)\n
                        • (32) IPB98(y) (H-mode)\n
                        • (33) IPB98(y,1) (H-mode)\n
                        • (34) IPB98(y,2) (H-mode)\n
                        • (35) IPB98(y,3) (H-mode)\n
                        • (36) IPB98(y,4) (H-mode)\n
                        • (37) ISS95 (stellarator)\n
                        • (38) ISS04 (stellarator)\n
                        • (39) DS03 (H-mode)\n
                        • (40) Murari et al non-power law (H-mode)\n
                        • (41) Petty 2008 (H-mode)\n
                        • (42) Lang et al. 2012 (H-mode)\n
                        • (43) Hubbard 2017 (I-mode) - nominal\n
                        • (44) Hubbard 2017 (I-mode) - lower bound\n
                        • (45) Hubbard 2017 (I-mode) - upper bound\n
                        • (46) NSTX (H-mode; Spherical tokamak)\n
                        • (47) NSTX-Petty08 Hybrid (H-mode)\n
                        • (48) Use input tauee_in
                        \n\n\n", + "tauscl": "tauscl(n_confinement_scalings) : labels describing energy confinement scaling laws:
                          \n \n
                        • ( 1) Neo-Alcator (ohmic)\n
                        • ( 2) Mirnov (H-mode)\n
                        • ( 3) Merezkhin-Muhkovatov (L-mode)\n
                        • ( 4) Shimomura (H-mode)\n
                        • ( 5) Kaye-Goldston (L-mode)\n
                        • ( 6) ITER 89-P (L-mode)\n
                        • ( 7) ITER 89-O (L-mode)\n
                        • ( 8) Rebut-Lallia (L-mode)\n
                        • ( 9) Goldston (L-mode)\n
                        • (10) T10 (L-mode)\n
                        • (11) JAERI-88 (L-mode)\n
                        • (12) Kaye-Big Complex (L-mode)\n
                        • (13) ITER H90-P (H-mode)\n
                        • (14) ITER Mix (L-mode)\n
                        • (15) Riedel (L-mode)\n
                        • (16) Christiansen (L-mode)\n
                        • (17) Lackner-Gottardi (L-mode)\n
                        • (18) Neo-Kaye (L-mode)\n
                        • (19) Riedel (H-mode)\n
                        • (20) ITER H90-P amended (H-mode)\n
                        • (21) LHD (stellarator)\n
                        • (22) Gyro-reduced Bohm (stellarator)\n
                        • (23) Lackner-Gottardi (stellarator)\n
                        • (24) ITER-93H (H-mode)\n
                        • (25) OBSOLETE\n
                        • (26) ITER H-97P ELM-free (H-mode)\n
                        • (27) ITER H-97P ELMy (H-mode)\n
                        • (28) ITER-96P (=ITER-97L) (L-mode)\n
                        • (29) Valovic modified ELMy (H-mode)\n
                        • (30) Kaye PPPL April 98 (L-mode)\n
                        • (31) ITERH-PB98P(y) (H-mode)\n
                        • (32) IPB98(y) (H-mode)\n
                        • (33) IPB98(y,1) (H-mode)\n
                        • (34) IPB98(y,2) (H-mode)\n
                        • (35) IPB98(y,3) (H-mode)\n
                        • (36) IPB98(y,4) (H-mode)\n
                        • (37) ISS95 (stellarator)\n
                        • (38) ISS04 (stellarator)\n
                        • (39) DS03 (H-mode)\n
                        • (40) Murari et al non-power law (H-mode)\n
                        • (41) Petty 2008 (H-mode)\n
                        • (42) Lang et al. 2012 (H-mode)\n
                        • (43) Hubbard 2017 (I-mode) - nominal\n
                        • (44) Hubbard 2017 (I-mode) - lower bound\n
                        • (45) Hubbard 2017 (I-mode) - upper bound\n
                        • (46) NSTX (H-mode; Spherical tokamak)\n
                        • (47) NSTX-Petty08 Hybrid (H-mode)\n
                        • (48) Use input tauee_in
                        \n\n\n", "tbeamin": "permitted neutral beam e-decay lengths to plasma centre", "tbeta": "temperature profile index beta (`ipedestal=1,2`)", "tbktrepl": "time taken to replace blanket (y) (`iavail=1`)", @@ -19052,7 +19052,7 @@ "first_call" ], "physics_variables": [ - "ipnlaws", + "n_confinement_scalings", "m_beam_amu", "m_fuel_amu", "m_ions_total_amu", From f1a8c3110ef48e3bfbc2e3d6a9a550d16e483d79 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 14:55:12 +0000 Subject: [PATCH 090/106] =?UTF-8?q?=F0=9F=94=84=20Update=20references=20fr?= =?UTF-8?q?om=20tauscl=20to=20labels=5Fconfinement=5Fscalings=20for=20cons?= =?UTF-8?q?istency=20in=20confinement=20time=20scaling=20law?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 6 ++++-- source/fortran/physics_variables.f90 | 6 +++--- source/fortran/stellarator.f90 | 2 +- tests/integration/data/large_tokamak_once_through.IN.DAT | 2 +- tests/integration/ref_dicts.json | 8 ++++---- .../input_files/large_tokamak_once_through.IN.DAT | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/process/physics.py b/process/physics.py index de55d2eb10..a954d3ac3c 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5183,7 +5183,9 @@ def outplas(self): po.oblnkl(self.outfile) tauelaw = f2py_compatible_to_string( - physics_variables.tauscl[physics_variables.i_confinement_time] + physics_variables.labels_confinement_scalings[ + physics_variables.i_confinement_time + ] ) po.ocmmnt( @@ -5827,7 +5829,7 @@ def output_confinement_comparison(self) -> None: po.ocmmnt( self.outfile, - f"{'':>2}{f2py_compatible_to_string(physics_variables.tauscl[i_confinement_time]):<38}" + f"{'':>2}{f2py_compatible_to_string(physics_variables.labels_confinement_scalings[i_confinement_time]):<38}" f"{taueez:<32.3f}{physics_variables.hfac[i_confinement_time - 1]:.3f}", ) diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index ec68b7eec5..7292bdda9c 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -416,10 +416,10 @@ module physics_variables !! allowance for radiation. This is not recommended for power plant models. integer :: i_confinement_time - !! switch for energy confinement time scaling law (see description in `tauscl`) + !! switch for energy confinement time scaling law (see description in `labels_confinement_scalings`) - !! tauscl(n_confinement_scalings) : labels describing energy confinement scaling laws - character*30, parameter, dimension(n_confinement_scalings) :: tauscl = (/ & + !! labels_confinement_scalings(n_confinement_scalings) : labels describing energy confinement scaling laws + character*30, parameter, dimension(n_confinement_scalings) :: labels_confinement_scalings = (/ & 'Input tauee_in ', & 'Neo-Alcator (Ohmic)', & 'Mirnov (H)', & diff --git a/source/fortran/stellarator.f90 b/source/fortran/stellarator.f90 index 0a63f54018..081dabba3d 100644 --- a/source/fortran/stellarator.f90 +++ b/source/fortran/stellarator.f90 @@ -55,7 +55,7 @@ subroutine stinit use current_drive_variables, only: irfcd use pfcoil_variables, only: ohhghf use physics_variables, only: aspect, beta_norm_max, kappa, kappa95, q, rmajor, & - triang, hfac, tauscl + triang, hfac, labels_confinement_scalings use numerics, only: boundl, boundu use stellarator_variables, only: istell use tfcoil_variables, only: n_tf diff --git a/tests/integration/data/large_tokamak_once_through.IN.DAT b/tests/integration/data/large_tokamak_once_through.IN.DAT index 2d4b25998a..4ed427dd3f 100644 --- a/tests/integration/data/large_tokamak_once_through.IN.DAT +++ b/tests/integration/data/large_tokamak_once_through.IN.DAT @@ -339,7 +339,7 @@ tbeta = 2.0 * temperature profile index beta (`ipedestal==1) teped = 5.5 * electron temperature of pedestal (keV) (`ipedestal==1') tesep = 0.1 * electron temperature at separatrix (keV) (`ipedestal==1`) calculated if reinke iprofile = 1 * switch for current profile consistency; -i_confinement_time = 34 * switch for energy confinement time scaling law (see description in `tauscl`) +i_confinement_time = 34 * switch for energy confinement time scaling law (see description in `labels_confinement_scalings`) i_plasma_geometry = 0 * switch for plasma cross-sectional shape calculation; kappa = 1.85 * plasma separatrix elongation (calculated if `i_plasma_geometry = 1-5; 7 or 9-10`) q = 3.7339078193128556 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index c8da2e36a6..539d5a1a38 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7431,7 +7431,7 @@ "taumax": 10.0, "t_alpha_confinement": 0.0, "tauratio": 1.0, - "tauscl": [ + "labels_confinement_scalings": [ "'Neo-Alcator      (ohmic)'", "'Mirnov               (H)'", "'Merezkhin-Muhkovatov (L)'", @@ -9902,7 +9902,7 @@ "irefprop": "Switch to use REFPROP routines (stellarator only)", "irfcd": "Switch for current drive calculation:\n
                          \n
                        • =0 turned off
                        • \n
                        • =1 turned on
                        • \n
                        ", "is_leg_cp_temp_same": "", - "i_confinement_time": "switch for energy confinement time scaling law (see description in `tauscl`)", + "i_confinement_time": "switch for energy confinement time scaling law (see description in `labels_confinement_scalings`)", "iscan_global": "Makes iscan available globally.", "iscenr": "Switch for PF coil energy storage option:\n
                          \n
                        • =1 all power from MGF (motor-generator flywheel) units
                        • \n
                        • =2 all pulsed power from line
                        • \n
                        • =3 PF power from MGF, heating from line
                        • \n
                        ", "i_plasma_wall_gap": "switch for plasma-first wall clearances:\n
                          \n
                        • =0 use 10% of rminor
                        • \n
                        • =1 use input (dr_fw_plasma_gap_inboard and dr_fw_plasma_gap_outboard)
                        • \n
                        ", @@ -10736,7 +10736,7 @@ "taumax": "Maximum allowed energy confinement time (s)", "t_alpha_confinement": "alpha particle confinement time (sec)", "tauratio": "tauratio /1.0/ : ratio of He and pellet particle confinement times", - "tauscl": "tauscl(n_confinement_scalings) : labels describing energy confinement scaling laws:
                          \n \n
                        • ( 1) Neo-Alcator (ohmic)\n
                        • ( 2) Mirnov (H-mode)\n
                        • ( 3) Merezkhin-Muhkovatov (L-mode)\n
                        • ( 4) Shimomura (H-mode)\n
                        • ( 5) Kaye-Goldston (L-mode)\n
                        • ( 6) ITER 89-P (L-mode)\n
                        • ( 7) ITER 89-O (L-mode)\n
                        • ( 8) Rebut-Lallia (L-mode)\n
                        • ( 9) Goldston (L-mode)\n
                        • (10) T10 (L-mode)\n
                        • (11) JAERI-88 (L-mode)\n
                        • (12) Kaye-Big Complex (L-mode)\n
                        • (13) ITER H90-P (H-mode)\n
                        • (14) ITER Mix (L-mode)\n
                        • (15) Riedel (L-mode)\n
                        • (16) Christiansen (L-mode)\n
                        • (17) Lackner-Gottardi (L-mode)\n
                        • (18) Neo-Kaye (L-mode)\n
                        • (19) Riedel (H-mode)\n
                        • (20) ITER H90-P amended (H-mode)\n
                        • (21) LHD (stellarator)\n
                        • (22) Gyro-reduced Bohm (stellarator)\n
                        • (23) Lackner-Gottardi (stellarator)\n
                        • (24) ITER-93H (H-mode)\n
                        • (25) OBSOLETE\n
                        • (26) ITER H-97P ELM-free (H-mode)\n
                        • (27) ITER H-97P ELMy (H-mode)\n
                        • (28) ITER-96P (=ITER-97L) (L-mode)\n
                        • (29) Valovic modified ELMy (H-mode)\n
                        • (30) Kaye PPPL April 98 (L-mode)\n
                        • (31) ITERH-PB98P(y) (H-mode)\n
                        • (32) IPB98(y) (H-mode)\n
                        • (33) IPB98(y,1) (H-mode)\n
                        • (34) IPB98(y,2) (H-mode)\n
                        • (35) IPB98(y,3) (H-mode)\n
                        • (36) IPB98(y,4) (H-mode)\n
                        • (37) ISS95 (stellarator)\n
                        • (38) ISS04 (stellarator)\n
                        • (39) DS03 (H-mode)\n
                        • (40) Murari et al non-power law (H-mode)\n
                        • (41) Petty 2008 (H-mode)\n
                        • (42) Lang et al. 2012 (H-mode)\n
                        • (43) Hubbard 2017 (I-mode) - nominal\n
                        • (44) Hubbard 2017 (I-mode) - lower bound\n
                        • (45) Hubbard 2017 (I-mode) - upper bound\n
                        • (46) NSTX (H-mode; Spherical tokamak)\n
                        • (47) NSTX-Petty08 Hybrid (H-mode)\n
                        • (48) Use input tauee_in
                        \n\n\n", + "labels_confinement_scalings": "labels_confinement_scalings(n_confinement_scalings) : labels describing energy confinement scaling laws:
                          \n \n
                        • ( 1) Neo-Alcator (ohmic)\n
                        • ( 2) Mirnov (H-mode)\n
                        • ( 3) Merezkhin-Muhkovatov (L-mode)\n
                        • ( 4) Shimomura (H-mode)\n
                        • ( 5) Kaye-Goldston (L-mode)\n
                        • ( 6) ITER 89-P (L-mode)\n
                        • ( 7) ITER 89-O (L-mode)\n
                        • ( 8) Rebut-Lallia (L-mode)\n
                        • ( 9) Goldston (L-mode)\n
                        • (10) T10 (L-mode)\n
                        • (11) JAERI-88 (L-mode)\n
                        • (12) Kaye-Big Complex (L-mode)\n
                        • (13) ITER H90-P (H-mode)\n
                        • (14) ITER Mix (L-mode)\n
                        • (15) Riedel (L-mode)\n
                        • (16) Christiansen (L-mode)\n
                        • (17) Lackner-Gottardi (L-mode)\n
                        • (18) Neo-Kaye (L-mode)\n
                        • (19) Riedel (H-mode)\n
                        • (20) ITER H90-P amended (H-mode)\n
                        • (21) LHD (stellarator)\n
                        • (22) Gyro-reduced Bohm (stellarator)\n
                        • (23) Lackner-Gottardi (stellarator)\n
                        • (24) ITER-93H (H-mode)\n
                        • (25) OBSOLETE\n
                        • (26) ITER H-97P ELM-free (H-mode)\n
                        • (27) ITER H-97P ELMy (H-mode)\n
                        • (28) ITER-96P (=ITER-97L) (L-mode)\n
                        • (29) Valovic modified ELMy (H-mode)\n
                        • (30) Kaye PPPL April 98 (L-mode)\n
                        • (31) ITERH-PB98P(y) (H-mode)\n
                        • (32) IPB98(y) (H-mode)\n
                        • (33) IPB98(y,1) (H-mode)\n
                        • (34) IPB98(y,2) (H-mode)\n
                        • (35) IPB98(y,3) (H-mode)\n
                        • (36) IPB98(y,4) (H-mode)\n
                        • (37) ISS95 (stellarator)\n
                        • (38) ISS04 (stellarator)\n
                        • (39) DS03 (H-mode)\n
                        • (40) Murari et al non-power law (H-mode)\n
                        • (41) Petty 2008 (H-mode)\n
                        • (42) Lang et al. 2012 (H-mode)\n
                        • (43) Hubbard 2017 (I-mode) - nominal\n
                        • (44) Hubbard 2017 (I-mode) - lower bound\n
                        • (45) Hubbard 2017 (I-mode) - upper bound\n
                        • (46) NSTX (H-mode; Spherical tokamak)\n
                        • (47) NSTX-Petty08 Hybrid (H-mode)\n
                        • (48) Use input tauee_in
                        \n\n\n", "tbeamin": "permitted neutral beam e-decay lengths to plasma centre", "tbeta": "temperature profile index beta (`ipedestal=1,2`)", "tbktrepl": "time taken to replace blanket (y) (`iavail=1`)", @@ -19151,7 +19151,7 @@ "iprofile", "i_rad_loss", "i_confinement_time", - "tauscl", + "labels_confinement_scalings", "i_plasma_wall_gap", "i_plasma_geometry", "itart", diff --git a/tests/regression/input_files/large_tokamak_once_through.IN.DAT b/tests/regression/input_files/large_tokamak_once_through.IN.DAT index 3dcd33ccfd..21603dfa0b 100644 --- a/tests/regression/input_files/large_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/large_tokamak_once_through.IN.DAT @@ -339,7 +339,7 @@ tbeta = 2.0 * temperature profile index beta (`ipedestal==1) teped = 5.5 * electron temperature of pedestal (keV) (`ipedestal==1') tesep = 0.1 * electron temperature at separatrix (keV) (`ipedestal==1`) calculated if reinke iprofile = 1 * switch for current profile consistency; -i_confinement_time = 34 * switch for energy confinement time scaling law (see description in `tauscl`) +i_confinement_time = 34 * switch for energy confinement time scaling law (see description in `labels_confinement_scalings`) i_plasma_geometry = 0 * switch for plasma cross-sectional shape calculation; kappa = 1.85 * plasma separatrix elongation (calculated if `i_plasma_geometry = 1-5; 7 or 9-10`) q = 3.7339078193128556 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 From ee9a84ba63d6cb36f6ee04b322a013b1e779f08d Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 15:23:10 +0000 Subject: [PATCH 091/106] :fire: Remove overwritten ion confinement calculation --- process/physics.py | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/process/physics.py b/process/physics.py index a954d3ac3c..ee23defbc5 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6709,24 +6709,6 @@ def calculate_confinement_time( - powerht (float): Heating power (MW) assumed in calculation """ - eps2 = eps / 2.0e0 - str5 = 2.0e0 / (1.0e0 + (kappa**2)) - ck2 = (0.66e0 + (1.88e0 * (np.sqrt(eps2))) - (1.54e0 * eps2)) * ( - 1.0e0 + (1.5e0 * (eps2**2)) - ) - chii = ( - (6.5e-22) - * ck2 - * zeff - * (aspect**1.5e0) - * dene - * (q**2) - * str5 - / ((np.sqrt(tin)) * (bt**2)) - ) - str2 = 2.0e0 * (kappa**2) / (1.0e0 + (kappa**2)) - t_ion_energy_confinement = 0.375e0 * rminor**2 / chii * str2 - # ======================================================================== # Calculate heating power (MW) @@ -7444,10 +7426,11 @@ def calculate_confinement_time( error_handling.idiags[0] = i_confinement_time error_handling.report_error(81) - # Ion energy confinement time - # N.B. Overwrites earlier calculation above + # Apply H-factor correction to chosen scaling t_electron_energy_confinement = hfact * t_electron_confinement + # Ion energy confinement time + # N.B. Overwrites earlier calculation above t_ion_energy_confinement = t_electron_energy_confinement # Calculation of the transport power loss terms From 0df74fd2b1831dfa83ce83f3329e3579e07ed896 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 15:50:08 +0000 Subject: [PATCH 092/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20total=5Fenergy?= =?UTF-8?q?=5Fconf=5Ftime=20to=20t=5Fenergy=5Fconfinement=5Fbeta=20for=20c?= =?UTF-8?q?onsistency=20across=20the=20codebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 ++++----- process/physics.py | 38 ++++++++++--------- source/fortran/physics.f90 | 4 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++++-------- tests/integration/data/scan_MFILE.DAT | 18 ++++----- tests/integration/ref_dicts.json | 6 +-- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- 17 files changed, 69 insertions(+), 67 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 4034f29ac5..6eac7cca17 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -500,7 +500,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2315E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8919E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8266E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8266E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7123E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0262E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7167E-03 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index f1f39bc2dd..4fa1f2ff70 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -496,7 +496,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 3afb440b8e..64b11972a8 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -496,7 +496,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 77a614a664..f4d9ae750b 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -496,7 +496,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 2f7a5a3e1d..c08dd10400 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -496,7 +496,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 007250a57a..1ac5c5a00c 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -353,7 +353,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -1348,7 +1348,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -2343,7 +2343,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -3338,7 +3338,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -4333,7 +4333,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -5328,7 +5328,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -6323,7 +6323,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -7318,7 +7318,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -8313,7 +8313,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP diff --git a/process/physics.py b/process/physics.py index ee23defbc5..c1e4787fa2 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2502,10 +2502,6 @@ def physics(self): physics_variables.rad_fraction_sol * physics_variables.pdivt ) - physics_module.total_energy_conf_time = ( - physics_module.e_plasma_beta / physics_module.total_loss_power - ) - if any(numerics.icc == 78): po.write( self.outfile, @@ -5205,21 +5201,32 @@ def outplas(self): ) po.ovarrf( self.outfile, - "Global thermal energy confinement time (s)", + "Global thermal energy confinement time, from scaling (s)", "(t_energy_confinement)", physics_variables.t_energy_confinement, "OP ", ) po.ovarrf( self.outfile, - "Ion energy confinement time (s)", + "Directly calculated total energy confinement time (s)", + "(t_energy_confinement_beta)", + physics_module.t_energy_confinement_beta, + "OP ", + ) + po.ocmmnt( + self.outfile, + "(Total thermal energy derived from total plasma beta / loss power)", + ) + po.ovarrf( + self.outfile, + "Ion energy confinement time, from scaling (s)", "(t_ion_energy_confinement)", physics_variables.t_ion_energy_confinement, "OP ", ) po.ovarrf( self.outfile, - "Electron energy confinement time (s)", + "Electron energy confinement time, from scaling (s)", "(t_electron_energy_confinement)", physics_variables.t_electron_energy_confinement, "OP ", @@ -5341,17 +5348,6 @@ def outplas(self): "(f_alpha_energy_confinement_min)", constraint_variables.f_alpha_energy_confinement_min, ) - po.ovarrf( - self.outfile, - "Total energy confinement time including radiation loss (s)", - "(total_energy_conf_time)", - physics_module.total_energy_conf_time, - "OP ", - ) - po.ocmmnt( - self.outfile, - " (= stored energy including fast particles / loss power including radiation", - ) # Plot table of al the H-factor scalings and coparison values self.output_confinement_comparison() @@ -7460,6 +7456,12 @@ def calculate_confinement_time( ratio / t_ion_energy_confinement + 1.0e0 / t_electron_energy_confinement ) + # For comparison directly calculate the confinement time from the stored energy calculated + # from the total plasma beta and the loss power used above. + physics_module.t_energy_confinement_beta = ( + physics_module.e_plasma_beta / 1e6 + ) / powerht + return ( ptrepv, ptripv, diff --git a/source/fortran/physics.f90 b/source/fortran/physics.f90 index aca5b8b383..9598f1d98f 100644 --- a/source/fortran/physics.f90 +++ b/source/fortran/physics.f90 @@ -21,7 +21,7 @@ module physics_module real(dp) :: rad_fraction_LCFS real(dp) :: e_plasma_beta ! [J] real(dp) :: total_loss_power ! [W] - real(dp) :: total_energy_conf_time ! [s] + real(dp) :: t_energy_confinement_beta ! [s] real(dp) :: ptarmw, lambdaio, drsep real(dp) :: fio, fLI, fLO, fUI, fUO, pLImw, pLOmw, pUImw, pUOmw real(dp) :: rho_star @@ -46,7 +46,7 @@ subroutine init_physics_module rad_fraction_LCFS = 0.0D0 e_plasma_beta = 0.0D0 total_loss_power = 0.0D0 - total_energy_conf_time = 0.0D0 + t_energy_confinement_beta = 0.0D0 ptarmw = 0.0D0 lambdaio = 0.0D0 drsep = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index ef518bacc6..c12e5c3ced 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -495,7 +495,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 597fac86da..00fdcd300d 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -496,7 +496,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index b9cc38fa01..cc9513dbca 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -496,7 +496,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index 0014ceb718..c4774ae6a7 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -496,7 +496,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.9512E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8018E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8018E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4553E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9603E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7266E-03 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 3fec754127..9bc79eaa36 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -493,7 +493,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8629E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9482E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7112E-03 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 4dc0ce6319..8919324e5a 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -498,7 +498,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9961E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.3150E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7855E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7855E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.4772E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9629E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.8476E-03 OP @@ -1661,7 +1661,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9751E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2760E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7767E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7767E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6299E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0016E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7709E-03 OP @@ -2824,7 +2824,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9727E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2781E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7693E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7693E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7864E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0417E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6995E-03 OP @@ -3987,7 +3987,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9773E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2692E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7816E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7816E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8030E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0515E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6373E-03 OP @@ -5150,7 +5150,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9645E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2382E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7788E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7788E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6562E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0113E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7056E-03 OP @@ -6313,7 +6313,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9471E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1873E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7790E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7790E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5083E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9729E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7718E-03 OP @@ -7476,7 +7476,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9508E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1836E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7872E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7872E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5242E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9822E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7090E-03 OP @@ -8639,7 +8639,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9498E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1813E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7862E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7862E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6667E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0212E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6394E-03 OP @@ -9802,7 +9802,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9521E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1847E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8077E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0617E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5690E-03 OP @@ -10965,7 +10965,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9576E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1905E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7946E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7946E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8348E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0713E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5115E-03 OP @@ -12128,7 +12128,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9558E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1851E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7900E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7900E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.6972E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0306E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5818E-03 OP @@ -13291,7 +13291,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9518E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1733E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7896E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7896E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5548E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9915E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.6496E-03 OP @@ -14454,7 +14454,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9571E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1764E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7957E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7957E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.5780E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0007E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5910E-03 OP @@ -15617,7 +15617,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9628E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.1990E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7926E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7926E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.7314E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0398E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.5257E-03 OP @@ -16780,7 +16780,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9687E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.2221E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.7894E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.7894E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.8950E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 2.0806E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.4604E-03 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index b96e74ab55..17db874555 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -353,7 +353,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -1348,7 +1348,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -2343,7 +2343,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -3338,7 +3338,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -4333,7 +4333,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -5328,7 +5328,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -6323,7 +6323,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -7318,7 +7318,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP @@ -8313,7 +8313,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 5.0000E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 3.1997E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 3.1997E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.1498E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.7778E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7276E-03 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 539d5a1a38..bc740f7f46 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7624,7 +7624,7 @@ "toolow": ".false.", "toroidalgap": 1.0, "total_costs": 0.0, - "total_energy_conf_time": 0.0, + "t_energy_confinement_beta": 0.0, "total_loss_power": 0.0, "e_plasma_beta": 0.0, "totalpowerlost": null, @@ -10856,7 +10856,7 @@ "toolow": "Used for reporting error in function pimpden", "toroidalgap": "Minimal distance between two toroidal coils. (m)", "total_costs": "", - "total_energy_conf_time": "", + "t_energy_confinement_beta": "", "total_loss_power": "", "e_plasma_beta": "", "totalpowerlost": "Total power lost due to radiation, ionisation and recombination [W]", @@ -19032,7 +19032,7 @@ "rad_fraction_LCFS", "e_plasma_beta", "total_loss_power", - "total_energy_conf_time", + "t_energy_confinement_beta", "ptarmw", "lambdaio", "drsep", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 541709e5d5..51eb77ffae 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -493,7 +493,7 @@ Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2016E+01 Alpha_particle/energy_confinement_time_ratio____________________________ (f_alpha_energy_confinement)_________________ 6.8629E+00 Lower_limit_on_taup/taueff______________________________________________ (f_alpha_energy_confinement_min)____________________ 5.0000E+00 - Total_energy_confinement_time_including_radiation_loss_(s)______________ (total_energy_conf_time)______ 2.8098E+00 + Total_energy_confinement_time_including_radiation_loss_(s)______________ (t_energy_confinement_beta)______ 2.8098E+00 Normalized_plasma_pressure_beta_as_defined_by_McDonald_et_al____________ (beta_mcdonald)_______________ 3.3909E-02 OP Normalized_ion_Larmor_radius____________________________________________ (rho_star)____________________ 1.9482E-03 OP Normalized_collisionality_______________________________________________ (nu_star)_____________________ 3.7112E-03 OP From b7f62e47cd71cc600ed651ecce0ffcb7791d519e Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 16:25:36 +0000 Subject: [PATCH 093/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20ptripv=20to=20p?= =?UTF-8?q?den=5Fion=5Ftransport=5Floss=5Fmw=20for=20clarity=20and=20consi?= =?UTF-8?q?stency=20across=20the=20codebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 16 +++++----- process/stellarator.py | 6 ++-- source/fortran/constraint_equations.f90 | 14 ++++----- source/fortran/physics_variables.f90 | 4 +-- tests/integration/ref_dicts.json | 6 ++-- tests/unit/test_physics.py | 40 +++++++++++++------------ 6 files changed, 44 insertions(+), 42 deletions(-) diff --git a/process/physics.py b/process/physics.py index c1e4787fa2..f5423e37d8 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2249,7 +2249,7 @@ def physics(self): # chosen scaling law ( physics_variables.ptrepv, - physics_variables.ptripv, + physics_variables.pden_ion_transport_loss_mw, physics_variables.t_electron_energy_confinement, physics_variables.t_energy_confinement, physics_variables.t_ion_energy_confinement, @@ -2286,7 +2286,7 @@ def physics(self): physics_variables.ptrepv * physics_variables.vol_plasma ) physics_variables.ptrimw = ( - physics_variables.ptripv * physics_variables.vol_plasma + physics_variables.pden_ion_transport_loss_mw * physics_variables.vol_plasma ) # Total transport power from scaling law (MW) # pscalingmw = physics_variables.ptremw + physics_variables.ptrimw #KE - why is this commented? @@ -2341,7 +2341,7 @@ def physics(self): ) # ptremw = physics_variables.ptrepv*physics_variables.vol_plasma - # ptrimw = physics_variables.ptripv*physics_variables.vol_plasma + # ptrimw = physics_variables.pden_ion_transport_loss_mw*physics_variables.vol_plasma # Total transport power from scaling law (MW) physics_variables.pscalingmw = ( physics_variables.ptremw + physics_variables.ptrimw @@ -6698,7 +6698,7 @@ def calculate_confinement_time( :return: Tuple containing: - ptrepv (float): Electron transport power (MW/m3) - - ptripv (float): Ion transport power (MW/m3) + - pden_ion_transport_loss_mw (float): Ion transport power (MW/m3) - t_electron_energy_confinement (float): Electron energy confinement time (s) - t_ion_energy_confinement (float): Ion energy confinement time (s) - t_energy_confinement (float): Global energy confinement time (s) @@ -7431,9 +7431,9 @@ def calculate_confinement_time( # Calculation of the transport power loss terms # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV - # (here, tin and ten are in keV, and ptrepv and ptripv are in MW/m3) + # (here, tin and ten are in keV, and ptrepv and pden_ion_transport_loss_mw are in MW/m3) - ptripv = ( + pden_ion_transport_loss_mw = ( (3 / 2) * (constants.electron_charge / 1e3) * nd_ions_total @@ -7448,7 +7448,7 @@ def calculate_confinement_time( / t_electron_energy_confinement ) - ratio = nd_ions_total / dene * tin / ten + ratio = (nd_ions_total / dene) * (tin / ten) # Global energy confinement time @@ -7464,7 +7464,7 @@ def calculate_confinement_time( return ( ptrepv, - ptripv, + pden_ion_transport_loss_mw, t_electron_energy_confinement, t_ion_energy_confinement, t_energy_confinement, diff --git a/process/stellarator.py b/process/stellarator.py index 23c228025e..97ffcf0618 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -214,7 +214,7 @@ def stigma(self): for iisc, i in enumerate(istlaw): ( physics_variables.ptrepv, - physics_variables.ptripv, + physics_variables.pden_ion_transport_loss_mw, physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, @@ -4453,7 +4453,7 @@ def stphys(self, output): ( physics_variables.ptrepv, - physics_variables.ptripv, + physics_variables.pden_ion_transport_loss_mw, physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, @@ -4492,7 +4492,7 @@ def stphys(self, output): physics_variables.ptrepv * physics_variables.vol_plasma ) physics_variables.ptrimw = ( - physics_variables.ptripv * physics_variables.vol_plasma + physics_variables.pden_ion_transport_loss_mw * physics_variables.vol_plasma ) physics_variables.pscalingmw = ( diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 0b47ada0cd..0d370d0aef 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -449,7 +449,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !!
                      • = 0 do not assume plasma ignition; !!
                      • = 1 assume ignited (but include auxiliary power in costs)
                      !! ptrepv : input real : electron transport power per volume (MW/m3) - !! ptripv : input real : ion transport power per volume (MW/m3) + !! pden_ion_transport_loss_mw : input real : ion transport power per volume (MW/m3) !! pden_plasma_rad_mw : input real : total radiation power per volume (MW/m3) !! pcoreradpv : input real : total core radiation power per volume (MW/m3) !! f_alpha_plasma : input real : fraction of alpha power deposited in plasma @@ -459,7 +459,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! pinjmw : input real : total auxiliary injected power (MW) !! vol_plasma : input real : plasma volume (m3) - use physics_variables, only: i_rad_loss, ignite, ptrepv, ptripv, pden_plasma_rad_mw, & + use physics_variables, only: i_rad_loss, ignite, ptrepv, pden_ion_transport_loss_mw, pden_plasma_rad_mw, & pcoreradpv, f_alpha_plasma, alpha_power_density_total, charged_power_density, & pden_plasma_ohmic_mw, vol_plasma use current_drive_variables, only: pinjmw @@ -476,7 +476,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! pscaling : Local real : total transport power per volume (MW/m3) real(dp) :: pscaling real(dp) :: pnumerator, pdenom - pscaling = ptrepv + ptripv + pscaling = ptrepv + pden_ion_transport_loss_mw ! Total power lost is scaling power plus radiation: if (i_rad_loss == 0) then pnumerator = pscaling + pden_plasma_rad_mw @@ -515,13 +515,13 @@ subroutine constraint_eqn_003(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! ignite : input integer : switch for ignition assumption:
                        !!
                      • = 0 do not assume plasma ignition; !!
                      • = 1 assume ignited (but include auxiliary power in costs)
                      - !! ptripv : input real : ion transport power per volume (MW/m3) + !! pden_ion_transport_loss_mw : input real : ion transport power per volume (MW/m3) !! piepv : input real : ion/electron equilibration power per volume (MW/m3) !! f_alpha_plasma : input real : fraction of alpha power deposited in plasma !! alpha_power_ions_density : input real : alpha power per volume to ions (MW/m3) !! pinjimw : input real : auxiliary injected power to ions (MW) !! vol_plasma : input real : plasma volume (m3) - use physics_variables, only: ignite, ptripv, piepv, f_alpha_plasma, alpha_power_ions_density, vol_plasma + use physics_variables, only: ignite, pden_ion_transport_loss_mw, piepv, f_alpha_plasma, alpha_power_ions_density, vol_plasma use current_drive_variables, only: pinjimw implicit none real(dp), intent(out) :: tmp_cc @@ -532,14 +532,14 @@ subroutine constraint_eqn_003(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! No assume plasma ignition: if (ignite == 0) then - tmp_cc = 1.0D0 - (ptripv + piepv) / (f_alpha_plasma*alpha_power_ions_density + pinjimw/vol_plasma) + tmp_cc = 1.0D0 - (pden_ion_transport_loss_mw + piepv) / (f_alpha_plasma*alpha_power_ions_density + pinjimw/vol_plasma) tmp_con = (f_alpha_plasma*alpha_power_ions_density + pinjimw/vol_plasma) * (1.0D0 - tmp_cc) tmp_err = (f_alpha_plasma*alpha_power_ions_density + pinjimw/vol_plasma) * tmp_cc tmp_symbol = '=' tmp_units = 'MW/m3' ! Plasma ignited: else - tmp_cc = 1.0D0 - (ptripv+piepv) / (f_alpha_plasma*alpha_power_ions_density) + tmp_cc = 1.0D0 - (pden_ion_transport_loss_mw+piepv) / (f_alpha_plasma*alpha_power_ions_density) tmp_con = (f_alpha_plasma*alpha_power_ions_density) * (1.0D0 - tmp_cc) tmp_err = (f_alpha_plasma*alpha_power_ions_density) * tmp_cc tmp_symbol = '=' diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 7292bdda9c..97767add1f 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -725,7 +725,7 @@ module physics_variables real(dp) :: pscalingmw !! Total transport power from scaling law (MW) - real(dp) :: ptripv + real(dp) :: pden_ion_transport_loss_mw !! ion transport power per volume (MW/m3) real(dp) :: q @@ -1068,7 +1068,7 @@ subroutine init_physics_variables ptrepv = 0.0D0 ptrimw = 0.0D0 pscalingmw = 0.0D0 - ptripv = 0.0D0 + pden_ion_transport_loss_mw = 0.0D0 q = 3.0D0 q0 = 1.0D0 q95 = 0.0D0 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index bc740f7f46..0fb13bb873 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -3681,7 +3681,7 @@ "ptremw": 0.0, "ptrepv": 0.0, "ptrimw": 0.0, - "ptripv": 0.0, + "pden_ion_transport_loss_mw": 0.0, "pulsetimings": 1.0, "pumpareafraction": 0.0203, "pumpspeedfactor": 0.167, @@ -10412,7 +10412,7 @@ "ptremw": "electron transport power (MW)", "ptrepv": "electron transport power per volume (MW/m3)", "ptrimw": "ion transport power (MW)", - "ptripv": "ion transport power per volume (MW/m3)", + "pden_ion_transport_loss_mw": "ion transport power per volume (MW/m3)", "pulsetimings": "Switch for pulse timings (if lpulse=1):\n
                        \n
                      • =0, t_current_ramp_up = Ip(MA)/0.1 t_precharge, t_ramp_down = input
                      • \n
                      • =1, t_current_ramp_up = iteration var or input. t_precharge/t_ramp_down max of input or t_current_ramp_up
                      • \n
                      ", "pumpareafraction": "area of one pumping port as a fraction of plasma surface area", "pumpspeedfactor": "effective pumping speed reduction factor due to duct impedance", @@ -19216,7 +19216,7 @@ "ptrepv", "ptrimw", "pscalingmw", - "ptripv", + "pden_ion_transport_loss_mw", "q", "q0", "q95", diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index e901019f6f..fd144f89a6 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2245,7 +2245,7 @@ class ConfinementTimeParam(NamedTuple): expected_ptrepv: Any = None - expected_ptripv: Any = None + expected_pden_ion_transport_loss_mw: Any = None expected_tauee: Any = None @@ -2293,7 +2293,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.012572050692511346, - expected_ptripv=0.011158066358576262, + expected_pden_ion_transport_loss_mw=0.011158066358576262, expected_tauee=21.17616899712392, expected_t_ion_energy_confinement=21.17616899712392, expected_t_energy_confinement=21.17616899712392, @@ -2335,7 +2335,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.08146744024696746, - expected_ptripv=0.07230475970642361, + expected_pden_ion_transport_loss_mw=0.07230475970642361, expected_tauee=3.2679051814806361, expected_t_ion_energy_confinement=3.2679051814806361, expected_t_energy_confinement=3.2679051814806366, @@ -2377,7 +2377,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.0813367174682195, - expected_ptripv=0.07218873937883169, + expected_pden_ion_transport_loss_mw=0.07218873937883169, expected_tauee=3.2731572946627923, expected_t_ion_energy_confinement=3.2731572946627923, expected_t_energy_confinement=3.2731572946627923, @@ -2419,7 +2419,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.12079262973297819, - expected_ptripv=0.10720702701193681, + expected_pden_ion_transport_loss_mw=0.10720702701193681, expected_tauee=2.2040075681235445, expected_t_ion_energy_confinement=2.2040075681235445, expected_t_energy_confinement=2.2040075681235445, @@ -2461,7 +2461,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.08131814759597392, - expected_ptripv=0.07217225806867361, + expected_pden_ion_transport_loss_mw=0.07217225806867361, expected_tauee=3.2739047552801135, expected_t_ion_energy_confinement=3.2739047552801135, expected_t_energy_confinement=3.2739047552801135, @@ -2503,7 +2503,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.08143510701705373, - expected_ptripv=0.07227606300977574, + expected_pden_ion_transport_loss_mw=0.07227606300977574, expected_tauee=3.269202679985145, expected_t_ion_energy_confinement=3.269202679985145, expected_t_energy_confinement=3.2692026799851455, @@ -2545,7 +2545,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.07271716311087716, - expected_ptripv=0.06453863027150285, + expected_pden_ion_transport_loss_mw=0.06453863027150285, expected_tauee=3.6611421391548524, expected_t_ion_energy_confinement=3.6611421391548524, expected_t_energy_confinement=3.6611421391548529, @@ -2587,7 +2587,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.07853774801394538, - expected_ptripv=0.06970457130869961, + expected_pden_ion_transport_loss_mw=0.06970457130869961, expected_tauee=3.3898077909969717, expected_t_ion_energy_confinement=3.3898077909969717, expected_t_energy_confinement=3.3898077909969717, @@ -2629,7 +2629,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.0840021318362596, - expected_ptripv=0.07455437336481374, + expected_pden_ion_transport_loss_mw=0.07455437336481374, expected_tauee=3.169298972363837, expected_t_ion_energy_confinement=3.169298972363837, expected_t_energy_confinement=3.169298972363837, @@ -2671,7 +2671,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.08311313602000579, - expected_ptripv=0.07376536331761714, + expected_pden_ion_transport_loss_mw=0.07376536331761714, expected_tauee=3.203198469625145, expected_t_ion_energy_confinement=3.203198469625145, expected_t_energy_confinement=3.203198469625145, @@ -2713,7 +2713,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.07310605194452542, - expected_ptripv=0.0648837805988509, + expected_pden_ion_transport_loss_mw=0.0648837805988509, expected_tauee=3.6416666339340682, expected_t_ion_energy_confinement=3.6416666339340682, expected_t_energy_confinement=3.6416666339340686, @@ -2755,7 +2755,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.08143238415417252, - expected_ptripv=0.07227364638853734, + expected_pden_ion_transport_loss_mw=0.07227364638853734, expected_tauee=3.2693119926464509, expected_t_ion_energy_confinement=3.2693119926464509, expected_t_energy_confinement=3.2693119926464513, @@ -2797,7 +2797,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.08142885867164847, - expected_ptripv=0.07227051741865713, + expected_pden_ion_transport_loss_mw=0.07227051741865713, expected_tauee=3.2694535383156871, expected_t_ion_energy_confinement=3.2694535383156871, expected_t_energy_confinement=3.2694535383156871, @@ -2839,7 +2839,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.08143011939694184, - expected_ptripv=0.07227163634959588, + expected_pden_ion_transport_loss_mw=0.07227163634959588, expected_tauee=3.2694029195542003, expected_t_ion_energy_confinement=3.2694029195542003, expected_t_energy_confinement=3.2694029195542003, @@ -2881,7 +2881,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.07960828601702878, - expected_ptripv=0.07065470540932789, + expected_pden_ion_transport_loss_mw=0.07065470540932789, expected_tauee=3.3442231132583498, expected_t_ion_energy_confinement=3.3442231132583498, expected_t_energy_confinement=3.3442231132583502, @@ -2923,7 +2923,7 @@ class ConfinementTimeParam(NamedTuple): zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, expected_ptrepv=0.07148441348179191, - expected_ptripv=0.06344452856118785, + expected_pden_ion_transport_loss_mw=0.06344452856118785, expected_tauee=3.7242785823911264, expected_t_ion_energy_confinement=3.7242785823911264, expected_t_energy_confinement=3.7242785823911264, @@ -2966,7 +2966,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): ( ptrepv, - ptripv, + pden_ion_transport_loss_mw, t_electron_energy_confinement, t_ion_energy_confinement, t_energy_confinement, @@ -3007,7 +3007,9 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): assert ptrepv == pytest.approx(confinementtimeparam.expected_ptrepv) - assert ptripv == pytest.approx(confinementtimeparam.expected_ptripv) + assert pden_ion_transport_loss_mw == pytest.approx( + confinementtimeparam.expected_pden_ion_transport_loss_mw + ) assert t_electron_energy_confinement == pytest.approx( confinementtimeparam.expected_tauee From 488d9432f1f1d11c53dacba939d1b13e70fd87df Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 3 Feb 2025 16:26:32 +0000 Subject: [PATCH 094/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20ptrepv=20to=20p?= =?UTF-8?q?den=5Felectron=5Ftransport=5Floss=5Fmw=20for=20clarity=20and=20?= =?UTF-8?q?consistency=20across=20the=20codebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 15 +++++----- process/stellarator.py | 7 +++-- source/fortran/constraint_equations.f90 | 12 ++++---- source/fortran/physics_variables.f90 | 4 +-- tests/integration/ref_dicts.json | 6 ++-- tests/unit/test_physics.py | 40 +++++++++++++------------ 6 files changed, 44 insertions(+), 40 deletions(-) diff --git a/process/physics.py b/process/physics.py index f5423e37d8..446be7c9a6 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2248,7 +2248,7 @@ def physics(self): # Calculate transport losses and energy confinement time using the # chosen scaling law ( - physics_variables.ptrepv, + physics_variables.pden_electron_transport_loss_mw, physics_variables.pden_ion_transport_loss_mw, physics_variables.t_electron_energy_confinement, physics_variables.t_energy_confinement, @@ -2283,7 +2283,8 @@ def physics(self): ) physics_variables.ptremw = ( - physics_variables.ptrepv * physics_variables.vol_plasma + physics_variables.pden_electron_transport_loss_mw + * physics_variables.vol_plasma ) physics_variables.ptrimw = ( physics_variables.pden_ion_transport_loss_mw * physics_variables.vol_plasma @@ -2340,7 +2341,7 @@ def physics(self): physics_variables.vol_plasma, ) - # ptremw = physics_variables.ptrepv*physics_variables.vol_plasma + # ptremw = physics_variables.pden_electron_transport_loss_mw*physics_variables.vol_plasma # ptrimw = physics_variables.pden_ion_transport_loss_mw*physics_variables.vol_plasma # Total transport power from scaling law (MW) physics_variables.pscalingmw = ( @@ -6697,7 +6698,7 @@ def calculate_confinement_time( :param zeff: Plasma effective charge :return: Tuple containing: - - ptrepv (float): Electron transport power (MW/m3) + - pden_electron_transport_loss_mw (float): Electron transport power (MW/m3) - pden_ion_transport_loss_mw (float): Ion transport power (MW/m3) - t_electron_energy_confinement (float): Electron energy confinement time (s) - t_ion_energy_confinement (float): Ion energy confinement time (s) @@ -7431,7 +7432,7 @@ def calculate_confinement_time( # Calculation of the transport power loss terms # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV - # (here, tin and ten are in keV, and ptrepv and pden_ion_transport_loss_mw are in MW/m3) + # (here, tin and ten are in keV, and pden_electron_transport_loss_mw and pden_ion_transport_loss_mw are in MW/m3) pden_ion_transport_loss_mw = ( (3 / 2) @@ -7440,7 +7441,7 @@ def calculate_confinement_time( * tin / t_ion_energy_confinement ) - ptrepv = ( + pden_electron_transport_loss_mw = ( (3 / 2) * (constants.electron_charge / 1e3) * dene @@ -7463,7 +7464,7 @@ def calculate_confinement_time( ) / powerht return ( - ptrepv, + pden_electron_transport_loss_mw, pden_ion_transport_loss_mw, t_electron_energy_confinement, t_ion_energy_confinement, diff --git a/process/stellarator.py b/process/stellarator.py index 97ffcf0618..4979426d0d 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -213,7 +213,7 @@ def stigma(self): for iisc, i in enumerate(istlaw): ( - physics_variables.ptrepv, + physics_variables.pden_electron_transport_loss_mw, physics_variables.pden_ion_transport_loss_mw, physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, @@ -4452,7 +4452,7 @@ def stphys(self, output): # N.B. stellarator_variables.iotabar replaces tokamak physics_variables.q95 in argument list ( - physics_variables.ptrepv, + physics_variables.pden_electron_transport_loss_mw, physics_variables.pden_ion_transport_loss_mw, physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, @@ -4489,7 +4489,8 @@ def stphys(self, output): ) physics_variables.ptremw = ( - physics_variables.ptrepv * physics_variables.vol_plasma + physics_variables.pden_electron_transport_loss_mw + * physics_variables.vol_plasma ) physics_variables.ptrimw = ( physics_variables.pden_ion_transport_loss_mw * physics_variables.vol_plasma diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 0d370d0aef..a6eccff848 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -448,7 +448,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! ignite : input integer : switch for ignition assumption:
                        !!
                      • = 0 do not assume plasma ignition; !!
                      • = 1 assume ignited (but include auxiliary power in costs)
                      - !! ptrepv : input real : electron transport power per volume (MW/m3) + !! pden_electron_transport_loss_mw : input real : electron transport power per volume (MW/m3) !! pden_ion_transport_loss_mw : input real : ion transport power per volume (MW/m3) !! pden_plasma_rad_mw : input real : total radiation power per volume (MW/m3) !! pcoreradpv : input real : total core radiation power per volume (MW/m3) @@ -459,7 +459,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! pinjmw : input real : total auxiliary injected power (MW) !! vol_plasma : input real : plasma volume (m3) - use physics_variables, only: i_rad_loss, ignite, ptrepv, pden_ion_transport_loss_mw, pden_plasma_rad_mw, & + use physics_variables, only: i_rad_loss, ignite, pden_electron_transport_loss_mw, pden_ion_transport_loss_mw, pden_plasma_rad_mw, & pcoreradpv, f_alpha_plasma, alpha_power_density_total, charged_power_density, & pden_plasma_ohmic_mw, vol_plasma use current_drive_variables, only: pinjmw @@ -476,7 +476,7 @@ subroutine constraint_eqn_002(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! pscaling : Local real : total transport power per volume (MW/m3) real(dp) :: pscaling real(dp) :: pnumerator, pdenom - pscaling = ptrepv + pden_ion_transport_loss_mw + pscaling = pden_electron_transport_loss_mw + pden_ion_transport_loss_mw ! Total power lost is scaling power plus radiation: if (i_rad_loss == 0) then pnumerator = pscaling + pden_plasma_rad_mw @@ -568,7 +568,7 @@ subroutine constraint_eqn_004(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! ignite : input integer : switch for ignition assumption:
                        !!
                      • = 0 do not assume plasma ignition; !!
                      • = 1 assume ignited (but include auxiliary power in costs)
                      - !! ptrepv : input real : electron transport power per volume (MW/m3) + !! pden_electron_transport_loss_mw : input real : electron transport power per volume (MW/m3) !! pden_plasma_rad_mw : input real : total radiation power per volume (MW/m3) !! pcoreradpv : input real : total core radiation power per volume (MW/m3) !! f_alpha_plasma : input real : fraction of alpha power deposited in plasma @@ -576,7 +576,7 @@ subroutine constraint_eqn_004(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! piepv : input real : ion/electron equilibration power per volume (MW/m3) !! pinjemw : input real : auxiliary injected power to electrons (MW) !! vol_plasma : input real : plasma volume (m3) - use physics_variables, only: i_rad_loss, ignite, ptrepv, pcoreradpv, f_alpha_plasma, & + use physics_variables, only: i_rad_loss, ignite, pden_electron_transport_loss_mw, pcoreradpv, f_alpha_plasma, & alpha_power_electron_density, piepv, vol_plasma, pden_plasma_rad_mw use current_drive_variables, only: pinjemw implicit none @@ -589,7 +589,7 @@ subroutine constraint_eqn_004(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! pscaling : Local real : total transport power per volume (MW/m3) real(dp) :: pscaling real(dp) :: pnumerator, pdenom - pscaling = ptrepv + pscaling = pden_electron_transport_loss_mw ! Total power lost is scaling power plus radiation: if (i_rad_loss == 0) then pnumerator = pscaling + pden_plasma_rad_mw diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 97767add1f..10f199c59b 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -716,7 +716,7 @@ module physics_variables real(dp) :: ptremw !! electron transport power (MW) - real(dp) :: ptrepv + real(dp) :: pden_electron_transport_loss_mw !! electron transport power per volume (MW/m3) real(dp) :: ptrimw @@ -1065,7 +1065,7 @@ subroutine init_physics_variables plhthresh = 0.0D0 pthrmw = 0.0D0 ptremw = 0.0D0 - ptrepv = 0.0D0 + pden_electron_transport_loss_mw = 0.0D0 ptrimw = 0.0D0 pscalingmw = 0.0D0 pden_ion_transport_loss_mw = 0.0D0 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 0fb13bb873..9689369738 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -3679,7 +3679,7 @@ ], "ptpdiv": 0.0, "ptremw": 0.0, - "ptrepv": 0.0, + "pden_electron_transport_loss_mw": 0.0, "ptrimw": 0.0, "pden_ion_transport_loss_mw": 0.0, "pulsetimings": 1.0, @@ -10410,7 +10410,7 @@ "pthrmw": "L-H power threshold for various scalings (MW)\n
                        \n
                      • =1 ITER 1996 scaling: nominal
                      • \n
                      • =2 ITER 1996 scaling: upper bound
                      • \n
                      • =3 ITER 1996 scaling: lower bound
                      • \n
                      • =4 ITER 1997 scaling: excluding elongation
                      • \n
                      • =5 ITER 1997 scaling: including elongation
                      • \n
                      • =6 Martin 2008 scaling: nominal
                      • \n
                      • =7 Martin 2008 scaling: 95% upper bound
                      • \n
                      • =8 Martin 2008 scaling: 95% lower bound
                      • \n
                      • =9 Snipes 2000 scaling: nominal
                      • \n
                      • =10 Snipes 2000 scaling: upper bound
                      • \n
                      • =11 Snipes 2000 scaling: lower bound
                      • \n
                      • =12 Snipes 2000 scaling (closed divertor): nominal
                      • \n
                      • =13 Snipes 2000 scaling (closed divertor): upper bound
                      • \n
                      • =14 Snipes 2000 scaling (closed divertor): lower bound
                      • \n
                      • =15 Hubbard et al. 2012 L-I threshold scaling: nominal
                      • \n
                      • =16 Hubbard et al. 2012 L-I threshold scaling: lower bound
                      • \n
                      • =17 Hubbard et al. 2012 L-I threshold scaling: upper bound
                      • \n
                      • =18 Hubbard et al. 2017 L-I threshold scaling
                      • \n
                      • =19 Martin 2008 aspect ratio corrected scaling: nominal
                      • \n
                      • =20 Martin 2008 aspect ratio corrected scaling: 95% upper bound
                      • \n
                      • =21 Martin 2008 aspect ratio corrected scaling: 95% lower bound
                      • \n
                      ", "ptpdiv": "peak temperature at the plate (eV)", "ptremw": "electron transport power (MW)", - "ptrepv": "electron transport power per volume (MW/m3)", + "pden_electron_transport_loss_mw": "electron transport power per volume (MW/m3)", "ptrimw": "ion transport power (MW)", "pden_ion_transport_loss_mw": "ion transport power per volume (MW/m3)", "pulsetimings": "Switch for pulse timings (if lpulse=1):\n
                        \n
                      • =0, t_current_ramp_up = Ip(MA)/0.1 t_precharge, t_ramp_down = input
                      • \n
                      • =1, t_current_ramp_up = iteration var or input. t_precharge/t_ramp_down max of input or t_current_ramp_up
                      • \n
                      ", @@ -19213,7 +19213,7 @@ "plhthresh", "pthrmw", "ptremw", - "ptrepv", + "pden_electron_transport_loss_mw", "ptrimw", "pscalingmw", "pden_ion_transport_loss_mw", diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index fd144f89a6..69c1c3c3f9 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2243,7 +2243,7 @@ class ConfinementTimeParam(NamedTuple): expected_powerht: Any = None - expected_ptrepv: Any = None + expected_pden_electron_transport_loss_mw: Any = None expected_pden_ion_transport_loss_mw: Any = None @@ -2292,7 +2292,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.012572050692511346, + expected_pden_electron_transport_loss_mw=0.012572050692511346, expected_pden_ion_transport_loss_mw=0.011158066358576262, expected_tauee=21.17616899712392, expected_t_ion_energy_confinement=21.17616899712392, @@ -2334,7 +2334,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.08146744024696746, + expected_pden_electron_transport_loss_mw=0.08146744024696746, expected_pden_ion_transport_loss_mw=0.07230475970642361, expected_tauee=3.2679051814806361, expected_t_ion_energy_confinement=3.2679051814806361, @@ -2376,7 +2376,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.0813367174682195, + expected_pden_electron_transport_loss_mw=0.0813367174682195, expected_pden_ion_transport_loss_mw=0.07218873937883169, expected_tauee=3.2731572946627923, expected_t_ion_energy_confinement=3.2731572946627923, @@ -2418,7 +2418,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.12079262973297819, + expected_pden_electron_transport_loss_mw=0.12079262973297819, expected_pden_ion_transport_loss_mw=0.10720702701193681, expected_tauee=2.2040075681235445, expected_t_ion_energy_confinement=2.2040075681235445, @@ -2460,7 +2460,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.08131814759597392, + expected_pden_electron_transport_loss_mw=0.08131814759597392, expected_pden_ion_transport_loss_mw=0.07217225806867361, expected_tauee=3.2739047552801135, expected_t_ion_energy_confinement=3.2739047552801135, @@ -2502,7 +2502,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.08143510701705373, + expected_pden_electron_transport_loss_mw=0.08143510701705373, expected_pden_ion_transport_loss_mw=0.07227606300977574, expected_tauee=3.269202679985145, expected_t_ion_energy_confinement=3.269202679985145, @@ -2544,7 +2544,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.07271716311087716, + expected_pden_electron_transport_loss_mw=0.07271716311087716, expected_pden_ion_transport_loss_mw=0.06453863027150285, expected_tauee=3.6611421391548524, expected_t_ion_energy_confinement=3.6611421391548524, @@ -2586,7 +2586,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.07853774801394538, + expected_pden_electron_transport_loss_mw=0.07853774801394538, expected_pden_ion_transport_loss_mw=0.06970457130869961, expected_tauee=3.3898077909969717, expected_t_ion_energy_confinement=3.3898077909969717, @@ -2628,7 +2628,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.0840021318362596, + expected_pden_electron_transport_loss_mw=0.0840021318362596, expected_pden_ion_transport_loss_mw=0.07455437336481374, expected_tauee=3.169298972363837, expected_t_ion_energy_confinement=3.169298972363837, @@ -2670,7 +2670,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.08311313602000579, + expected_pden_electron_transport_loss_mw=0.08311313602000579, expected_pden_ion_transport_loss_mw=0.07376536331761714, expected_tauee=3.203198469625145, expected_t_ion_energy_confinement=3.203198469625145, @@ -2712,7 +2712,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.07310605194452542, + expected_pden_electron_transport_loss_mw=0.07310605194452542, expected_pden_ion_transport_loss_mw=0.0648837805988509, expected_tauee=3.6416666339340682, expected_t_ion_energy_confinement=3.6416666339340682, @@ -2754,7 +2754,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.08143238415417252, + expected_pden_electron_transport_loss_mw=0.08143238415417252, expected_pden_ion_transport_loss_mw=0.07227364638853734, expected_tauee=3.2693119926464509, expected_t_ion_energy_confinement=3.2693119926464509, @@ -2796,7 +2796,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.08142885867164847, + expected_pden_electron_transport_loss_mw=0.08142885867164847, expected_pden_ion_transport_loss_mw=0.07227051741865713, expected_tauee=3.2694535383156871, expected_t_ion_energy_confinement=3.2694535383156871, @@ -2838,7 +2838,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.08143011939694184, + expected_pden_electron_transport_loss_mw=0.08143011939694184, expected_pden_ion_transport_loss_mw=0.07227163634959588, expected_tauee=3.2694029195542003, expected_t_ion_energy_confinement=3.2694029195542003, @@ -2880,7 +2880,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.07960828601702878, + expected_pden_electron_transport_loss_mw=0.07960828601702878, expected_pden_ion_transport_loss_mw=0.07065470540932789, expected_tauee=3.3442231132583498, expected_t_ion_energy_confinement=3.3442231132583498, @@ -2922,7 +2922,7 @@ class ConfinementTimeParam(NamedTuple): a_plasma_poloidal=38.39822223637151, zeff=2.4987360098030775, expected_kappa_ipb=1.68145080681586, - expected_ptrepv=0.07148441348179191, + expected_pden_electron_transport_loss_mw=0.07148441348179191, expected_pden_ion_transport_loss_mw=0.06344452856118785, expected_tauee=3.7242785823911264, expected_t_ion_energy_confinement=3.7242785823911264, @@ -2965,7 +2965,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): ) ( - ptrepv, + pden_electron_transport_loss_mw, pden_ion_transport_loss_mw, t_electron_energy_confinement, t_ion_energy_confinement, @@ -3005,7 +3005,9 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): assert powerht == pytest.approx(confinementtimeparam.expected_powerht) - assert ptrepv == pytest.approx(confinementtimeparam.expected_ptrepv) + assert pden_electron_transport_loss_mw == pytest.approx( + confinementtimeparam.expected_pden_electron_transport_loss_mw + ) assert pden_ion_transport_loss_mw == pytest.approx( confinementtimeparam.expected_pden_ion_transport_loss_mw From 85b5967df51f3451214d6e02f68150e86104f80f Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 11:17:56 +0000 Subject: [PATCH 095/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20ptremw=20to=20p?= =?UTF-8?q?=5Felectron=5Ftransport=5Floss=5Fmw=20for=20clarity=20and=20con?= =?UTF-8?q?sistency=20across=20the=20codebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +++++------ process/physics.py | 14 ++++----- process/stellarator.py | 4 +-- source/fortran/physics_variables.f90 | 4 +-- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++++++---------- tests/integration/data/scan_MFILE.DAT | 18 +++++------ tests/integration/ref_dicts.json | 6 ++-- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- 18 files changed, 58 insertions(+), 58 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 6eac7cca17..0d2e5af600 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -457,7 +457,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2139E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7861E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3659E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5338E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5338E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5213E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 4fa1f2ff70..fc7d0f46a8 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 64b11972a8..b1638ecaa2 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index f4d9ae750b..9beb2c83fc 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index c08dd10400..8335d972fd 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 1ac5c5a00c..edc565727f 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -310,7 +310,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -1305,7 +1305,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -2300,7 +2300,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -3295,7 +3295,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -4290,7 +4290,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -5285,7 +5285,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -6280,7 +6280,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -7275,7 +7275,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -8270,7 +8270,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/process/physics.py b/process/physics.py index 446be7c9a6..a7b136cf5c 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2282,15 +2282,15 @@ def physics(self): physics_variables.zeff, ) - physics_variables.ptremw = ( + # Total transport power from scaling law (MW) + physics_variables.p_electron_transport_loss_mw = ( physics_variables.pden_electron_transport_loss_mw * physics_variables.vol_plasma ) physics_variables.ptrimw = ( physics_variables.pden_ion_transport_loss_mw * physics_variables.vol_plasma ) - # Total transport power from scaling law (MW) - # pscalingmw = physics_variables.ptremw + physics_variables.ptrimw #KE - why is this commented? + # Calculate Volt-second requirements ( @@ -2341,11 +2341,11 @@ def physics(self): physics_variables.vol_plasma, ) - # ptremw = physics_variables.pden_electron_transport_loss_mw*physics_variables.vol_plasma + # p_electron_transport_loss_mw = physics_variables.pden_electron_transport_loss_mw*physics_variables.vol_plasma # ptrimw = physics_variables.pden_ion_transport_loss_mw*physics_variables.vol_plasma # Total transport power from scaling law (MW) physics_variables.pscalingmw = ( - physics_variables.ptremw + physics_variables.ptrimw + physics_variables.p_electron_transport_loss_mw + physics_variables.ptrimw ) # Calculate physics_variables.beta limit @@ -4834,8 +4834,8 @@ def outplas(self): po.ovarre( self.outfile, "Electron transport (MW)", - "(ptremw)", - physics_variables.ptremw, + "(p_electron_transport_loss_mw)", + physics_variables.p_electron_transport_loss_mw, "OP ", ) po.ovarre( diff --git a/process/stellarator.py b/process/stellarator.py index 4979426d0d..88578d292b 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -4488,7 +4488,7 @@ def stphys(self, output): physics_variables.zeff, ) - physics_variables.ptremw = ( + physics_variables.p_electron_transport_loss_mw = ( physics_variables.pden_electron_transport_loss_mw * physics_variables.vol_plasma ) @@ -4497,7 +4497,7 @@ def stphys(self, output): ) physics_variables.pscalingmw = ( - physics_variables.ptremw + physics_variables.ptrimw + physics_variables.p_electron_transport_loss_mw + physics_variables.ptrimw ) # Calculate auxiliary physics related information diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 10f199c59b..5892757e0b 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -713,7 +713,7 @@ module physics_variables !! - =20 Martin 2008 aspect ratio corrected scaling: 95% upper bound !! - =21 Martin 2008 aspect ratio corrected scaling: 95% lower bound - real(dp) :: ptremw + real(dp) :: p_electron_transport_loss_mw !! electron transport power (MW) real(dp) :: pden_electron_transport_loss_mw @@ -1064,7 +1064,7 @@ subroutine init_physics_variables ilhthresh = 19 plhthresh = 0.0D0 pthrmw = 0.0D0 - ptremw = 0.0D0 + p_electron_transport_loss_mw = 0.0D0 pden_electron_transport_loss_mw = 0.0D0 ptrimw = 0.0D0 pscalingmw = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index c12e5c3ced..5ff015a120 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 00fdcd300d..9e23573ec2 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index cc9513dbca..4cbaf2cb0a 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index c4774ae6a7..a647d81895 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5772E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 9bc79eaa36..1c0146d1dc 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -450,7 +450,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1742E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8258E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3990E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5739E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5739E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.9710E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 8919324e5a..b13a8cdb63 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -455,7 +455,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2311E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7689E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3844E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5405E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5405E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -1618,7 +1618,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2311E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7689E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3962E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5532E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5532E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -2781,7 +2781,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2311E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7689E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4019E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5603E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5603E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5559E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -3944,7 +3944,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2187E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7813E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4011E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5610E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5610E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -5107,7 +5107,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2187E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7813E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4038E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5630E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5630E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -6270,7 +6270,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2187E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7813E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5588E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5588E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -7433,7 +7433,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2063E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7937E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4026E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5618E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5618E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -8596,7 +8596,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2063E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7937E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4038E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5636E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5636E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -9759,7 +9759,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2063E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7937E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4002E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5600E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5600E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -10922,7 +10922,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1939E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8061E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4060E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5683E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5683E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -12085,7 +12085,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1939E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8061E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4104E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5733E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5733E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -13248,7 +13248,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1939E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8061E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4100E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5722E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5722E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -14411,7 +14411,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1815E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8185E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4146E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5792E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5792E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -15574,7 +15574,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1815E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8185E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4201E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5863E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5863E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -16737,7 +16737,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1815E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8185E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4257E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5936E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5936E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 17db874555..50194c56c9 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -310,7 +310,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -1305,7 +1305,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -2300,7 +2300,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -3295,7 +3295,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -4290,7 +4290,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -5285,7 +5285,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -6280,7 +6280,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -7275,7 +7275,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 @@ -8270,7 +8270,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.7258E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 9689369738..a2f50fca9f 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -3678,7 +3678,7 @@ 0.0 ], "ptpdiv": 0.0, - "ptremw": 0.0, + "p_electron_transport_loss_mw": 0.0, "pden_electron_transport_loss_mw": 0.0, "ptrimw": 0.0, "pden_ion_transport_loss_mw": 0.0, @@ -10409,7 +10409,7 @@ "pthermshld": "", "pthrmw": "L-H power threshold for various scalings (MW)\n
                        \n
                      • =1 ITER 1996 scaling: nominal
                      • \n
                      • =2 ITER 1996 scaling: upper bound
                      • \n
                      • =3 ITER 1996 scaling: lower bound
                      • \n
                      • =4 ITER 1997 scaling: excluding elongation
                      • \n
                      • =5 ITER 1997 scaling: including elongation
                      • \n
                      • =6 Martin 2008 scaling: nominal
                      • \n
                      • =7 Martin 2008 scaling: 95% upper bound
                      • \n
                      • =8 Martin 2008 scaling: 95% lower bound
                      • \n
                      • =9 Snipes 2000 scaling: nominal
                      • \n
                      • =10 Snipes 2000 scaling: upper bound
                      • \n
                      • =11 Snipes 2000 scaling: lower bound
                      • \n
                      • =12 Snipes 2000 scaling (closed divertor): nominal
                      • \n
                      • =13 Snipes 2000 scaling (closed divertor): upper bound
                      • \n
                      • =14 Snipes 2000 scaling (closed divertor): lower bound
                      • \n
                      • =15 Hubbard et al. 2012 L-I threshold scaling: nominal
                      • \n
                      • =16 Hubbard et al. 2012 L-I threshold scaling: lower bound
                      • \n
                      • =17 Hubbard et al. 2012 L-I threshold scaling: upper bound
                      • \n
                      • =18 Hubbard et al. 2017 L-I threshold scaling
                      • \n
                      • =19 Martin 2008 aspect ratio corrected scaling: nominal
                      • \n
                      • =20 Martin 2008 aspect ratio corrected scaling: 95% upper bound
                      • \n
                      • =21 Martin 2008 aspect ratio corrected scaling: 95% lower bound
                      • \n
                      ", "ptpdiv": "peak temperature at the plate (eV)", - "ptremw": "electron transport power (MW)", + "p_electron_transport_loss_mw": "electron transport power (MW)", "pden_electron_transport_loss_mw": "electron transport power per volume (MW/m3)", "ptrimw": "ion transport power (MW)", "pden_ion_transport_loss_mw": "ion transport power per volume (MW/m3)", @@ -19212,7 +19212,7 @@ "ilhthresh", "plhthresh", "pthrmw", - "ptremw", + "p_electron_transport_loss_mw", "pden_electron_transport_loss_mw", "ptrimw", "pscalingmw", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 51eb77ffae..58cc709a7d 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -450,7 +450,7 @@ Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1742E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8258E-01 Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3990E+02 OP - Electron_transport_(MW)_________________________________________________ (ptremw)______________________ 1.5739E+02 OP + Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5739E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.9710E+01 OP Ignited_plasma_switch_(0=not_ignited,_1=ignited)________________________ (ignite)______________________ 0 From 6822c453935ecca144303b4dbfad657711896ccf Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 11:19:50 +0000 Subject: [PATCH 096/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20ptrimw=20to=20p?= =?UTF-8?q?=5Fion=5Ftransport=5Floss=5Fmw=20for=20clarity=20and=20consiste?= =?UTF-8?q?ncy=20across=20the=20codebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +++++------ process/physics.py | 12 ++++---- process/stellarator.py | 5 ++-- source/fortran/physics_variables.f90 | 4 +-- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +++++++++---------- tests/integration/data/scan_MFILE.DAT | 18 +++++------ tests/integration/ref_dicts.json | 6 ++-- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- 18 files changed, 58 insertions(+), 57 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 0d2e5af600..d875db4398 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -456,7 +456,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2139E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7861E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3659E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.3659E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5338E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5213E+01 OP diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index fc7d0f46a8..3b769a9048 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index b1638ecaa2..95c20cf3c1 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 9beb2c83fc..1d767dca56 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 8335d972fd..f4d132919d 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index edc565727f..7beda0979c 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -309,7 +309,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -1304,7 +1304,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -2299,7 +2299,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -3294,7 +3294,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -4289,7 +4289,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -5284,7 +5284,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -6279,7 +6279,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -7274,7 +7274,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -8269,7 +8269,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP diff --git a/process/physics.py b/process/physics.py index a7b136cf5c..4daedb1ff6 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2287,11 +2287,10 @@ def physics(self): physics_variables.pden_electron_transport_loss_mw * physics_variables.vol_plasma ) - physics_variables.ptrimw = ( + physics_variables.p_ion_transport_loss_mw = ( physics_variables.pden_ion_transport_loss_mw * physics_variables.vol_plasma ) - # Calculate Volt-second requirements ( physics_variables.phiint, @@ -2342,10 +2341,11 @@ def physics(self): ) # p_electron_transport_loss_mw = physics_variables.pden_electron_transport_loss_mw*physics_variables.vol_plasma - # ptrimw = physics_variables.pden_ion_transport_loss_mw*physics_variables.vol_plasma + # p_ion_transport_loss_mw = physics_variables.pden_ion_transport_loss_mw*physics_variables.vol_plasma # Total transport power from scaling law (MW) physics_variables.pscalingmw = ( - physics_variables.p_electron_transport_loss_mw + physics_variables.ptrimw + physics_variables.p_electron_transport_loss_mw + + physics_variables.p_ion_transport_loss_mw ) # Calculate physics_variables.beta limit @@ -4827,8 +4827,8 @@ def outplas(self): po.ovarre( self.outfile, "Ion transport (MW)", - "(ptrimw)", - physics_variables.ptrimw, + "(p_ion_transport_loss_mw)", + physics_variables.p_ion_transport_loss_mw, "OP ", ) po.ovarre( diff --git a/process/stellarator.py b/process/stellarator.py index 88578d292b..99ea895e3b 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -4492,12 +4492,13 @@ def stphys(self, output): physics_variables.pden_electron_transport_loss_mw * physics_variables.vol_plasma ) - physics_variables.ptrimw = ( + physics_variables.p_ion_transport_loss_mw = ( physics_variables.pden_ion_transport_loss_mw * physics_variables.vol_plasma ) physics_variables.pscalingmw = ( - physics_variables.p_electron_transport_loss_mw + physics_variables.ptrimw + physics_variables.p_electron_transport_loss_mw + + physics_variables.p_ion_transport_loss_mw ) # Calculate auxiliary physics related information diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 5892757e0b..ed4e2ff876 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -719,7 +719,7 @@ module physics_variables real(dp) :: pden_electron_transport_loss_mw !! electron transport power per volume (MW/m3) - real(dp) :: ptrimw + real(dp) :: p_ion_transport_loss_mw !! ion transport power (MW) real(dp) :: pscalingmw @@ -1066,7 +1066,7 @@ subroutine init_physics_variables pthrmw = 0.0D0 p_electron_transport_loss_mw = 0.0D0 pden_electron_transport_loss_mw = 0.0D0 - ptrimw = 0.0D0 + p_ion_transport_loss_mw = 0.0D0 pscalingmw = 0.0D0 pden_ion_transport_loss_mw = 0.0D0 q = 3.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index 5ff015a120..010eb2a5d7 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -452,7 +452,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index 9e23573ec2..f32feb3d7c 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 4cbaf2cb0a..8b81033440 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index a647d81895..c746347f1c 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -453,7 +453,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1828E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8172E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5772E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 8.0143E+01 OP diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 1c0146d1dc..977cdc4157 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -449,7 +449,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1742E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8258E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3990E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.3990E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5739E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.9710E+01 OP diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index b13a8cdb63..eca01d9bfd 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -454,7 +454,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2311E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7689E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3844E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.3844E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5405E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -1617,7 +1617,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2311E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7689E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3962E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.3962E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5532E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -2780,7 +2780,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2311E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7689E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4019E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4019E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5603E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5559E+01 OP @@ -3943,7 +3943,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2187E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7813E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4011E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4011E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5610E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -5106,7 +5106,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2187E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7813E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4038E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4038E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5630E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -6269,7 +6269,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2187E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7813E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4013E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4013E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5588E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -7432,7 +7432,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2063E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7937E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4026E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4026E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5618E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -8595,7 +8595,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2063E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7937E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4038E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4038E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5636E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -9758,7 +9758,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.2063E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.7937E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4002E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4002E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5600E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -10921,7 +10921,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1939E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8061E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4060E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4060E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5683E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -12084,7 +12084,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1939E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8061E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4104E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4104E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5733E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -13247,7 +13247,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1939E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8061E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4100E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4100E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5722E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -14410,7 +14410,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1815E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8185E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4146E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4146E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5792E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -15573,7 +15573,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1815E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8185E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4201E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4201E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5863E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP @@ -16736,7 +16736,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1815E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8185E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.4257E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.4257E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5936E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.5000E+01 OP diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 50194c56c9..ff4cc353b0 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -309,7 +309,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -1304,7 +1304,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -2299,7 +2299,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -3294,7 +3294,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -4289,7 +4289,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -5284,7 +5284,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -6279,7 +6279,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -7274,7 +7274,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP @@ -8269,7 +8269,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1857E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8143E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.5736E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.5736E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.7258E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 5.1000E+01 OP diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index a2f50fca9f..829591a207 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -3680,7 +3680,7 @@ "ptpdiv": 0.0, "p_electron_transport_loss_mw": 0.0, "pden_electron_transport_loss_mw": 0.0, - "ptrimw": 0.0, + "p_ion_transport_loss_mw": 0.0, "pden_ion_transport_loss_mw": 0.0, "pulsetimings": 1.0, "pumpareafraction": 0.0203, @@ -10411,7 +10411,7 @@ "ptpdiv": "peak temperature at the plate (eV)", "p_electron_transport_loss_mw": "electron transport power (MW)", "pden_electron_transport_loss_mw": "electron transport power per volume (MW/m3)", - "ptrimw": "ion transport power (MW)", + "p_ion_transport_loss_mw": "ion transport power (MW)", "pden_ion_transport_loss_mw": "ion transport power per volume (MW/m3)", "pulsetimings": "Switch for pulse timings (if lpulse=1):\n
                        \n
                      • =0, t_current_ramp_up = Ip(MA)/0.1 t_precharge, t_ramp_down = input
                      • \n
                      • =1, t_current_ramp_up = iteration var or input. t_precharge/t_ramp_down max of input or t_current_ramp_up
                      • \n
                      ", "pumpareafraction": "area of one pumping port as a fraction of plasma surface area", @@ -19214,7 +19214,7 @@ "pthrmw", "p_electron_transport_loss_mw", "pden_electron_transport_loss_mw", - "ptrimw", + "p_ion_transport_loss_mw", "pscalingmw", "pden_ion_transport_loss_mw", "q", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index 58cc709a7d..fc701f6a4e 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -449,7 +449,7 @@ Fraction_of_alpha_power_deposited_in_plasma_____________________________ (falpha)______________________ 9.5000E-01 Fraction_of_alpha_power_to_electrons____________________________________ (falpe)_______________________ 7.1742E-01 Fraction_of_alpha_power_to_ions_________________________________________ (falpi)_______________________ 2.8258E-01 - Ion_transport_(MW)______________________________________________________ (ptrimw)______________________ 1.3990E+02 OP + Ion_transport_(MW)______________________________________________________ (p_ion_transport_loss_mw)______________________ 1.3990E+02 OP Electron_transport_(MW)_________________________________________________ (p_electron_transport_loss_mw)______________________ 1.5739E+02 OP Injection_power_to_ions_(MW)____________________________________________ (pinjimw)_____________________ 0.0000E+00 OP Injection_power_to_electrons_(MW)_______________________________________ (pinjemw)_____________________ 7.9710E+01 OP From 53606196c3149c51cc91163d41ef2a4b0721657e Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 11:59:38 +0000 Subject: [PATCH 097/106] =?UTF-8?q?=F0=9F=94=84=20Update=20plasma=20confin?= =?UTF-8?q?ement=20documentation=20for=20clarity=20and=20consistency=20in?= =?UTF-8?q?=20energy=20loss=20power=20calculations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 57 +++---------------- 1 file changed, 9 insertions(+), 48 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index c59cda72a5..1741d11c77 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -630,64 +630,25 @@ $$ ------------------------- - -### Effect of radiation on energy confinement - -Published confinement scalings are all based on low radiation pulses. A power -plant will certainly be a high radiation machine --- both in the core, due to -bremsstrahlung and synchrotron radiation, and in the edge due to impurity -seeding. The scaling data do not predict this radiation --- that needs to be -done by the radiation model. However, if the transport is very "stiff", as -predicted by some models, then the additional radiation causes an almost equal -drop in power transported by ions and electrons, leaving the confinement -nearly unchanged. - -To allow for these uncertainties, three options are available, using the switch -`iradloss`. In each case, the particle transport loss power `pscaling` is -derived directly from the energy confinement scaling law. - -`iradloss = 0` -- Total power lost is scaling power plus radiation: - -`pscaling + pden_plasma_rad_mw = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` - - -`iradloss = 1` -- Total power lost is scaling power plus radiation from a region defined as the "core": - -`pscaling + pcoreradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` - -`iradloss = 2` -- Total power lost is scaling power only, with no additional -allowance for radiation. This is not recommended for power plant models. - -`pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` - - - - ------------------- - ## Key Constraints ### Global plasma power balance This constraint can be activated by stating `icc = 2` in the input file. -To allow for these uncertainties, three options are available, using the switch -`i_rad_loss`. In each case, the particle transport loss power `pscaling` is -derived directly from the energy confinement scaling law. - -`i_rad_loss = 0` -- Total power lost is scaling power plus radiation: - -`pscaling + pradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` +This constraint ensures self consistency between the the transport loss power used for the confinement scalings and the calculated confinement time in relation to the plasmas total thermal energy. +$$ +P_{\text{L}} = \frac{W}{\tau_{\text{E}}} +$$ -`i_rad_loss = 1` -- Total power lost is scaling power plus radiation from a region defined as the "core": - -`pscaling + pcoreradpv = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` +$$ +\underbrace{\frac{3}{2}\frac{n_{\text{i}} \langle T_{\text{i}} \rangle_{\text{n}}}{\tau_{\text{E}}} + \frac{3}{2}\frac{n_{\text{e}} \langle T_{\text{e}} \rangle_{\text{n}}}{\tau_{\text{E}}}}_{\frac{W}{\tau_{\text{E}}}} = \underbrace{\frac{f_{\alpha}P_{\alpha} + P_{\text{c}} + P_{\text{OH}} + P_{\text{HCD}}}{V_{\text{P}}} - \frac{P_{\text{rad}}}{V_{\text{p}}}}_{P_{\text{L}}} +$$ -`i_rad_loss = 2` -- Total power lost is scaling power only, with no additional -allowance for radiation. This is not recommended for power plant models. +The $\frac{3}{2}n_{\text{i}} \langle T_{\text{i}} \rangle_{\text{n}}$ value is simply the volume averaged ion thermal energy density where $\langle T_{\text{i}} \rangle_{\text{n}}$ is the density weighted temperature. The same goes for the $\frac{3}{2}n_{\text{e}} \langle T_{\text{e}} \rangle_{\text{e}}$ electron thermal energy density term. $\tau_{\text{E}}$ is the confinement time calculated from the chosen confinement scaling via `i_confinement_time`. -`pscaling = f_alpha_plasma*alpha_power_density_total + charged_power_density + pden_plasma_ohmic_mw + pinjmw/vol_plasma` +The constraint is done using the loss power and thermal densities hence the inclusion of the $V_{\text{p}}$ plasma volume term. The constraint is adapted depending on the condition of `i_rad_loss` which governs the radiation contribution to the loss power definition, see the [radiation and energy confinement section](#effect-of-radiation-on-energy-confinement) for more info. The injected heating and current drive contribution $P_{\text{HCD}}$ is also included or excluded depending if the plasma is deemed to be ignited with the `ignite` switch. **It is highly recommended to always have this constraint on as it is a global consistency checker** From 8f3e8b52b92ada94fcad7cf4227e7f110ecf0265 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 12:01:28 +0000 Subject: [PATCH 098/106] =?UTF-8?q?=F0=9F=94=84=20Rename=20ftaulimit=20to?= =?UTF-8?q?=20falpha=5Fenergy=5Fconfinement=20for=20clarity=20and=20consis?= =?UTF-8?q?tency=20across=20input=20files=20and=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 2 +- .../data/csv_output_large_tokamak_MFILE.DAT | 8 +++---- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/large_tokamak_IN.DAT | 2 +- examples/data/scan_MFILE.DAT | 4 ++-- examples/data/scan_example_file_IN.DAT | 2 +- source/fortran/constraint_equations.f90 | 8 +++---- source/fortran/constraint_variables.f90 | 4 ++-- source/fortran/input.f90 | 6 ++--- source/fortran/iteration_variables.f90 | 12 +++++----- source/fortran/numerics.f90 | 2 +- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- tests/integration/data/large_tokamak_IN.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/ref_IN.DAT | 4 ++-- tests/integration/data/scan_2D_MFILE.DAT | 2 +- tests/integration/data/scan_MFILE.DAT | 4 ++-- .../data/uncertainties_nonopt_ref_IN.DAT | 4 ++-- .../integration/data/uncertainties_ref_IN.DAT | 4 ++-- tests/integration/ref_dicts.json | 24 +++++++++---------- .../input_files/large_tokamak.IN.DAT | 2 +- .../input_files/st_regression.IN.DAT | 2 +- .../regression/input_files/stellarator.IN.DAT | 2 +- tests/unit/data/large_tokamak_IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- 31 files changed, 61 insertions(+), 61 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 1741d11c77..c496c0045f 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -660,7 +660,7 @@ This constraint can be activated by stating `icc = 62` in the input file. The value of `f_alpha_energy_confinement_min` can be set to the desired minimum total ratio between the alpha confinement and energy confinement times. - The scaling value `ftaulimit` can be varied also. + The scaling value `falpha_energy_confinement` can be varied also. [^1]: N. A. Uckan, International Atomic Energy Agency, Vienna (Austria) and ITER Physics Group, "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. [^2]: T.C. Hender et al., 'Physics Assessment of the European Reactor Study', AEA FUS 172, 1992. diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index d875db4398..7619df1944 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -82,9 +82,9 @@ ftmargoh________________________________________________________________ (itvar020)____________________ 1.0000E+00 ftmargoh_(final_value/initial_value)____________________________________ (xcm020)______________________ 1.0000E+00 ftmargoh_(range_normalised)_____________________________________________ (nitvar020)___________________ 1.0000E+00 - ftaulimit_______________________________________________________________ (itvar021)____________________ 7.2549E-01 - ftaulimit_(final_value/initial_value)___________________________________ (xcm021)______________________ 7.2549E-01 - ftaulimit_(range_normalised)____________________________________________ (nitvar021)___________________ 7.2521E-01 + falpha_energy_confinement_______________________________________________________________ (itvar021)____________________ 7.2549E-01 + falpha_energy_confinement_(final_value/initial_value)___________________________________ (xcm021)______________________ 7.2549E-01 + falpha_energy_confinement_(range_normalised)____________________________________________ (nitvar021)___________________ 7.2521E-01 ftaucq__________________________________________________________________ (itvar022)____________________ 9.1920E-01 ftaucq_(final_value/initial_value)______________________________________ (xcm022)______________________ 1.0213E+00 ftaucq_(range_normalised)_______________________________________________ (nitvar022)___________________ 9.1912E-01 @@ -1349,7 +1349,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 3b769a9048..529a186cda 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 95c20cf3c1..084e53bbfc 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 1d767dca56..c1d90cafa2 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index f4d132919d..bd9fc28635 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/examples/data/large_tokamak_IN.DAT b/examples/data/large_tokamak_IN.DAT index 1b3611a106..954c779ae8 100644 --- a/examples/data/large_tokamak_IN.DAT +++ b/examples/data/large_tokamak_IN.DAT @@ -154,7 +154,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 7beda0979c..0e7dc5d6d9 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -9069,7 +9069,7 @@ ixc = 106 * ftmargoh ixc = 122 * oh_steel_frac ixc = 123 * foh_stress ixc = 109 * f_nd_alpha_electron -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement isweep = 9 nsweep = 60 @@ -9352,4 +9352,4 @@ t_burn = 1.0d4 * Burn time (s) (calculated if lpulse=1) oh_steel_frac = 5.7875E-01 foh_stress = 1.0000E+00 f_nd_alpha_electron = 6.8940E-02 - ftaulimit = 1.0000E+00 \ No newline at end of file + falpha_energy_confinement = 1.0000E+00 \ No newline at end of file diff --git a/examples/data/scan_example_file_IN.DAT b/examples/data/scan_example_file_IN.DAT index b4e6c1db93..c79826c230 100644 --- a/examples/data/scan_example_file_IN.DAT +++ b/examples/data/scan_example_file_IN.DAT @@ -154,7 +154,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index a6eccff848..3ab65fdea9 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -2452,14 +2452,14 @@ subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! residual error in physical units; output string; units string !! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times !! #=# physics - !! #=#=# ftaulimit, f_alpha_energy_confinement_min + !! #=#=# falpha_energy_confinement, f_alpha_energy_confinement_min !! and hence also optional here. !! Logic change during pre-factoring: err, symbol, units will be assigned only if present. - !! ftaulimit : input real : f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement + !! falpha_energy_confinement : input real : f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement !! t_alpha_confinement : input real : alpha particle confinement time (s) !! t_energy_confinement : input real : global thermal energy confinement time (sec) !! f_alpha_energy_confinement_min : input real : Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times - use constraint_variables, only: ftaulimit, f_alpha_energy_confinement_min + use constraint_variables, only: falpha_energy_confinement, f_alpha_energy_confinement_min use physics_variables, only: t_alpha_confinement, t_energy_confinement implicit none real(dp), intent(out) :: tmp_cc @@ -2468,7 +2468,7 @@ subroutine constraint_eqn_062(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) character(len=1), intent(out) :: tmp_symbol character(len=10), intent(out) :: tmp_units - tmp_cc = 1.0D0 - ftaulimit * (t_alpha_confinement / t_energy_confinement) / f_alpha_energy_confinement_min + tmp_cc = 1.0D0 - falpha_energy_confinement * (t_alpha_confinement / t_energy_confinement) / f_alpha_energy_confinement_min tmp_con = f_alpha_energy_confinement_min tmp_err = (t_alpha_confinement / t_energy_confinement) * tmp_cc tmp_symbol = '>' diff --git a/source/fortran/constraint_variables.f90 b/source/fortran/constraint_variables.f90 index 32a7540b20..5292ff4936 100644 --- a/source/fortran/constraint_variables.f90 +++ b/source/fortran/constraint_variables.f90 @@ -283,7 +283,7 @@ module constraint_variables !! Lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement !! times (`constraint equation 62`) - real(dp) :: ftaulimit + real(dp) :: falpha_energy_confinement !! f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy !! confinement times (`constraint equation 62`, `iteration variable 110`) @@ -391,7 +391,7 @@ subroutine init_constraint_variables vvhealw = 1.0D0 walalw = 1.0D0 f_alpha_energy_confinement_min = 5.0D0 - ftaulimit = 1.0D0 + falpha_energy_confinement = 1.0D0 fniterpump = 1.0D0 zeffmax = 3.6D0 fpoloidalpower = 1.0D0 diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index 10e87ce992..b4f4695920 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -234,7 +234,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) fgamcd, ftbr, mvalim, f_alpha_energy_confinement_min, walalw, fmva, fradpwr, nflutfmax, fipir, & fauxmn, fiooic,fr_conducting_wall, fjohc0, frminor, psepbqarmax, ftpeak, bigqmin, & fstrcond, fptemp, ftmargoh, fvs, fbeta_max, vvhealw, fpnetel, ft_burn, & - ffuspow, fpsepr, ptfnucmax, fvdump, pdivtlim, ftaulimit, nbshinefmax, & + ffuspow, fpsepr, ptfnucmax, fvdump, pdivtlim, falpha_energy_confinement, nbshinefmax, & fcqt, fzeffmax, fstrcase, fhldiv, foh_stress, fwalld, gammax, fjprot, & ft_current_ramp_up, tcycmn, auxmin, zeffmax, f_fw_rad_max, fdtmp, fpoloidalpower, & fnbshinef, freinke, fvvhe, fqval, fq, fmaxvvstress, fbeta_poloidal, fbeta_poloidal_eps, fjohc, & @@ -602,8 +602,8 @@ subroutine parse_input_file(in_file,out_file,show_changes) case ('fnesep') call parse_real_variable('fnesep', fnesep, 0.1D0, 2.0D1, & 'f-value for Eich critical separatrix density') - case ('ftaulimit') - call parse_real_variable('ftaulimit', ftaulimit, 0.001D0, 1.0D0, & + case ('falpha_energy_confinement') + call parse_real_variable('falpha_energy_confinement', falpha_energy_confinement, 0.001D0, 1.0D0, & 'f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times') case ('f_tritium') call parse_real_variable('f_tritium', f_tritium, 0.0D0, 1.0D0, & diff --git a/source/fortran/iteration_variables.f90 b/source/fortran/iteration_variables.f90 index 80dce77336..8a6ef5058e 100755 --- a/source/fortran/iteration_variables.f90 +++ b/source/fortran/iteration_variables.f90 @@ -2387,26 +2387,26 @@ end subroutine set_itv_109 !--------------------------------- subroutine init_itv_110 - !!
                    • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha + !!
                    • (110) falpha_energy_confinement: Lower limit on f_alpha_energy_confinement the ratio of alpha use numerics, only: lablxc, boundl, boundu implicit none !! particle to energy confinement times (f-value for equation 62) - lablxc(110) = 'ftaulimit ' + lablxc(110) = 'falpha_energy_confinement ' boundl(110) = 0.001D0 boundu(110) = 1.000D0 end subroutine init_itv_110 real(kind(1.d0)) function itv_110() - use constraint_variables, only: ftaulimit + use constraint_variables, only: falpha_energy_confinement implicit none - itv_110 = ftaulimit + itv_110 = falpha_energy_confinement end function itv_110 subroutine set_itv_110(ratio) - use constraint_variables, only: ftaulimit + use constraint_variables, only: falpha_energy_confinement implicit none real(kind(1.d0)) :: ratio - ftaulimit = ratio + falpha_energy_confinement = ratio end subroutine set_itv_110 !--------------------------------- diff --git a/source/fortran/numerics.f90 b/source/fortran/numerics.f90 index f57138e80a..ed437e58f4 100755 --- a/source/fortran/numerics.f90 +++ b/source/fortran/numerics.f90 @@ -311,7 +311,7 @@ module numerics !!
                    • (107) favail (f-value for equation 61) !!
                    • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4) !!
                    • (109) f_nd_alpha_electron: thermal alpha density / electron density - !!
                    • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha + !!
                    • (110) falpha_energy_confinement: Lower limit on f_alpha_energy_confinement the ratio of alpha !!
                    • (111) fniterpump: f-value for constraint that number !!
                    • (112) fzeffmax: f-value for max Zeff (f-value for equation 64) !!
                    • (113) ftaucq: f-value for minimum quench time (f-value for equation 65) diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index 010eb2a5d7..a80969b458 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -1343,7 +1343,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index f32feb3d7c..e3678bff45 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 8b81033440..52ed1d8cb7 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index c746347f1c..a476dc6451 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -1344,7 +1344,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/integration/data/large_tokamak_IN.DAT b/tests/integration/data/large_tokamak_IN.DAT index 8e576e9c59..550b519893 100644 --- a/tests/integration/data/large_tokamak_IN.DAT +++ b/tests/integration/data/large_tokamak_IN.DAT @@ -154,7 +154,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 977cdc4157..25817374dc 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/integration/data/ref_IN.DAT b/tests/integration/data/ref_IN.DAT index 1a1917c03e..424924ace1 100644 --- a/tests/integration/data/ref_IN.DAT +++ b/tests/integration/data/ref_IN.DAT @@ -90,7 +90,7 @@ ixc = 106 * ftmargoh ixc = 122 * oh_steel_frac ixc = 123 * foh_stress ixc = 109 * f_nd_alpha_electron -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement *isweep = 3 *nsweep = 17 @@ -372,4 +372,4 @@ t_burn = 1.0d4 * Burn time (s) (calculated if lpulse=1) oh_steel_frac = 5.7875E-01 foh_stress = 1.0000E+00 f_nd_alpha_electron = 6.8940E-02 - ftaulimit = 1.0000E+00 \ No newline at end of file + falpha_energy_confinement = 1.0000E+00 \ No newline at end of file diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index eca01d9bfd..45a100fa3e 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -17639,7 +17639,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index ff4cc353b0..208e5e07fb 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -9069,7 +9069,7 @@ ixc = 106 * ftmargoh ixc = 122 * oh_steel_frac ixc = 123 * foh_stress ixc = 109 * f_nd_alpha_electron -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement isweep = 9 nsweep = 60 @@ -9352,4 +9352,4 @@ t_burn = 1.0d4 * Burn time (s) (calculated if lpulse=1) oh_steel_frac = 5.7875E-01 foh_stress = 1.0000E+00 f_nd_alpha_electron = 6.8940E-02 - ftaulimit = 1.0000E+00 \ No newline at end of file + falpha_energy_confinement = 1.0000E+00 \ No newline at end of file diff --git a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT index fc185173cd..8502c1a43e 100644 --- a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT +++ b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT @@ -90,7 +90,7 @@ ixc = 106 * ftmargoh ixc = 122 * oh_steel_frac ixc = 123 * foh_stress ixc = 109 * f_nd_alpha_electron -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement *isweep = 3 *nsweep = 17 @@ -372,4 +372,4 @@ t_burn = 1.0d4 * Burn time (s) (calculated if lpulse=1) oh_steel_frac = 5.7875E-01 foh_stress = 1.0000E+00 f_nd_alpha_electron = 6.8940E-02 - ftaulimit = 1.0000E+00 \ No newline at end of file + falpha_energy_confinement = 1.0000E+00 \ No newline at end of file diff --git a/tests/integration/data/uncertainties_ref_IN.DAT b/tests/integration/data/uncertainties_ref_IN.DAT index 6d5c33eba8..bb32cbe88c 100644 --- a/tests/integration/data/uncertainties_ref_IN.DAT +++ b/tests/integration/data/uncertainties_ref_IN.DAT @@ -90,7 +90,7 @@ ixc = 106 * ftmargoh ixc = 122 * oh_steel_frac ixc = 123 * foh_stress ixc = 109 * f_nd_alpha_electron -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement *isweep = 3 *nsweep = 17 @@ -372,4 +372,4 @@ t_burn = 1.0d4 * Burn time (s) (calculated if lpulse=1) oh_steel_frac = 5.7875E-01 foh_stress = 1.0000E+00 f_nd_alpha_electron = 6.8940E-02 - ftaulimit = 1.0000E+00 \ No newline at end of file + falpha_energy_confinement = 1.0000E+00 \ No newline at end of file diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 829591a207..a449e452f4 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -2041,7 +2041,7 @@ "fstrcond": 1.0, "ftar": 1.0, "ftaucq": 1.0, - "ftaulimit": 1.0, + "falpha_energy_confinement": 1.0, "ftbr": 1.0, "ft_burn": 1.0, "ftcycl": 1.0, @@ -9634,7 +9634,7 @@ "fstrcond": "f-value for maxiumum TF coil conduit Tresca yield criterion\n (`constraint equation 32`, `iteration variable 49`)", "ftar": "fraction of power to the lower divertor in double null configuration\n (`i_single_null = 0` only) (default assumes SN)", "ftaucq": "f-value for calculated minimum TF quench time\n (`constraint equation 65`, `iteration variable 113`)", - "ftaulimit": "f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy\n confinement times (`constraint equation 62`, `iteration variable 110`)", + "falpha_energy_confinement": "f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy\n confinement times (`constraint equation 62`, `iteration variable 110`)", "ftbr": "f-value for minimum tritium breeding ratio (`constraint equation 52`, `iteration variable 89`)", "ft_burn": "f-value for minimum burn time (`constraint equation 13`, `iteration variable 21`)", "ftcycl": "f-value for cycle time (`constraint equation 42`, `iteration variable 67`)", @@ -9958,8 +9958,8 @@ "ksic": "power fraction for outboard double-null scrape-off plasma", "lablcc": "lablcc(ipeqns) : labels describing constraint equations (corresponding itvs)
                        \n
                        \n
                      • ( 1) Beta (consistency equation) (itv 5)\n
                      • ( 2) Global power balance (consistency equation) (itv 10,1,2,3,4,6,11)\n
                      • ( 3) Ion power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
                      • ( 4) Electron power balance DEPRECATED (itv 10,1,2,3,4,6,11)\n
                      • ( 5) Density upper limit (itv 9,1,2,3,4,5,6)\n
                      • ( 6) (Epsilon x beta poloidal) upper limit (itv 8,1,2,3,4,6)\n
                      • ( 7) Beam ion density (NBI) (consistency equation) (itv 7)\n
                      • ( 8) Neutron wall load upper limit (itv 14,1,2,3,4,6)\n
                      • ( 9) Fusion power upper limit (itv 26,1,2,3,4,6)\n
                      • (10) Toroidal field 1/R (consistency equation) (itv 12,1,2,3,13 )\n
                      • (11) Radial build (consistency equation) (itv 3,1,13,16,29,42,61)\n
                      • (12) Volt second lower limit (STEADY STATE) (itv 15,1,2,3)\n
                      • (13) Burn time lower limit (PULSE) (itv 21,1,16,17,29,42,44,61)\n (itv 19,1,2,3,6)\n
                      • (14) Neutral beam decay lengths to plasma centre (NBI) (consistency equation)\n
                      • (15) LH power threshold limit (itv 103)\n
                      • (16) Net electric power lower limit (itv 25,1,2,3)\n
                      • (17) Radiation fraction upper limit (itv 28)\n
                      • (18) Divertor heat load upper limit (itv 27)\n
                      • (19) MVA upper limit (itv 30)\n
                      • (20) Neutral beam tangency radius upper limit (NBI) (itv 33,31,3,13)\n
                      • (21) Plasma minor radius lower limit (itv 32)\n
                      • (22) Divertor collisionality upper limit (itv 34,43)\n
                      • (23) Conducting shell to plasma minor radius ratio upper limit\n (itv 104,1,74)\n
                      • (24) Beta upper limit (itv 36,1,2,3,4,6,18)\n
                      • (25) Peak toroidal field upper limit (itv 35,3,13,29)\n
                      • (26) Central solenoid EOF current density upper limit (ipfres=0)\n (itv 38,37,41,12)\n
                      • (27) Central solenoid BOP current density upper limit (ipfres=0)\n (itv 39,37,41,12)\n
                      • (28) Fusion gain Q lower limit (itv 45,47,40)\n
                      • (29) Inboard radial build consistency (itv 3,1,13,16,29,42,61)\n
                      • (30) Injection power upper limit (itv 46,47,11)\n
                      • (31) TF coil case stress upper limit (SCTF) (itv 48,56,57,58,59,60,24)\n
                      • (32) TF coil conduit stress upper limit (SCTF) (itv 49,56,57,58,59,60,24)\n
                      • (33) I_op / I_critical (TF coil) (SCTF) (itv 50,56,57,58,59,60,24)\n
                      • (34) Dump voltage upper limit (SCTF) (itv 51,52,56,57,58,59,60,24)\n
                      • (35) J_winding pack/J_protection upper limit (SCTF) (itv 53,56,57,58,59,60,24)\n
                      • (36) TF coil temperature margin lower limit (SCTF) (itv 54,55,56,57,58,59,60,24)\n
                      • (37) Current drive gamma upper limit (itv 40,47)\n
                      • (38) First wall coolant temperature rise upper limit (itv 62)\n
                      • (39) First wall peak temperature upper limit (itv 63)\n
                      • (40) Start-up injection power lower limit (PULSE) (itv 64)\n
                      • (41) Plasma current ramp-up time lower limit (PULSE) (itv 66,65)\n
                      • (42) Cycle time lower limit (PULSE) (itv 17,67,65)\n
                      • (43) Average centrepost temperature\n (TART) (consistency equation) (itv 13,20,69,70)\n
                      • (44) Peak centrepost temperature upper limit (TART) (itv 68,69,70)\n
                      • (45) Edge safety factor lower limit (TART) (itv 71,1,2,3)\n
                      • (46) Equation for Ip/Irod upper limit (TART) (itv 72,2,60)\n
                      • (47) NOT USED\n
                      • (48) Poloidal beta upper limit (itv 79,2,3,18)\n
                      • (49) NOT USED\n
                      • (50) IFE repetition rate upper limit (IFE)\n
                      • (51) Startup volt-seconds consistency (PULSE) (itv 16,29,3,1)\n
                      • (52) Tritium breeding ratio lower limit (itv 89,90,91)\n
                      • (53) Neutron fluence on TF coil upper limit (itv 92,93,94)\n
                      • (54) Peak TF coil nuclear heating upper limit (itv 95,93,94)\n
                      • (55) Vacuum vessel helium concentration upper limit iblanket =2 (itv 96,93,94)\n
                      • (56) Pseparatrix/Rmajor upper limit (itv 97,1,3)\n
                      • (57) NOT USED\n
                      • (58) NOT USED\n
                      • (59) Neutral beam shine-through fraction upper limit (NBI) (itv 105,6,19,4 )\n
                      • (60) Central solenoid temperature margin lower limit (SCTF) (itv 106)\n
                      • (61) Minimum availability value (itv 107)\n
                      • (62) f_alpha_energy_confinement the ratio of particle to energy confinement times (itv 110)\n
                      • (63) The number of ITER-like vacuum pumps niterpump < tfno (itv 111)\n
                      • (64) Zeff less than or equal to zeffmax (itv 112)\n
                      • (65) Dump time set by VV loads (itv 56, 113)\n
                      • (66) Limit on rate of change of energy in poloidal field\n (Use iteration variable 65(t_current_ramp_up), 115)\n
                      • (67) Simple Radiation Wall load limit (itv 116, 4,6)\n
                      • (68) Psep * Bt / qAR upper limit (itv 117)\n
                      • (69) ensure separatrix power = the value from Kallenbach divertor (itv 118)\n
                      • (70) ensure that teomp = separatrix temperature in the pedestal profile,\n (itv 119 (tesep))\n
                      • (71) ensure that neomp = separatrix density (nesep) x neratio\n
                      • (72) central solenoid shear stress limit (Tresca yield criterion) (itv 123 foh_stress)\n
                      • (73) Psep >= Plh + Paux (itv 137 (fplhsep))\n
                      • (74) TFC quench < tmax_croco (itv 141 (fcqt))\n
                      • (75) TFC current/copper area < Maximum (itv 143 f_coppera_m2)\n
                      • (76) Eich critical separatrix density\n
                      • (77) TF coil current per turn upper limit\n
                      • (78) Reinke criterion impurity fraction lower limit (itv 147 freinke)\n
                      • (79) Peak CS field upper limit (itv 149 fbmaxcs)\n
                      • (80) Divertor power lower limit pdivt (itv 153 fpdivlim)\n
                      • (81) Ne(0) > ne(ped) constraint (itv 154 fne0)\n
                      • (82) toroidalgap > tftort constraint (itv 171 ftoroidalgap)\n
                      • (83) Radial build consistency for stellarators (itv 172 f_avspace)\n
                      • (84) Lower limit for beta (itv 173 fbeta_min)\n
                      • (85) Constraint for CP lifetime\n
                      • (86) Constraint for TF coil turn dimension\n
                      • (87) Constraint for cryogenic power\n
                      • (88) Constraint for TF coil strain absolute value\n
                      • (89) Constraint for CS coil quench protection\n
                      • (90) Checking if the design point is ECRH ignitable (itv 164 fecrh_ignition)
                      \n\n\n\n", "lablmm": "lablmm(ipnfoms) : labels describing figures of merit:
                        \n
                        \n
                      • ( 1) major radius\n
                      • ( 2) not used\n
                      • ( 3) neutron wall load\n
                      • ( 4) P_tf + P_pf\n
                      • ( 5) fusion gain Q\n
                      • ( 6) cost of electricity\n
                      • ( 7) capital cost (direct cost if ireactor=0,\n constructed cost otherwise)\n
                      • ( 8) aspect ratio\n
                      • ( 9) divertor heat load\n
                      • (10) toroidal field\n
                      • (11) total injected power\n
                      • (12) hydrogen plant capital cost OBSOLETE\n
                      • (13) hydrogen production rate OBSOLETE\n
                      • (14) pulse length\n
                      • (15) plant availability factor (N.B. requires\n iavail=1 to be set)\n
                      • (16) linear combination of major radius (minimised) and pulse length (maximised)\n note: FoM should be minimised only!\n
                      • (17) net electrical output\n
                      • (18) Null Figure of Merit\n
                      • (19) linear combination of big Q and pulse length (maximised)\n note: FoM should be minimised only!
                      \n\n\n", - "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                        \n
                        \n
                      • ( 1) aspect\n
                      • ( 2) bt\n
                      • ( 3) rmajor\n
                      • ( 4) te\n
                      • ( 5) beta\n
                      • ( 6) dene\n
                      • ( 7) f_nd_beam_electron\n
                      • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                      • ( 9) fdene (f-value for equation 5)\n
                      • (10) hfact\n
                      • (11) pheat\n
                      • (12) oacdcp\n
                      • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                      • (14) fwalld (f-value for equation 8)\n
                      • (15) fvs (f-value for equation 12)\n
                      • (16) dr_cs\n
                      • (17) tdwell\n
                      • (18) q\n
                      • (19) beam_energy\n
                      • (20) tcpav\n
                      • (21) ftburn (f-value for equation 13)\n
                      • (22) NOT USED\n
                      • (23) fcoolcp\n
                      • (24) NOT USED\n
                      • (25) fpnetel (f-value for equation 16)\n
                      • (26) ffuspow (f-value for equation 9)\n
                      • (27) fhldiv (f-value for equation 18)\n
                      • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                      • (29) dr_bore\n
                      • (30) fmva (f-value for equation 19)\n
                      • (31) gapomin\n
                      • (32) frminor (f-value for equation 21)\n
                      • (33) fportsz (f-value for equation 20)\n
                      • (34) fdivcol (f-value for equation 22)\n
                      • (35) fpeakb (f-value for equation 25)\n
                      • (36) fbeta_max (f-value for equation 24)\n
                      • (37) coheof\n
                      • (38) fjohc (f-value for equation 26)\n
                      • (39) fjohc0 (f-value for equation 27)\n
                      • (40) fgamcd (f-value for equation 37)\n
                      • (41) fcohbop\n
                      • (42) dr_cs_tf_gap\n
                      • (43) NOT USED\n
                      • (44) fvsbrnni\n
                      • (45) fqval (f-value for equation 28)\n
                      • (46) fpinj (f-value for equation 30)\n
                      • (47) feffcd\n
                      • (48) fstrcase (f-value for equation 31)\n
                      • (49) fstrcond (f-value for equation 32)\n
                      • (50) fiooic (f-value for equation 33)\n
                      • (51) fvdump (f-value for equation 34)\n
                      • (52) vdalw\n
                      • (53) fjprot (f-value for equation 35)\n
                      • (54) ftmargtf (f-value for equation 36)\n
                      • (55) NOT USED\n
                      • (56) tdmptf\n
                      • (57) thkcas\n
                      • (58) thwcndut\n
                      • (59) fcutfsu\n
                      • (60) cpttf\n
                      • (61) dr_shld_vv_gap_inboard\n
                      • (62) fdtmp (f-value for equation 38)\n
                      • (63) ftpeak (f-value for equation 39)\n
                      • (64) fauxmn (f-value for equation 40)\n
                      • (65) tohs\n
                      • (66) ftohs (f-value for equation 41)\n
                      • (67) ftcycl (f-value for equation 42)\n
                      • (68) fptemp (f-value for equation 44)\n
                      • (69) rcool\n
                      • (70) vcool\n
                      • (71) fq (f-value for equation 45)\n
                      • (72) fipir (f-value for equation 46)\n
                      • (73) dr_fw_plasma_gap_inboard\n
                      • (74) dr_fw_plasma_gap_outboard\n
                      • (75) tfootfi\n
                      • (76) NOT USED\n
                      • (77) NOT USED\n
                      • (78) NOT USED\n
                      • (79) fbeta_poloidal (f-value for equation 48)\n
                      • (80) NOT USED\n
                      • (81) edrive\n
                      • (82) drveff\n
                      • (83) tgain\n
                      • (84) chrad\n
                      • (85) pdrive\n
                      • (86) frrmax (f-value for equation 50)\n
                      • (87) NOT USED\n
                      • (88) NOT USED\n
                      • (89) ftbr (f-value for equation 52)\n
                      • (90) blbuith\n
                      • (91) blbuoth\n
                      • (92) fflutf (f-value for equation 53)\n
                      • (93) dr_shld_inboard\n
                      • (94) dr_shld_outboard\n
                      • (95) fptfnuc (f-value for equation 54)\n
                      • (96) fvvhe (f-value for equation 55)\n
                      • (97) fpsepr (f-value for equation 56)\n
                      • (98) li6enrich\n
                      • (99) NOT USED\n
                      • (100) NOT USED\n
                      • (101) NOT USED\n
                      • (102) fimpvar\n
                      • (103) flhthresh (f-value for equation 15)\n
                      • (104)fr_conducting_wall (f-value for equation 23)\n
                      • (105) fnbshinef (f-value for equation 59)\n
                      • (106) ftmargoh (f-value for equation 60)\n
                      • (107) favail (f-value for equation 61)\n
                      • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                      • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                      • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha\n
                      • (111) fniterpump: f-value for constraint that number\n
                      • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                      • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                      • (114) fw_channel_length: Length of a single first wall channel\n
                      • (115) fpoloidalpower: f-value for max rate of change of\n
                      • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                      • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                      • (118) fpsep: f-value to ensure separatrix power is less than\n
                      • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                      • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                      • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                      • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                      • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                      • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                      • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                      • (126) fimp(4) : Carbon density fraction relative to electron density\n
                      • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                      • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                      • (129) fimp(7) : Neon density fraction relative to electron density\n
                      • (130) fimp(8) : Silicon density fraction relative to electron density\n
                      • (131) fimp(9) : Argon density fraction relative to electron density\n
                      • (132) fimp(10) : Iron density fraction relative to electron density\n
                      • (133) fimp(11) : Nickel density fraction relative to electron density\n
                      • (134) fimp(12) : Krypton density fraction relative to electron density\n
                      • (135) fimp(13) : Xenon density fraction relative to electron density\n
                      • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                      • (137) fplhsep (f-value for equation 73)\n
                      • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                      • (139) copper_thick : thickness of copper layer in tape (m)\n
                      • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                      • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                      • (142) nesep : electron density at separatrix [m-3]\n
                      • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                      • (144) fnesep : Eich critical electron density at separatrix\n
                      • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                      • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                      • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                      • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                      • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                      • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                      • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                      • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                      • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                      • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                      • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                      • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                      • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                      • (160) f_avspace (f-value for equation 83)\n
                      • (161) fbeta_min (f-value for equation 84)\n
                      • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                      • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                      • (164) f_crypmw : f-value for cryogenic plant power\n
                      • (165) fstr_wp : f-value for TF coil strain absolute value\n
                      • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                      • (167) fecrh_ignition: f-value for equation 90\n
                      • (168) EMPTY : Description\n
                      • (169) EMPTY : Description\n
                      • (170) EMPTY : Description\n
                      • (171) EMPTY : Description\n
                      • (172) EMPTY : Description\n
                      • (173) EMPTY : Description\n
                      • (174) EMPTY : Description\n
                      • (175) EMPTY : Description\n\n\n\n", - "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                          \n
                          \n
                        • ( 1) aspect\n
                        • ( 2) bt\n
                        • ( 3) rmajor\n
                        • ( 4) te\n
                        • ( 5) beta\n
                        • ( 6) dene\n
                        • ( 7) f_nd_beam_electron\n
                        • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                        • ( 9) fdene (f-value for equation 5)\n
                        • (10) hfact\n
                        • (11) pheat\n
                        • (12) oacdcp\n
                        • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                        • (14) fwalld (f-value for equation 8)\n
                        • (15) fvs (f-value for equation 12)\n
                        • (16) dr_cs\n
                        • (17) t_between_pulse\n
                        • (18) q\n
                        • (19) beam_energy\n
                        • (20) tcpav\n
                        • (21) ft_burn (f-value for equation 13)\n
                        • (22) NOT USED\n
                        • (23) fcoolcp\n
                        • (24) NOT USED\n
                        • (25) fpnetel (f-value for equation 16)\n
                        • (26) ffuspow (f-value for equation 9)\n
                        • (27) fhldiv (f-value for equation 18)\n
                        • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                        • (29) dr_bore\n
                        • (30) fmva (f-value for equation 19)\n
                        • (31) gapomin\n
                        • (32) frminor (f-value for equation 21)\n
                        • (33) fportsz (f-value for equation 20)\n
                        • (34) fdivcol (f-value for equation 22)\n
                        • (35) fpeakb (f-value for equation 25)\n
                        • (36) fbeta_max (f-value for equation 24)\n
                        • (37) coheof\n
                        • (38) fjohc (f-value for equation 26)\n
                        • (39) fjohc0 (f-value for equation 27)\n
                        • (40) fgamcd (f-value for equation 37)\n
                        • (41) fcohbop\n
                        • (42) dr_cs_tf_gap\n
                        • (43) NOT USED\n
                        • (44) fvsbrnni\n
                        • (45) fqval (f-value for equation 28)\n
                        • (46) fpinj (f-value for equation 30)\n
                        • (47) feffcd\n
                        • (48) fstrcase (f-value for equation 31)\n
                        • (49) fstrcond (f-value for equation 32)\n
                        • (50) fiooic (f-value for equation 33)\n
                        • (51) fvdump (f-value for equation 34)\n
                        • (52) vdalw\n
                        • (53) fjprot (f-value for equation 35)\n
                        • (54) ftmargtf (f-value for equation 36)\n
                        • (55) NOT USED\n
                        • (56) tdmptf\n
                        • (57) thkcas\n
                        • (58) thwcndut\n
                        • (59) fcutfsu\n
                        • (60) cpttf\n
                        • (61) dr_shld_vv_gap_inboard\n
                        • (62) fdtmp (f-value for equation 38)\n
                        • (63) ftpeak (f-value for equation 39)\n
                        • (64) fauxmn (f-value for equation 40)\n
                        • (65) t_current_ramp_up\n
                        • (66) ft_current_ramp_up (f-value for equation 41)\n
                        • (67) ftcycl (f-value for equation 42)\n
                        • (68) fptemp (f-value for equation 44)\n
                        • (69) rcool\n
                        • (70) vcool\n
                        • (71) fq (f-value for equation 45)\n
                        • (72) fipir (f-value for equation 46)\n
                        • (73) dr_fw_plasma_gap_inboard\n
                        • (74) dr_fw_plasma_gap_outboard\n
                        • (75) tfootfi\n
                        • (76) NOT USED\n
                        • (77) NOT USED\n
                        • (78) NOT USED\n
                        • (79) fbetap (f-value for equation 48)\n
                        • (80) NOT USED\n
                        • (81) edrive\n
                        • (82) drveff\n
                        • (83) tgain\n
                        • (84) chrad\n
                        • (85) pdrive\n
                        • (86) frrmax (f-value for equation 50)\n
                        • (87) NOT USED\n
                        • (88) NOT USED\n
                        • (89) ftbr (f-value for equation 52)\n
                        • (90) blbuith\n
                        • (91) blbuoth\n
                        • (92) fflutf (f-value for equation 53)\n
                        • (93) dr_shld_inboard\n
                        • (94) dr_shld_outboard\n
                        • (95) fptfnuc (f-value for equation 54)\n
                        • (96) fvvhe (f-value for equation 55)\n
                        • (97) fpsepr (f-value for equation 56)\n
                        • (98) li6enrich\n
                        • (99) NOT USED\n
                        • (100) NOT USED\n
                        • (101) NOT USED\n
                        • (102) fimpvar\n
                        • (103) flhthresh (f-value for equation 15)\n
                        • (104)fr_conducting_wall (f-value for equation 23)\n
                        • (105) fnbshinef (f-value for equation 59)\n
                        • (106) ftmargoh (f-value for equation 60)\n
                        • (107) favail (f-value for equation 61)\n
                        • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                        • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                        • (110) ftaulimit: Lower limit on f_alpha_energy_confinement the ratio of alpha\n
                        • (111) fniterpump: f-value for constraint that number\n
                        • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                        • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                        • (114) fw_channel_length: Length of a single first wall channel\n
                        • (115) fpoloidalpower: f-value for max rate of change of\n
                        • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                        • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                        • (118) fpsep: f-value to ensure separatrix power is less than\n
                        • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                        • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                        • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                        • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                        • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                        • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                        • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                        • (126) fimp(4) : Carbon density fraction relative to electron density\n
                        • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                        • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                        • (129) fimp(7) : Neon density fraction relative to electron density\n
                        • (130) fimp(8) : Silicon density fraction relative to electron density\n
                        • (131) fimp(9) : Argon density fraction relative to electron density\n
                        • (132) fimp(10) : Iron density fraction relative to electron density\n
                        • (133) fimp(11) : Nickel density fraction relative to electron density\n
                        • (134) fimp(12) : Krypton density fraction relative to electron density\n
                        • (135) fimp(13) : Xenon density fraction relative to electron density\n
                        • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                        • (137) fplhsep (f-value for equation 73)\n
                        • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                        • (139) copper_thick : thickness of copper layer in tape (m)\n
                        • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                        • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                        • (142) nesep : electron density at separatrix [m-3]\n
                        • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                        • (144) fnesep : Eich critical electron density at separatrix\n
                        • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                        • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                        • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                        • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                        • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                        • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                        • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                        • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                        • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                        • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                        • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                        • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                        • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                        • (160) f_avspace (f-value for equation 83)\n
                        • (161) fbeta_min (f-value for equation 84)\n
                        • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                        • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                        • (164) f_crypmw : f-value for cryogenic plant power\n
                        • (165) fstr_wp : f-value for TF coil strain absolute value\n
                        • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                        • (167) fecrh_ignition: f-value for equation 90\n
                        • (168) EMPTY : Description\n
                        • (169) EMPTY : Description\n
                        • (170) EMPTY : Description\n
                        • (171) EMPTY : Description\n
                        • (172) EMPTY : Description\n
                        • (173) EMPTY : Description\n
                        • (174) EMPTY : Description\n
                        • (175) EMPTY : Description\n\n\n\n", + "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                            \n
                            \n
                          • ( 1) aspect\n
                          • ( 2) bt\n
                          • ( 3) rmajor\n
                          • ( 4) te\n
                          • ( 5) beta\n
                          • ( 6) dene\n
                          • ( 7) f_nd_beam_electron\n
                          • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                          • ( 9) fdene (f-value for equation 5)\n
                          • (10) hfact\n
                          • (11) pheat\n
                          • (12) oacdcp\n
                          • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                          • (14) fwalld (f-value for equation 8)\n
                          • (15) fvs (f-value for equation 12)\n
                          • (16) dr_cs\n
                          • (17) tdwell\n
                          • (18) q\n
                          • (19) beam_energy\n
                          • (20) tcpav\n
                          • (21) ftburn (f-value for equation 13)\n
                          • (22) NOT USED\n
                          • (23) fcoolcp\n
                          • (24) NOT USED\n
                          • (25) fpnetel (f-value for equation 16)\n
                          • (26) ffuspow (f-value for equation 9)\n
                          • (27) fhldiv (f-value for equation 18)\n
                          • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                          • (29) dr_bore\n
                          • (30) fmva (f-value for equation 19)\n
                          • (31) gapomin\n
                          • (32) frminor (f-value for equation 21)\n
                          • (33) fportsz (f-value for equation 20)\n
                          • (34) fdivcol (f-value for equation 22)\n
                          • (35) fpeakb (f-value for equation 25)\n
                          • (36) fbeta_max (f-value for equation 24)\n
                          • (37) coheof\n
                          • (38) fjohc (f-value for equation 26)\n
                          • (39) fjohc0 (f-value for equation 27)\n
                          • (40) fgamcd (f-value for equation 37)\n
                          • (41) fcohbop\n
                          • (42) dr_cs_tf_gap\n
                          • (43) NOT USED\n
                          • (44) fvsbrnni\n
                          • (45) fqval (f-value for equation 28)\n
                          • (46) fpinj (f-value for equation 30)\n
                          • (47) feffcd\n
                          • (48) fstrcase (f-value for equation 31)\n
                          • (49) fstrcond (f-value for equation 32)\n
                          • (50) fiooic (f-value for equation 33)\n
                          • (51) fvdump (f-value for equation 34)\n
                          • (52) vdalw\n
                          • (53) fjprot (f-value for equation 35)\n
                          • (54) ftmargtf (f-value for equation 36)\n
                          • (55) NOT USED\n
                          • (56) tdmptf\n
                          • (57) thkcas\n
                          • (58) thwcndut\n
                          • (59) fcutfsu\n
                          • (60) cpttf\n
                          • (61) dr_shld_vv_gap_inboard\n
                          • (62) fdtmp (f-value for equation 38)\n
                          • (63) ftpeak (f-value for equation 39)\n
                          • (64) fauxmn (f-value for equation 40)\n
                          • (65) tohs\n
                          • (66) ftohs (f-value for equation 41)\n
                          • (67) ftcycl (f-value for equation 42)\n
                          • (68) fptemp (f-value for equation 44)\n
                          • (69) rcool\n
                          • (70) vcool\n
                          • (71) fq (f-value for equation 45)\n
                          • (72) fipir (f-value for equation 46)\n
                          • (73) dr_fw_plasma_gap_inboard\n
                          • (74) dr_fw_plasma_gap_outboard\n
                          • (75) tfootfi\n
                          • (76) NOT USED\n
                          • (77) NOT USED\n
                          • (78) NOT USED\n
                          • (79) fbeta_poloidal (f-value for equation 48)\n
                          • (80) NOT USED\n
                          • (81) edrive\n
                          • (82) drveff\n
                          • (83) tgain\n
                          • (84) chrad\n
                          • (85) pdrive\n
                          • (86) frrmax (f-value for equation 50)\n
                          • (87) NOT USED\n
                          • (88) NOT USED\n
                          • (89) ftbr (f-value for equation 52)\n
                          • (90) blbuith\n
                          • (91) blbuoth\n
                          • (92) fflutf (f-value for equation 53)\n
                          • (93) dr_shld_inboard\n
                          • (94) dr_shld_outboard\n
                          • (95) fptfnuc (f-value for equation 54)\n
                          • (96) fvvhe (f-value for equation 55)\n
                          • (97) fpsepr (f-value for equation 56)\n
                          • (98) li6enrich\n
                          • (99) NOT USED\n
                          • (100) NOT USED\n
                          • (101) NOT USED\n
                          • (102) fimpvar\n
                          • (103) flhthresh (f-value for equation 15)\n
                          • (104)fr_conducting_wall (f-value for equation 23)\n
                          • (105) fnbshinef (f-value for equation 59)\n
                          • (106) ftmargoh (f-value for equation 60)\n
                          • (107) favail (f-value for equation 61)\n
                          • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                          • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                          • (110) falpha_energy_confinement: Lower limit on f_alpha_energy_confinement the ratio of alpha\n
                          • (111) fniterpump: f-value for constraint that number\n
                          • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                          • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                          • (114) fw_channel_length: Length of a single first wall channel\n
                          • (115) fpoloidalpower: f-value for max rate of change of\n
                          • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                          • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                          • (118) fpsep: f-value to ensure separatrix power is less than\n
                          • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                          • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                          • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                          • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                          • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                          • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                          • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                          • (126) fimp(4) : Carbon density fraction relative to electron density\n
                          • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                          • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                          • (129) fimp(7) : Neon density fraction relative to electron density\n
                          • (130) fimp(8) : Silicon density fraction relative to electron density\n
                          • (131) fimp(9) : Argon density fraction relative to electron density\n
                          • (132) fimp(10) : Iron density fraction relative to electron density\n
                          • (133) fimp(11) : Nickel density fraction relative to electron density\n
                          • (134) fimp(12) : Krypton density fraction relative to electron density\n
                          • (135) fimp(13) : Xenon density fraction relative to electron density\n
                          • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                          • (137) fplhsep (f-value for equation 73)\n
                          • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                          • (139) copper_thick : thickness of copper layer in tape (m)\n
                          • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                          • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                          • (142) nesep : electron density at separatrix [m-3]\n
                          • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                          • (144) fnesep : Eich critical electron density at separatrix\n
                          • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                          • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                          • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                          • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                          • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                          • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                          • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                          • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                          • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                          • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                          • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                          • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                          • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                          • (160) f_avspace (f-value for equation 83)\n
                          • (161) fbeta_min (f-value for equation 84)\n
                          • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                          • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                          • (164) f_crypmw : f-value for cryogenic plant power\n
                          • (165) fstr_wp : f-value for TF coil strain absolute value\n
                          • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                          • (167) fecrh_ignition: f-value for equation 90\n
                          • (168) EMPTY : Description\n
                          • (169) EMPTY : Description\n
                          • (170) EMPTY : Description\n
                          • (171) EMPTY : Description\n
                          • (172) EMPTY : Description\n
                          • (173) EMPTY : Description\n
                          • (174) EMPTY : Description\n
                          • (175) EMPTY : Description\n\n\n\n", + "lablxc": "lablxc(ipnvars) : labels describing iteration variables
                              \n
                              \n
                            • ( 1) aspect\n
                            • ( 2) bt\n
                            • ( 3) rmajor\n
                            • ( 4) te\n
                            • ( 5) beta\n
                            • ( 6) dene\n
                            • ( 7) f_nd_beam_electron\n
                            • ( 8) fbeta_poloidal_eps (f-value for equation 6)\n
                            • ( 9) fdene (f-value for equation 5)\n
                            • (10) hfact\n
                            • (11) pheat\n
                            • (12) oacdcp\n
                            • (13) dr_tf_inboard (NOT RECOMMENDED)\n
                            • (14) fwalld (f-value for equation 8)\n
                            • (15) fvs (f-value for equation 12)\n
                            • (16) dr_cs\n
                            • (17) t_between_pulse\n
                            • (18) q\n
                            • (19) beam_energy\n
                            • (20) tcpav\n
                            • (21) ft_burn (f-value for equation 13)\n
                            • (22) NOT USED\n
                            • (23) fcoolcp\n
                            • (24) NOT USED\n
                            • (25) fpnetel (f-value for equation 16)\n
                            • (26) ffuspow (f-value for equation 9)\n
                            • (27) fhldiv (f-value for equation 18)\n
                            • (28) fradpwr (f-value for equation 17), total radiation fraction\n
                            • (29) dr_bore\n
                            • (30) fmva (f-value for equation 19)\n
                            • (31) gapomin\n
                            • (32) frminor (f-value for equation 21)\n
                            • (33) fportsz (f-value for equation 20)\n
                            • (34) fdivcol (f-value for equation 22)\n
                            • (35) fpeakb (f-value for equation 25)\n
                            • (36) fbeta_max (f-value for equation 24)\n
                            • (37) coheof\n
                            • (38) fjohc (f-value for equation 26)\n
                            • (39) fjohc0 (f-value for equation 27)\n
                            • (40) fgamcd (f-value for equation 37)\n
                            • (41) fcohbop\n
                            • (42) dr_cs_tf_gap\n
                            • (43) NOT USED\n
                            • (44) fvsbrnni\n
                            • (45) fqval (f-value for equation 28)\n
                            • (46) fpinj (f-value for equation 30)\n
                            • (47) feffcd\n
                            • (48) fstrcase (f-value for equation 31)\n
                            • (49) fstrcond (f-value for equation 32)\n
                            • (50) fiooic (f-value for equation 33)\n
                            • (51) fvdump (f-value for equation 34)\n
                            • (52) vdalw\n
                            • (53) fjprot (f-value for equation 35)\n
                            • (54) ftmargtf (f-value for equation 36)\n
                            • (55) NOT USED\n
                            • (56) tdmptf\n
                            • (57) thkcas\n
                            • (58) thwcndut\n
                            • (59) fcutfsu\n
                            • (60) cpttf\n
                            • (61) dr_shld_vv_gap_inboard\n
                            • (62) fdtmp (f-value for equation 38)\n
                            • (63) ftpeak (f-value for equation 39)\n
                            • (64) fauxmn (f-value for equation 40)\n
                            • (65) t_current_ramp_up\n
                            • (66) ft_current_ramp_up (f-value for equation 41)\n
                            • (67) ftcycl (f-value for equation 42)\n
                            • (68) fptemp (f-value for equation 44)\n
                            • (69) rcool\n
                            • (70) vcool\n
                            • (71) fq (f-value for equation 45)\n
                            • (72) fipir (f-value for equation 46)\n
                            • (73) dr_fw_plasma_gap_inboard\n
                            • (74) dr_fw_plasma_gap_outboard\n
                            • (75) tfootfi\n
                            • (76) NOT USED\n
                            • (77) NOT USED\n
                            • (78) NOT USED\n
                            • (79) fbetap (f-value for equation 48)\n
                            • (80) NOT USED\n
                            • (81) edrive\n
                            • (82) drveff\n
                            • (83) tgain\n
                            • (84) chrad\n
                            • (85) pdrive\n
                            • (86) frrmax (f-value for equation 50)\n
                            • (87) NOT USED\n
                            • (88) NOT USED\n
                            • (89) ftbr (f-value for equation 52)\n
                            • (90) blbuith\n
                            • (91) blbuoth\n
                            • (92) fflutf (f-value for equation 53)\n
                            • (93) dr_shld_inboard\n
                            • (94) dr_shld_outboard\n
                            • (95) fptfnuc (f-value for equation 54)\n
                            • (96) fvvhe (f-value for equation 55)\n
                            • (97) fpsepr (f-value for equation 56)\n
                            • (98) li6enrich\n
                            • (99) NOT USED\n
                            • (100) NOT USED\n
                            • (101) NOT USED\n
                            • (102) fimpvar\n
                            • (103) flhthresh (f-value for equation 15)\n
                            • (104)fr_conducting_wall (f-value for equation 23)\n
                            • (105) fnbshinef (f-value for equation 59)\n
                            • (106) ftmargoh (f-value for equation 60)\n
                            • (107) favail (f-value for equation 61)\n
                            • (108) breeder_f: Volume of Li4SiO4 / (Volume of Be12Ti + Li4SiO4)\n
                            • (109) f_nd_alpha_electron: thermal alpha density / electron density\n
                            • (110) falpha_energy_confinement: Lower limit on f_alpha_energy_confinement the ratio of alpha\n
                            • (111) fniterpump: f-value for constraint that number\n
                            • (112) fzeffmax: f-value for max Zeff (f-value for equation 64)\n
                            • (113) ftaucq: f-value for minimum quench time (f-value for equation 65)\n
                            • (114) fw_channel_length: Length of a single first wall channel\n
                            • (115) fpoloidalpower: f-value for max rate of change of\n
                            • (116) fradwall: f-value for radiation wall load limit (eq. 67)\n
                            • (117) fpsepbqar: f-value for Psep*Bt/qar upper limit (eq. 68)\n
                            • (118) fpsep: f-value to ensure separatrix power is less than\n
                            • (119) tesep: separatrix temperature calculated by the Kallenbach divertor model\n
                            • (120) ttarget: Plasma temperature adjacent to divertor sheath [eV]\n
                            • (121) neratio: ratio of mean SOL density at OMP to separatrix density at OMP\n
                            • (122) oh_steel_frac : streel fraction of Central Solenoid\n
                            • (123) foh_stress : f-value for CS coil Tresca yield criterion (f-value for eq. 72)\n
                            • (124) qtargettotal : Power density on target including surface recombination [W/m2]\n
                            • (125) fimp(3) : Beryllium density fraction relative to electron density\n
                            • (126) fimp(4) : Carbon density fraction relative to electron density\n
                            • (127) fimp(5) : Nitrogen fraction relative to electron density\n
                            • (128) fimp(6) : Oxygen density fraction relative to electron density\n
                            • (129) fimp(7) : Neon density fraction relative to electron density\n
                            • (130) fimp(8) : Silicon density fraction relative to electron density\n
                            • (131) fimp(9) : Argon density fraction relative to electron density\n
                            • (132) fimp(10) : Iron density fraction relative to electron density\n
                            • (133) fimp(11) : Nickel density fraction relative to electron density\n
                            • (134) fimp(12) : Krypton density fraction relative to electron density\n
                            • (135) fimp(13) : Xenon density fraction relative to electron density\n
                            • (136) fimp(14) : Tungsten density fraction relative to electron density\n
                            • (137) fplhsep (f-value for equation 73)\n
                            • (138) rebco_thickness : thickness of REBCO layer in tape (m)\n
                            • (139) copper_thick : thickness of copper layer in tape (m)\n
                            • (140) dr_tf_wp : radial thickness of TFC winding pack (m)\n
                            • (141) fcqt : TF coil quench temperature < tmax_croco (f-value for equation 74)\n
                            • (142) nesep : electron density at separatrix [m-3]\n
                            • (143) f_copperA_m2 : TF coil current / copper area < Maximum value\n
                            • (144) fnesep : Eich critical electron density at separatrix\n
                            • (145) fgwped : fraction of Greenwald density to set as pedestal-top density\n
                            • (146) fcpttf : F-value for TF coil current per turn limit (constraint equation 77)\n
                            • (147) freinke : F-value for Reinke detachment criterion (constraint equation 78)\n
                            • (148) fzactual : fraction of impurity at SOL with Reinke detachment criterion\n
                            • (149) fbmaxcs : F-value for max peak CS field (con. 79, itvar 149)\n
                            • (152) fbmaxcs : Ratio of separatrix density to Greenwald density\n
                            • (153) fpdivlim : F-value for minimum pdivt (con. 80)\n
                            • (154) fne0 : F-value for ne(0) > ne(ped) (con. 81)\n
                            • (155) pfusife : IFE input fusion power (MW) (ifedrv=3 only)\n
                            • (156) rrin : Input IFE repetition rate (Hz) (ifedrv=3 only)\n
                            • (157) fvssu : F-value for available to required start up flux (con. 51)\n
                            • (158) croco_thick : Thickness of CroCo copper tube (m)\n
                            • (159) ftoroidalgap : F-value for toroidalgap > tftort constraint (con. 82)\n
                            • (160) f_avspace (f-value for equation 83)\n
                            • (161) fbeta_min (f-value for equation 84)\n
                            • (162) r_cp_top : Top outer radius of the centropost (ST only) (m)\n
                            • (163) f_t_turn_tf : f-value for TF coils WP trurn squared dimension constraint\n
                            • (164) f_crypmw : f-value for cryogenic plant power\n
                            • (165) fstr_wp : f-value for TF coil strain absolute value\n
                            • (166) f_copperaoh_m2 : CS coil current /copper area < Maximum value\n
                            • (167) fecrh_ignition: f-value for equation 90\n
                            • (168) EMPTY : Description\n
                            • (169) EMPTY : Description\n
                            • (170) EMPTY : Description\n
                            • (171) EMPTY : Description\n
                            • (172) EMPTY : Description\n
                            • (173) EMPTY : Description\n
                            • (174) EMPTY : Description\n
                            • (175) EMPTY : Description\n\n\n\n", "lambda_EU": "Decay length in EUROFER [cm]", "lambda_He_VV": "Decay length [cm]", "lambda_n_BZ_IB": "Decay length in IB BZ [cm]", @@ -12911,7 +12911,7 @@ "lb": 0.001, "ub": 1.0 }, - "ftaulimit": { + "falpha_energy_confinement": { "lb": 0.001, "ub": 1.0 }, @@ -15480,7 +15480,7 @@ "lb": 0.001, "ub": 1.0 }, - "ftaulimit": { + "falpha_energy_confinement": { "lb": 0.001, "ub": 1.0 }, @@ -15800,7 +15800,7 @@ "fstrcase": 1.0, "fstrcond": 1.0, "ftaucq": 1.0, - "ftaulimit": 1.0, + "falpha_energy_confinement": 1.0, "ftbr": 1.0, "ft_burn": 1.0, "ftcycl": 1.0, @@ -15913,7 +15913,7 @@ }, "110": { "lb": 0.001, - "name": "ftaulimit", + "name": "falpha_energy_confinement", "ub": 1.0 }, "111": { @@ -16668,7 +16668,7 @@ "108": "breeder_f", "109": "f_nd_alpha_electron", "11": "pheat", - "110": "ftaulimit", + "110": "falpha_energy_confinement", "111": "fniterpump", "112": "fzeffmax", "113": "ftaucq", @@ -16913,7 +16913,7 @@ "fstrcase": "48", "fstrcond": "49", "ftaucq": "113", - "ftaulimit": "110", + "falpha_energy_confinement": "110", "ftbr": "89", "ft_burn": "21", "ftcycl": "67", @@ -17462,7 +17462,7 @@ "vvhealw", "walalw", "f_alpha_energy_confinement_min", - "ftaulimit", + "falpha_energy_confinement", "fniterpump", "zeffmax", "fpoloidalpower", @@ -20343,7 +20343,7 @@ "fstrcond": "real_variable", "ftar": "real_variable", "ftaucq": "real_variable", - "ftaulimit": "real_variable", + "falpha_energy_confinement": "real_variable", "ftbr": "real_variable", "ft_burn": "real_variable", "ftcycl": "real_variable", diff --git a/tests/regression/input_files/large_tokamak.IN.DAT b/tests/regression/input_files/large_tokamak.IN.DAT index b54d0a974c..6a65d375bc 100644 --- a/tests/regression/input_files/large_tokamak.IN.DAT +++ b/tests/regression/input_files/large_tokamak.IN.DAT @@ -154,7 +154,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index 5503e7a6a5..6f9b8892d7 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -452,7 +452,7 @@ icc = 62 * VARIABLES: t_energy_confinement,t_alpha_confinement calculated in-situ ixc = 110 -ftaulimit = 1.0 +falpha_energy_confinement = 1.0 boundl(110) = 0.01 boundu(110) = 1.0 * DESCRIPTION: f-value for lower limit on f_alpha_energy_confinement the ratio of alpha particle to energy confinement times diff --git a/tests/regression/input_files/stellarator.IN.DAT b/tests/regression/input_files/stellarator.IN.DAT index 1ef2e8ffd3..b5cca40d12 100644 --- a/tests/regression/input_files/stellarator.IN.DAT +++ b/tests/regression/input_files/stellarator.IN.DAT @@ -77,7 +77,7 @@ boundl(169) = 4. boundu(169) = 35. *12 ixc = 109 * itv_f_nd_alpha_electron -ftaulimit = 1. +falpha_energy_confinement = 1. boundl(109) = 0.0001 boundu(109) = 0.4 diff --git a/tests/unit/data/large_tokamak_IN.DAT b/tests/unit/data/large_tokamak_IN.DAT index e6c9da7797..4a63fddb86 100644 --- a/tests/unit/data/large_tokamak_IN.DAT +++ b/tests/unit/data/large_tokamak_IN.DAT @@ -154,7 +154,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index fc701f6a4e..f96984d03f 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -1345,7 +1345,7 @@ tmargmin_cs = 1.5 * Lower limit on f_alpha_energy_confinement (ratio alpha particle/energy confinement times) * *-------------------------------------------------------------------------------* icc = 62 -ixc = 110 * ftaulimit +ixc = 110 * falpha_energy_confinement f_alpha_energy_confinement_min = 5.0 * dump time constraint for VV stresses * From f9f828af09af33d867a8982bad34143e15065dac Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 13:57:31 +0000 Subject: [PATCH 099/106] =?UTF-8?q?=F0=9F=94=84=20Adjust=20formatting=20in?= =?UTF-8?q?=20energy=20confinement=20output=20for=20improved=20readability?= =?UTF-8?q?=20and=20consistency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 106 +++++++++--------- process/physics.py | 6 +- 2 files changed, 57 insertions(+), 55 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index c496c0045f..d674326736 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -35,9 +35,9 @@ where $f_{\alpha}$ is the [fraction of alpha power that is coupled to the plasma ### Effect of radiation on energy confinement Published confinement scalings are all based on low radiation pulses. A power -plant will certainly be a high radiation machine --- both in the core, due to +plant will certainly be a high radiation machine, both in the core, due to bremsstrahlung and synchrotron radiation, and in the edge due to impurity -seeding. The scaling data do not predict this radiation --- that needs to be +seeding. The scaling data does not predict this radiation [^24] [^25], that needs to be done by the radiation model. However, if the transport is very "stiff", as predicted by some models, then the additional radiation causes an almost equal drop in power transported by ions and electrons, leaving the confinement @@ -94,7 +94,7 @@ $$ ------------ -### 1: Nec-Alcator (NA) OH scaling +### 1: Nec-Alcator scaling (Ohmic) Is selected with `i_confinement_time = 1`[^1] @@ -114,7 +114,7 @@ $$ ------------ -### 3: Merezhkin-Mukhovatov OH/L-mode scaling +### 3: Merezhkin-Mukhovatov scaling (Ohmic / L-mode) Is selected with `i_confinement_time = 3`[^1] @@ -125,7 +125,7 @@ $$ --------------- -### 4: Shimomura optimized H-mode scaling +### 4: Shimomura scaling (H-mode) Is selected with `i_confinement_time = 4`[^1] @@ -135,7 +135,7 @@ $$ ---------------- -### 5: Kaye-Goldston L-mode scaling +### 5: Kaye-Goldston scaling (L-mode) Is selected with `i_confinement_time = 5`[^1] @@ -145,7 +145,7 @@ $$ ---------------- -### 6: ITER 89-P L-mode scaling +### 6: ITER 89-P scaling (L-mode) Is selected with `i_confinement_time = 6`[^1] [^2] @@ -155,7 +155,7 @@ $$ ---------------- -### 7: ITER 89-0 L-mode scaling +### 7: ITER 89-0 scaling (L-mode) Is selected with `i_confinement_time = 7` [^2] @@ -168,7 +168,7 @@ $$ ---------------- -### 8: Rebut-Lallia L-mode scaling +### 8: Rebut-Lallia scaling (L-mode) Is selected with `i_confinement_time = 8` [^2] @@ -183,8 +183,7 @@ where $\ell = \left(a^2R\kappa\right)^{\frac{1}{3}}$ ---------------- - -### 9: Goldston L-mode scaling +### 9: Goldston scaling (L-mode) Is selected with `i_confinement_time = 9` [^1] @@ -194,7 +193,7 @@ $$ ---------------- -### 10: T-10 L-mode scaling +### 10: T-10 scaling (L-mode) Is selected with `i_confinement_time = 10` [^1] @@ -207,7 +206,7 @@ where $\overline{n}_{20*} = 1.3\left(\frac{B_{\text{T}}}{Rq_{\text{cyl}}}\right) ---------------- -### 11: JAERI / Odajima-Shimomura L-mode scaling +### 11: JAERI / Odajima-Shimomura scaling (L-mode) Is selected with `i_confinement_time = 11` [^1] @@ -221,7 +220,7 @@ where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\ ---------------- -### 12: Kaye "big" L-mode scaling +### 12: Kaye "big" scaling (L-mode) Is selected with `i_confinement_time = 12` [^1] @@ -231,7 +230,7 @@ $$ ------------------------- -### 13: ITER H90-P H-mode scaling +### 13: ITER H90-P scaling (H-mode) Is selected with `i_confinement_time = 13` [^2] @@ -249,7 +248,7 @@ Will return the value of [ITER 89-P](#6-iter-89-p-l-mode-scaling) or [ITER 89-O] ------------------------- -### 15: Riedel L-mode scaling +### 15: Riedel scaling (L-mode) Is selected with `i_confinement_time = 15` [^2] @@ -259,7 +258,7 @@ $$ ------------------------- -### 16: Christiansen L-mode scaling +### 16: Christiansen scaling (L-mode) Is selected with `i_confinement_time = 16` [^2] @@ -269,7 +268,7 @@ $$ ------------------------- -### 17: Lackner-Gottardi L-mode scaling +### 17: Lackner-Gottardi scaling (L-mode) Is selected with `i_confinement_time = 17` [^2] @@ -281,7 +280,7 @@ where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I R}$ ------------------------- -### 18: Neo-Kaye L-mode scaling +### 18: Neo-Kaye scaling (L-mode) Is selected with `i_confinement_time = 18` [^2] @@ -291,7 +290,7 @@ $$ ------------------------- -### 19: Riedel H-mode scaling +### 19: Riedel scaling (H-mode) Is selected with `i_confinement_time = 19` [^2] @@ -301,7 +300,7 @@ $$ ------------------------- -### 20: Amended ITER H90-P H-mode scaling +### 20: Amended ITER H90-P scaling (H-mode) Is selected with `i_confinement_time = 20` [^3] @@ -311,7 +310,7 @@ $$ ------------------------- -### 21: Sudo et al. stellarators/heliotron scaling +### 21: Sudo et al. scaling (Stellarator) Is selected with `i_confinement_time = 21` [^4] @@ -321,7 +320,7 @@ $$ ------------------------- -### 22: Gyro reduced Bohm scaling +### 22: Gyro reduced Bohm scaling (Stellarator) Is selected with `i_confinement_time = 22` [^5] @@ -331,7 +330,7 @@ $$ ------------------------- -### 23: Lackner-Gottardi Stellerator scaling +### 23: Lackner-Gottardi scaling (Stellarator) Is selected with `i_confinement_time = 23` [^6] @@ -341,7 +340,7 @@ $$ ------------------------- -### 24: ITER 93 ELM-free H-mode scaling +### 24: ITER H93 ELM-free scaling (H-mode) Is selected with `i_confinement_time = 24` [^7] @@ -360,7 +359,7 @@ Is selected with `i_confinement_time = 25` ------------------------- -### 26: ELM-free: ITERH-97P scaling +### 26: ITER H-97P ELM-free scaling (H-mode) Is selected with `i_confinement_time = 26` [^8] @@ -370,7 +369,7 @@ $$ ------------------------- -### 27: ELMy ITER H-H97-P(y) scaling +### 27: ITER H-97P ELMy scaling (H-mode) Is selected with `i_confinement_time = 27` [^8] [^9] @@ -380,7 +379,7 @@ $$ ------------------------- -### 28: ITER-96P (ITER-97L) L-mode scaling +### 28: ITER-96P (ITER-97L) scaling (L-mode) Is selected with `i_confinement_time = 28` [^10] @@ -389,8 +388,8 @@ $$ $$ ------------------------- - -### 29: Valovic modified ELMy-H mode scaling + +### 29: Valovic modified ELMy scaling (H-mode) Is selected with `i_confinement_time = 29` @@ -403,7 +402,7 @@ $$ ------------------------- -### 30: Kaye modified L mode scaling +### 30: Kaye 98 modified scaling (L-mode) Is selected with `i_confinement_time = 30` @@ -416,7 +415,7 @@ $$ ------------------------- -### 31: ITERH-PB98P(y) H mode scaling +### 31: ITERH-PB98P(y) scaling (H-mode) Is selected with `i_confinement_time = 31` @@ -429,7 +428,7 @@ $$ ------------------------- -### 32: IPB98(y) ELMy H-mode scaling +### 32: IPB98(y) ELMy scaling (H-mode) Is selected with `i_confinement_time = 32` [^11] [^12] @@ -439,8 +438,7 @@ $$ ------------------------- - -### 33: IPB98(y,1) ELMy H-mode scaling +### 33: IPB98(y,1) ELMy scaling (H-mode) Is selected with `i_confinement_time = 33` [^11] [^12] @@ -450,7 +448,7 @@ $$ ------------------------- -### 34: IPB98(y,2) ELMy H-mode scaling +### 34: IPB98(y,2) ELMy scaling (H-mode) Is selected with `i_confinement_time = 34` [^11] [^12] @@ -460,7 +458,7 @@ $$ ------------------------- -### 35: IPB98(y,3) ELMy H-mode scaling +### 35: IPB98(y,3) ELMy scaling (H-mode) Is selected with `i_confinement_time = 35` [^11] [^12] @@ -470,7 +468,7 @@ $$ ------------------------- -### 36: IPB98(y,4) ELMy H-mode scaling +### 36: IPB98(y,4) ELMy scaling (H-mode) Is selected with `i_confinement_time = 36` [^11] [^12] @@ -481,7 +479,7 @@ $$ ------------------------- -### 37: ISS95 stellarator scaling +### 37: ISS95 scaling (Stellarator) Is selected with `i_confinement_time = 37` [^13] @@ -492,7 +490,7 @@ $$ ------------------------- -### 38: ISS04 stellarator scaling +### 38: ISS04 scaling (Stellarator) Is selected with `i_confinement_time = 38` [^14] @@ -502,7 +500,7 @@ $$ ------------------------- -### 39: DS03 beta-independent H-mode scaling +### 39: DS03 beta-independent scaling (H-mode) Is selected with `i_confinement_time = 39` [^15] @@ -512,7 +510,7 @@ $$ ------------------------- -### 40: Murari "Non-power law" H-mode scaling +### 40: Murari "Non-power law" scaling (H-mode) Is selected with `i_confinement_time = 40` [^16] @@ -523,7 +521,7 @@ $$ ------------------------- -### 41: Petty08 H-mode scaling +### 41: Petty08 scaling (H-mode) Is selected with `i_confinement_time = 41` [^17] @@ -533,7 +531,7 @@ $$ ------------------------- -### 42: Lang high density H-mode scaling +### 42: Lang high density scaling (H-mode) Is selected with `i_confinement_time = 42` [^18] @@ -544,7 +542,7 @@ $$ ------------------------- -### 43: Hubbard I-mode nominal scaling +### 43: Hubbard nominal scaling (I-mode) Is selected with `i_confinement_time = 43` [^19] @@ -554,7 +552,7 @@ $$ ------------------------- -### 44: Hubbard I-mode lower scaling +### 44: Hubbard lower scaling (I-mode) Is selected with `i_confinement_time = 44` [^19] @@ -564,7 +562,7 @@ $$ ------------------------- -### 45: Hubbard I-mode upper scaling +### 45: Hubbard upper scaling (I-mode) Is selected with `i_confinement_time = 45` [^19] @@ -575,7 +573,7 @@ $$ ------------------------- -### 46: Menard NSTX H-mode scaling +### 46: Menard NSTX scaling (H-mode) Is selected with `i_confinement_time = 46` [^20] @@ -600,7 +598,7 @@ $$ ------------------------- -### 48: Buxton NSTX Gyro-Bohm H-mode scaling +### 48: Buxton NSTX Gyro-Bohm scaling (H-mode) Is selected with `i_confinement_time = 48` [^21] @@ -610,7 +608,7 @@ $$ ------------------------- -### 49: ITPA20 H-mode scaling +### 49: ITPA20 scaling (H-mode) Is selected with `i_confinement_time = 49` [^22] @@ -620,7 +618,7 @@ $$ ------------------------- -### 50: ITPA20-IL H-mode scaling +### 50: ITPA20-IL scaling (H-mode) Is selected with `i_confinement_time = 50` [^23] @@ -662,6 +660,7 @@ The value of `f_alpha_energy_confinement_min` can be set to the desired minimum The scaling value `falpha_energy_confinement` can be varied also. + [^1]: N. A. Uckan, International Atomic Energy Agency, Vienna (Austria) and ITER Physics Group, "ITER physics design guidelines: 1989", no. No. 10. Feb. 1990. [^2]: T.C. Hender et al., 'Physics Assessment of the European Reactor Study', AEA FUS 172, 1992. [^3]: J. P. Christiansen et al., “Global energy confinement H-mode database for ITER,” Nuclear Fusion, vol. 32, no. 2, pp. 291-338, Feb. 1992, doi: https://doi.org/10.1088/0029-5515/32/2/i11. @@ -684,4 +683,7 @@ The value of `f_alpha_energy_confinement_min` can be set to the desired minimum [^20]: J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440-20170440, Feb. 2019, doi: https://doi.org/10.1098/rsta.2017.0440. [^21]: P. F. Buxton, L. Connor, A. E. Costley, M. Gryaznevich, and S. McNamara, “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” vol. 61, no. 3, pp. 035006-035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5. [^22]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. -[^23]: T. Luda et al., “Validation of a full-plasma integrated modeling approach on ASDEX Upgrade,” Nuclear Fusion, vol. 61, no. 12, pp. 126048-126048, Nov. 2021, doi: https://doi.org/10.1088/1741-4326/ac3293. \ No newline at end of file +[^23]: T. Luda et al., “Validation of a full-plasma integrated modeling approach on ASDEX Upgrade,” Nuclear Fusion, vol. 61, no. 12, pp. 126048-126048, Nov. 2021, doi: https://doi.org/10.1088/1741-4326/ac3293. +[^24]: H. Lux, R. Kemp, E. Fable, and R. Wenninger, “Radiation and confinement in 0D fusion systems codes,” Plasma Physics and Controlled Fusion, vol. 58, no. 7, pp. 075001–075001, May 2016, doi: https://doi.org/10.1088/0741-3335/58/7/075001. +[^25]: H. Lux, R. Kemp, D. J. Ward, and M. Sertoli, “Impurity radiation in DEMO systems modelling,” Fusion Engineering and Design, vol. 101, pp. 42–51, Dec. 2015, doi: https://doi.org/10.1016/j.fusengdes.2015.10.002. +‌ \ No newline at end of file diff --git a/process/physics.py b/process/physics.py index 4daedb1ff6..3f6d1a35b4 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5772,11 +5772,11 @@ def output_confinement_comparison(self) -> None: po.oheadr(self.outfile, "Energy confinement times, and required H-factors :") po.ocmmnt( self.outfile, - f"{'':>2}{'Scaling law':<35}{'Confinement time [s]':<40}H-factor for", + f"{'':>2}{'Scaling law':<33}{'Confinement time [s]':<29}H-factor for", ) po.ocmmnt( self.outfile, - f"{'':>40}{'for H = 1':<26}power balance", + f"{'':>40}{'for H = 1':<24}power balance", ) # Plot all of the confinement scalings for comparison when H = 1 @@ -5827,7 +5827,7 @@ def output_confinement_comparison(self) -> None: po.ocmmnt( self.outfile, f"{'':>2}{f2py_compatible_to_string(physics_variables.labels_confinement_scalings[i_confinement_time]):<38}" - f"{taueez:<32.3f}{physics_variables.hfac[i_confinement_time - 1]:.3f}", + f"{taueez:<28.3f}{physics_variables.hfac[i_confinement_time - 1]:.3f}", ) po.oblnkl(self.outfile) From 0d97a06c730787bbd5a0460d32a2de1bcbfc6922 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 15:05:44 +0000 Subject: [PATCH 100/106] =?UTF-8?q?=F0=9F=94=84=20Clarify=20comments=20in?= =?UTF-8?q?=20physics.py=20regarding=20ion=20and=20electron=20energy=20con?= =?UTF-8?q?finement=20calculations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../physics-models/plasma_confinement.md | 169 +++++++++++------- process/physics.py | 2 +- 2 files changed, 110 insertions(+), 61 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index d674326736..7e80e47d95 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -1,4 +1,4 @@ -# Confinement Time Scaling Laws +# Plasma confinement time ## Overview @@ -32,6 +32,23 @@ where $f_{\alpha}$ is the [fraction of alpha power that is coupled to the plasma ---------- +## Calculating plasma confinement time | `calculate_confinement_time()` + +The correspoding plasma confinement time is calculated by the `calculate_confinement_time()` function in `physics.py` with scalings taken from `confinement_time.py`. + +A key definition of elongation is defined here and is used mainly in the ITER physics basis scalings [^12]: + +$$ +\kappa_{\text{IPB}} = \frac{V_{\text{p}}}{2\pi R}\frac{1}{\pi a^2} +$$ + +where $V_{\text{p}}$ is the plasma volume, $R$ is the plasma major radius and $a$ is the plasma minor radius. + +The loss power $P_{\text{L}}$ [$\mathtt{powerht}$] is calculated from above but may have a separate radiation term depending on the condition of `i_rad_loss` switch below. + + +------------- + ### Effect of radiation on energy confinement Published confinement scalings are all based on low radiation pulses. A power @@ -69,22 +86,24 @@ $$ ### Ignition Switch `ignite` can be used to denote whether the plasma is ignited, i.e. fully self-sustaining -without the need for any injected auxiliary power during the burn. If `ignite = 1`, the calculated -injected power does not contribute to the plasma power balance, although the cost of the auxiliary -power system is taken into account (the system is then assumed to be required to provide heating -and/or current drive during the plasma start-up phase only). If `ignite` = 0, the plasma is not -ignited, and the auxiliary power is taken into account in the plasma power balance during the burn -phase. An ignited plasma will be difficult to control and is unlikely to be practical. This +without the need for any injected auxiliary power during the burn. If `ignite = 1`, the heating and current drive power $P_{\text{HCD}}$, does not contribute to the loss power term. + +If `ignite = 0`, the plasma is not ignited, and the heating and current drive power $P_{\text{HCD}}$, does contribute to the loss power term. +phase. An ignited plasma will be difficult to control and is unlikely to be practical. This option is not recommended. ---------- -## Available confinement time scalings +### Available confinement time scalings -Many energy confinement time scaling laws are available within PROCESS, for conventional aspect ratio tokamaks, spherical tokamaks, and stellarators. These are calculated in routine `calculate_confinement_time()`. +Many energy confinement time scaling laws are available within PROCESS, for conventional aspect ratio tokamaks, spherical tokamaks, and stellarators. The value of `i_confinement_time` determines which of the scalings is used in the plasma energy balance calculation. -### 0: User input confinement time +The scaling chosen with `i_confinement_time` is then calculated and multiplied with the $H$-factor [$\mathtt{hfact}$]. $\mathtt{hfact}$ can be set as an interation variable by setting `ixc = 10` in the `IN.DAT` input file. + +--------------- + +#### 0: User input confinement time Is selected with `i_confinement_time = 0` @@ -94,7 +113,7 @@ $$ ------------ -### 1: Nec-Alcator scaling (Ohmic) +#### 1: Nec-Alcator scaling (Ohmic) Is selected with `i_confinement_time = 1`[^1] @@ -104,7 +123,7 @@ $$ ------------ -### 2: Mirnov scaling (H-mode) +#### 2: Mirnov scaling (H-mode) Is selected with `i_confinement_time = 2`[^1] @@ -114,7 +133,7 @@ $$ ------------ -### 3: Merezhkin-Mukhovatov scaling (Ohmic / L-mode) +#### 3: Merezhkin-Mukhovatov scaling (Ohmic / L-mode) Is selected with `i_confinement_time = 3`[^1] @@ -125,7 +144,7 @@ $$ --------------- -### 4: Shimomura scaling (H-mode) +#### 4: Shimomura scaling (H-mode) Is selected with `i_confinement_time = 4`[^1] @@ -135,7 +154,7 @@ $$ ---------------- -### 5: Kaye-Goldston scaling (L-mode) +#### 5: Kaye-Goldston scaling (L-mode) Is selected with `i_confinement_time = 5`[^1] @@ -145,7 +164,7 @@ $$ ---------------- -### 6: ITER 89-P scaling (L-mode) +#### 6: ITER 89-P scaling (L-mode) Is selected with `i_confinement_time = 6`[^1] [^2] @@ -155,7 +174,7 @@ $$ ---------------- -### 7: ITER 89-0 scaling (L-mode) +#### 7: ITER 89-0 scaling (L-mode) Is selected with `i_confinement_time = 7` [^2] @@ -168,7 +187,7 @@ $$ ---------------- -### 8: Rebut-Lallia scaling (L-mode) +#### 8: Rebut-Lallia scaling (L-mode) Is selected with `i_confinement_time = 8` [^2] @@ -183,7 +202,7 @@ where $\ell = \left(a^2R\kappa\right)^{\frac{1}{3}}$ ---------------- -### 9: Goldston scaling (L-mode) +#### 9: Goldston scaling (L-mode) Is selected with `i_confinement_time = 9` [^1] @@ -193,7 +212,7 @@ $$ ---------------- -### 10: T-10 scaling (L-mode) +#### 10: T-10 scaling (L-mode) Is selected with `i_confinement_time = 10` [^1] @@ -206,7 +225,7 @@ where $\overline{n}_{20*} = 1.3\left(\frac{B_{\text{T}}}{Rq_{\text{cyl}}}\right) ---------------- -### 11: JAERI / Odajima-Shimomura scaling (L-mode) +#### 11: JAERI / Odajima-Shimomura scaling (L-mode) Is selected with `i_confinement_time = 11` [^1] @@ -220,7 +239,7 @@ where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\ ---------------- -### 12: Kaye "big" scaling (L-mode) +#### 12: Kaye "big" scaling (L-mode) Is selected with `i_confinement_time = 12` [^1] @@ -230,7 +249,7 @@ $$ ------------------------- -### 13: ITER H90-P scaling (H-mode) +#### 13: ITER H90-P scaling (H-mode) Is selected with `i_confinement_time = 13` [^2] @@ -240,7 +259,7 @@ $$ ------------------------- -### 14: Minimum of ITER 89-P and ITER 89-O +#### 14: Minimum of ITER 89-P and ITER 89-O Is selected with `i_confinement_time = 14` [^1] [^2] @@ -248,7 +267,7 @@ Will return the value of [ITER 89-P](#6-iter-89-p-l-mode-scaling) or [ITER 89-O] ------------------------- -### 15: Riedel scaling (L-mode) +#### 15: Riedel scaling (L-mode) Is selected with `i_confinement_time = 15` [^2] @@ -258,7 +277,7 @@ $$ ------------------------- -### 16: Christiansen scaling (L-mode) +#### 16: Christiansen scaling (L-mode) Is selected with `i_confinement_time = 16` [^2] @@ -268,7 +287,7 @@ $$ ------------------------- -### 17: Lackner-Gottardi scaling (L-mode) +#### 17: Lackner-Gottardi scaling (L-mode) Is selected with `i_confinement_time = 17` [^2] @@ -280,7 +299,7 @@ where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I R}$ ------------------------- -### 18: Neo-Kaye scaling (L-mode) +#### 18: Neo-Kaye scaling (L-mode) Is selected with `i_confinement_time = 18` [^2] @@ -290,7 +309,7 @@ $$ ------------------------- -### 19: Riedel scaling (H-mode) +#### 19: Riedel scaling (H-mode) Is selected with `i_confinement_time = 19` [^2] @@ -300,7 +319,7 @@ $$ ------------------------- -### 20: Amended ITER H90-P scaling (H-mode) +#### 20: Amended ITER H90-P scaling (H-mode) Is selected with `i_confinement_time = 20` [^3] @@ -310,7 +329,7 @@ $$ ------------------------- -### 21: Sudo et al. scaling (Stellarator) +#### 21: Sudo et al. scaling (Stellarator) Is selected with `i_confinement_time = 21` [^4] @@ -320,7 +339,7 @@ $$ ------------------------- -### 22: Gyro reduced Bohm scaling (Stellarator) +#### 22: Gyro reduced Bohm scaling (Stellarator) Is selected with `i_confinement_time = 22` [^5] @@ -330,7 +349,7 @@ $$ ------------------------- -### 23: Lackner-Gottardi scaling (Stellarator) +#### 23: Lackner-Gottardi scaling (Stellarator) Is selected with `i_confinement_time = 23` [^6] @@ -340,7 +359,7 @@ $$ ------------------------- -### 24: ITER H93 ELM-free scaling (H-mode) +#### 24: ITER H93 ELM-free scaling (H-mode) Is selected with `i_confinement_time = 24` [^7] @@ -350,7 +369,7 @@ $$ ------------------------- -### 25: TITAN Reversed-Field_Pinch scaling +#### 25: TITAN Reversed-Field_Pinch scaling Is selected with `i_confinement_time = 25` @@ -359,7 +378,7 @@ Is selected with `i_confinement_time = 25` ------------------------- -### 26: ITER H-97P ELM-free scaling (H-mode) +#### 26: ITER H-97P ELM-free scaling (H-mode) Is selected with `i_confinement_time = 26` [^8] @@ -369,7 +388,7 @@ $$ ------------------------- -### 27: ITER H-97P ELMy scaling (H-mode) +#### 27: ITER H-97P ELMy scaling (H-mode) Is selected with `i_confinement_time = 27` [^8] [^9] @@ -379,7 +398,7 @@ $$ ------------------------- -### 28: ITER-96P (ITER-97L) scaling (L-mode) +#### 28: ITER-96P (ITER-97L) scaling (L-mode) Is selected with `i_confinement_time = 28` [^10] @@ -389,7 +408,7 @@ $$ ------------------------- -### 29: Valovic modified ELMy scaling (H-mode) +#### 29: Valovic modified ELMy scaling (H-mode) Is selected with `i_confinement_time = 29` @@ -402,7 +421,7 @@ $$ ------------------------- -### 30: Kaye 98 modified scaling (L-mode) +#### 30: Kaye 98 modified scaling (L-mode) Is selected with `i_confinement_time = 30` @@ -415,7 +434,7 @@ $$ ------------------------- -### 31: ITERH-PB98P(y) scaling (H-mode) +#### 31: ITERH-PB98P(y) scaling (H-mode) Is selected with `i_confinement_time = 31` @@ -428,7 +447,7 @@ $$ ------------------------- -### 32: IPB98(y) ELMy scaling (H-mode) +#### 32: IPB98(y) ELMy scaling (H-mode) Is selected with `i_confinement_time = 32` [^11] [^12] @@ -438,7 +457,7 @@ $$ ------------------------- -### 33: IPB98(y,1) ELMy scaling (H-mode) +#### 33: IPB98(y,1) ELMy scaling (H-mode) Is selected with `i_confinement_time = 33` [^11] [^12] @@ -448,7 +467,7 @@ $$ ------------------------- -### 34: IPB98(y,2) ELMy scaling (H-mode) +#### 34: IPB98(y,2) ELMy scaling (H-mode) Is selected with `i_confinement_time = 34` [^11] [^12] @@ -458,7 +477,7 @@ $$ ------------------------- -### 35: IPB98(y,3) ELMy scaling (H-mode) +#### 35: IPB98(y,3) ELMy scaling (H-mode) Is selected with `i_confinement_time = 35` [^11] [^12] @@ -468,7 +487,7 @@ $$ ------------------------- -### 36: IPB98(y,4) ELMy scaling (H-mode) +#### 36: IPB98(y,4) ELMy scaling (H-mode) Is selected with `i_confinement_time = 36` [^11] [^12] @@ -479,7 +498,7 @@ $$ ------------------------- -### 37: ISS95 scaling (Stellarator) +#### 37: ISS95 scaling (Stellarator) Is selected with `i_confinement_time = 37` [^13] @@ -490,7 +509,7 @@ $$ ------------------------- -### 38: ISS04 scaling (Stellarator) +#### 38: ISS04 scaling (Stellarator) Is selected with `i_confinement_time = 38` [^14] @@ -500,7 +519,7 @@ $$ ------------------------- -### 39: DS03 beta-independent scaling (H-mode) +#### 39: DS03 beta-independent scaling (H-mode) Is selected with `i_confinement_time = 39` [^15] @@ -510,7 +529,7 @@ $$ ------------------------- -### 40: Murari "Non-power law" scaling (H-mode) +#### 40: Murari "Non-power law" scaling (H-mode) Is selected with `i_confinement_time = 40` [^16] @@ -521,7 +540,7 @@ $$ ------------------------- -### 41: Petty08 scaling (H-mode) +#### 41: Petty08 scaling (H-mode) Is selected with `i_confinement_time = 41` [^17] @@ -531,7 +550,7 @@ $$ ------------------------- -### 42: Lang high density scaling (H-mode) +#### 42: Lang high density scaling (H-mode) Is selected with `i_confinement_time = 42` [^18] @@ -542,7 +561,7 @@ $$ ------------------------- -### 43: Hubbard nominal scaling (I-mode) +#### 43: Hubbard nominal scaling (I-mode) Is selected with `i_confinement_time = 43` [^19] @@ -552,7 +571,7 @@ $$ ------------------------- -### 44: Hubbard lower scaling (I-mode) +#### 44: Hubbard lower scaling (I-mode) Is selected with `i_confinement_time = 44` [^19] @@ -562,7 +581,7 @@ $$ ------------------------- -### 45: Hubbard upper scaling (I-mode) +#### 45: Hubbard upper scaling (I-mode) Is selected with `i_confinement_time = 45` [^19] @@ -573,7 +592,7 @@ $$ ------------------------- -### 46: Menard NSTX scaling (H-mode) +#### 46: Menard NSTX scaling (H-mode) Is selected with `i_confinement_time = 46` [^20] @@ -583,7 +602,7 @@ $$ ------------------------- -### 47: Menard NSTX-Petty08 hybrid scaling +#### 47: Menard NSTX-Petty08 hybrid scaling Is selected with `i_confinement_time = 47` [^20] @@ -598,7 +617,7 @@ $$ ------------------------- -### 48: Buxton NSTX Gyro-Bohm scaling (H-mode) +#### 48: Buxton NSTX Gyro-Bohm scaling (H-mode) Is selected with `i_confinement_time = 48` [^21] @@ -608,7 +627,7 @@ $$ ------------------------- -### 49: ITPA20 scaling (H-mode) +#### 49: ITPA20 scaling (H-mode) Is selected with `i_confinement_time = 49` [^22] @@ -618,7 +637,7 @@ $$ ------------------------- -### 50: ITPA20-IL scaling (H-mode) +#### 50: ITPA20-IL scaling (H-mode) Is selected with `i_confinement_time = 50` [^23] @@ -628,6 +647,36 @@ $$ ------------------------- +### Trasnport Powers + +After the confinement time scaling with $H$-factor correction have been calculated the ion and electron transport power densities are found. `PROCESS` assumes the scaling confinement time to be equal to the ion and electron energy confinement time. + +This is simply the volume averaged thermal energy of the electron and ions divided by the $H$-factor corrected confinement time form the chosen scaling. + +$$ +\mathtt{pden\_ion\_transport\_loss\_mw} = \frac{3}{2}\frac{n_{\text{i}} \langle T_{\text{i}} \rangle_{\text{n}}}{\tau_{\text{E}}} +$$ + +$$ +\mathtt{pden\_electron\_transport\_loss\_mw} = \frac{3}{2}\frac{n_{\text{e}} \langle T_{\text{e}} \rangle_{\text{n}}}{\tau_{\text{E}}} +$$ + +Here $\langle T_{\text{i}} \rangle$ and $\langle T_{\text{e}} \rangle$ are the ion and electron density weighted temperatures respectively. + +Calculate the density and density weighted ratio: + +$$ +\frac{n_{\text{i}}}{n_{\text{e}}}\frac{\langle T_{\text{i}} \rangle_{\text{n}}}{\langle T_{\text{e}} \rangle_{\text{n}}} +$$ + +The density weighted global energy confinement time is then found as thus via this ratio: + +$$ +\tau_{\text{E}} = \frac{\frac{n_{\text{i}}}{n_{\text{e}}}\frac{\langle T_{\text{i}} \rangle_{\text{n}}}{\langle T_{\text{e}} \rangle_{\text{n}}} + 1}{\left(\frac{\frac{n_{\text{i}}}{n_{\text{e}}}\frac{\langle T_{\text{i}} \rangle_{\text{n}}}{\langle T_{\text{e}} \rangle_{\text{n}}}}{\tau_{\text{i}}}+\frac{1}{\tau_{\text{e}}}\right)} +$$ + +---------- + ## Key Constraints ### Global plasma power balance diff --git a/process/physics.py b/process/physics.py index 3f6d1a35b4..09bee6a150 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7427,13 +7427,13 @@ def calculate_confinement_time( t_electron_energy_confinement = hfact * t_electron_confinement # Ion energy confinement time - # N.B. Overwrites earlier calculation above t_ion_energy_confinement = t_electron_energy_confinement # Calculation of the transport power loss terms # Transport losses in Watts/m3 are 3/2 * n.e.T / tau , with T in eV # (here, tin and ten are in keV, and pden_electron_transport_loss_mw and pden_ion_transport_loss_mw are in MW/m3) + # The transport losses is just the electron and ion thermal energies divided by the confinement time. pden_ion_transport_loss_mw = ( (3 / 2) * (constants.electron_charge / 1e3) From b21e4986c96c9d96b39573a8c315710c45a7e909 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 15:11:57 +0000 Subject: [PATCH 101/106] Rename powerht to p_plasma_loss_mw for clarity and consistency across the codebase and documentation --- .../physics-models/plasma_confinement.md | 2 +- .../data/csv_output_large_tokamak_MFILE.DAT | 2 +- examples/data/large_tokamak_1_MFILE.DAT | 2 +- examples/data/large_tokamak_2_MFILE.DAT | 2 +- examples/data/large_tokamak_3_MFILE.DAT | 2 +- examples/data/large_tokamak_4_MFILE.DAT | 2 +- examples/data/scan_MFILE.DAT | 18 +- process/confinement_time.py | 286 +++++++++--------- process/io/mfile_comparison.py | 4 +- process/io/plot_proc.py | 10 +- process/physics.py | 142 +++++---- process/stellarator.py | 8 +- source/fortran/physics_variables.f90 | 108 +++---- .../data/large_tokamak_1_MFILE.DAT | 2 +- .../data/large_tokamak_2_MFILE.DAT | 2 +- .../data/large_tokamak_3_MFILE.DAT | 2 +- .../data/large_tokamak_4_MFILE.DAT | 2 +- .../integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 30 +- tests/integration/data/scan_MFILE.DAT | 18 +- tests/integration/ref_dicts.json | 6 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- tests/unit/test_physics.py | 40 +-- tracking/tracking_data.py | 2 +- 24 files changed, 365 insertions(+), 331 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 7e80e47d95..163094b36c 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -44,7 +44,7 @@ $$ where $V_{\text{p}}$ is the plasma volume, $R$ is the plasma major radius and $a$ is the plasma minor radius. -The loss power $P_{\text{L}}$ [$\mathtt{powerht}$] is calculated from above but may have a separate radiation term depending on the condition of `i_rad_loss` switch below. +The loss power $P_{\text{L}}$ [$\mathtt{p_plasma_loss_mw}$] is calculated from above but may have a separate radiation term depending on the condition of `i_rad_loss` switch below. ------------- diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index 7619df1944..9f75e96088 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -494,7 +494,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2379E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.6225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2095E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.8997E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.8997E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9376E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2315E+01 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index 529a186cda..40b059ade4 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -490,7 +490,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index 084e53bbfc..60fac31f8a 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -490,7 +490,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index c1d90cafa2..3d9ad7a0ca 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -490,7 +490,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index bd9fc28635..e8e1b49ddc 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -490,7 +490,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 0e7dc5d6d9..7f888ab8d3 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -347,7 +347,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -1342,7 +1342,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -2337,7 +2337,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -3332,7 +3332,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -4327,7 +4327,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -5322,7 +5322,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -6317,7 +6317,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -7312,7 +7312,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -8307,7 +8307,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 diff --git a/process/confinement_time.py b/process/confinement_time.py index 016fcae38e..82476145b9 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -123,7 +123,7 @@ def kaye_goldston_confinement_time( afuel: float, bt: float, rminor: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Kaye-Goldston (KG) L-mode scaling confinement time @@ -137,7 +137,7 @@ def kaye_goldston_confinement_time( afuel (float): Fuel atomic mass number bt (float): Toroidal magnetic field [T] rminor (float): Plasma minor radius [m] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Kaye-Goldston confinement time [s] @@ -157,7 +157,7 @@ def kaye_goldston_confinement_time( * n20**0.26e0 * rmajor**1.65e0 * np.sqrt(afuel / 1.5e0) - / (bt**0.09e0 * rminor**0.49e0 * powerht**0.58e0) + / (bt**0.09e0 * rminor**0.49e0 * p_plasma_loss_mw**0.58e0) ) @@ -169,7 +169,7 @@ def iter_89p_confinement_time( dnla20: float, bt: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the ITER Power scaling - ITER 89-P (L-mode) confinement time @@ -182,7 +182,7 @@ def iter_89p_confinement_time( dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: ITER 89-P confinement time [s] @@ -204,7 +204,7 @@ def iter_89p_confinement_time( * dnla20**0.1e0 * bt**0.2e0 * np.sqrt(afuel) - / np.sqrt(powerht) + / np.sqrt(p_plasma_loss_mw) ) @@ -216,7 +216,7 @@ def iter_89_0_confinement_time( dnla20: float, bt: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the ITER Offset linear scaling - ITER 89-O (L-mode) confinement time @@ -229,7 +229,7 @@ def iter_89_0_confinement_time( dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: ITER 89-O confinement time [s] @@ -257,7 +257,7 @@ def iter_89_0_confinement_time( * dnla20**0.6e0 * bt**0.35e0 * afuel**0.2e0 - / powerht + / p_plasma_loss_mw ) return term1 + term2 @@ -271,7 +271,7 @@ def rebut_lallia_confinement_time( zeff: float, dnla20: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Rebut-Lallia offset linear scaling (L-mode) confinement time @@ -285,7 +285,7 @@ def rebut_lallia_confinement_time( zeff (float): Effective charge dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Rebut-Lallia confinement time [s] @@ -304,7 +304,7 @@ def rebut_lallia_confinement_time( * np.sqrt(bt) * rll**2.75e0 * zeff**0.25e0 - / powerht + / p_plasma_loss_mw ) return 1.65e0 * np.sqrt(afuel / 2.0e0) * (term1 + term2) @@ -315,7 +315,7 @@ def goldston_confinement_time( rminor: float, kappa95: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Goldston scaling (L-mode) confinement time @@ -326,7 +326,7 @@ def goldston_confinement_time( rminor (float): Plasma minor radius [m] kappa95 (float): Plasma elongation at 95% flux surface afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Goldston confinement time [s] @@ -345,7 +345,7 @@ def goldston_confinement_time( * rminor ** (-0.37e0) * np.sqrt(kappa95) * np.sqrt(afuel / 1.5e0) - / np.sqrt(powerht) + / np.sqrt(p_plasma_loss_mw) ) @@ -356,7 +356,7 @@ def t10_confinement_time( bt: float, rminor: float, kappa95: float, - powerht: float, + p_plasma_loss_mw: float, zeff: float, pcur: float, ) -> float: @@ -370,7 +370,7 @@ def t10_confinement_time( bt (float): Toroidal magnetic field [T] rminor (float): Plasma minor radius [m] kappa95 (float): Plasma elongation at 95% flux surface - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] zeff (float): Effective charge pcur (float): Plasma current [MA] @@ -392,7 +392,7 @@ def t10_confinement_time( * bt * np.sqrt(kappa95) * denfac - / powerht**0.4e0 + / p_plasma_loss_mw**0.4e0 * (zeff**2 * pcur**4 / (rmajor * rminor * qstar**3 * kappa95**1.5e0)) ** 0.08e0 ) @@ -407,7 +407,7 @@ def jaeri_confinement_time( rmajor: float, qstar: float, zeff: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the JAERI / Odajima-Shimomura L-mode scaling confinement time @@ -422,7 +422,7 @@ def jaeri_confinement_time( rmajor (float): Plasma major radius [m] qstar (float): Equivalent cylindrical edge safety factor zeff (float): Effective charge - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: JAERI confinement time [s] @@ -450,7 +450,7 @@ def jaeri_confinement_time( * np.sqrt(afuel) * gjaeri * kappa95**0.2e0 - / powerht + / p_plasma_loss_mw ) @@ -462,7 +462,7 @@ def kaye_big_confinement_time( pcur: float, n20: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Kaye-Big scaling confinement time @@ -475,7 +475,7 @@ def kaye_big_confinement_time( pcur (float): Plasma current [MA] n20 (float): Line averaged electron density in units of 10**20 m**-3 afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Kaye-Big confinement time [s] @@ -495,7 +495,7 @@ def kaye_big_confinement_time( * pcur**0.85e0 * n20**0.1e0 * np.sqrt(afuel) - / np.sqrt(powerht) + / np.sqrt(p_plasma_loss_mw) ) @@ -507,7 +507,7 @@ def iter_h90_p_confinement_time( dnla20: float, bt: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the ITER H-mode scaling - ITER H90-P confinement time @@ -520,7 +520,7 @@ def iter_h90_p_confinement_time( dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: ITER H90-P confinement time [s] @@ -539,7 +539,7 @@ def iter_h90_p_confinement_time( * dnla20**0.09e0 * bt**0.15e0 * np.sqrt(afuel) - / np.sqrt(powerht) + / np.sqrt(p_plasma_loss_mw) ) @@ -550,7 +550,7 @@ def riedel_l_confinement_time( kappa95: float, dnla20: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Riedel scaling (L-mode) confinement time @@ -562,7 +562,7 @@ def riedel_l_confinement_time( kappa95 (float): Plasma elongation at 95% flux surface dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Riedel confinement time [s] @@ -580,7 +580,7 @@ def riedel_l_confinement_time( * kappa95**0.588e0 * dnla20**0.078e0 * bt**0.152e0 - / powerht**0.537e0 + / p_plasma_loss_mw**0.537e0 ) @@ -591,7 +591,7 @@ def christiansen_confinement_time( kappa95: float, dnla20: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, afuel: float, ) -> float: """ @@ -604,7 +604,7 @@ def christiansen_confinement_time( kappa95 (float): Plasma elongation at 95% flux surface dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] afuel (float): Fuel atomic mass number Returns: @@ -623,7 +623,7 @@ def christiansen_confinement_time( * kappa95**0.73e0 * dnla20**0.41e0 * bt**0.29e0 - / (powerht**0.79e0 * afuel**0.02e0) + / (p_plasma_loss_mw**0.79e0 * afuel**0.02e0) ) @@ -634,7 +634,7 @@ def lackner_gottardi_confinement_time( kappa95: float, dnla20: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Lackner-Gottardi scaling (L-mode) confinement time @@ -646,7 +646,7 @@ def lackner_gottardi_confinement_time( kappa95 (float): Plasma elongation at 95% flux surface dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Lackner-Gottardi confinement time [s] @@ -667,7 +667,7 @@ def lackner_gottardi_confinement_time( * (1.0e0 + kappa95) ** (-0.8e0) * dnla20**0.6e0 * qhat**0.4e0 - / powerht**0.6e0 + / p_plasma_loss_mw**0.6e0 ) @@ -678,7 +678,7 @@ def neo_kaye_confinement_time( kappa95: float, dnla20: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Neo-Kaye scaling (L-mode) confinement time @@ -690,7 +690,7 @@ def neo_kaye_confinement_time( kappa95 (float): Plasma elongation at 95% flux surface dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Neo-Kaye confinement time [s] @@ -708,7 +708,7 @@ def neo_kaye_confinement_time( * kappa95**0.28e0 * dnla20**0.14e0 * bt**0.04e0 - / powerht**0.59e0 + / p_plasma_loss_mw**0.59e0 ) @@ -720,7 +720,7 @@ def riedel_h_confinement_time( dnla20: float, bt: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Riedel scaling (H-mode) confinement time @@ -733,7 +733,7 @@ def riedel_h_confinement_time( dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Riedel H-mode confinement time [s] @@ -752,7 +752,7 @@ def riedel_h_confinement_time( * kappa95**0.317e0 * bt**0.207e0 * dnla20**0.105e0 - / powerht**0.486e0 + / p_plasma_loss_mw**0.486e0 ) @@ -761,7 +761,7 @@ def iter_h90_p_amended_confinement_time( bt: float, afuel: float, rmajor: float, - powerht: float, + p_plasma_loss_mw: float, kappa: float, ) -> float: """ @@ -772,7 +772,7 @@ def iter_h90_p_amended_confinement_time( bt (float): Toroidal magnetic field [T] afuel (float): Fuel atomic mass number rmajor (float): Plasma major radius [m] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] kappa (float): Plasma elongation Returns: @@ -792,7 +792,7 @@ def iter_h90_p_amended_confinement_time( * bt**0.15e0 * np.sqrt(afuel) * rmajor**1.60e0 - / (powerht**0.47e0 * kappa**0.19e0) + / (p_plasma_loss_mw**0.47e0 * kappa**0.19e0) ) @@ -801,7 +801,7 @@ def sudo_et_al_confinement_time( rminor: float, dnla20: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Sudo et al. scaling confinement time @@ -811,7 +811,7 @@ def sudo_et_al_confinement_time( rminor (float): Plasma minor radius [m] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Sudo et al. confinement time [s] @@ -830,14 +830,14 @@ def sudo_et_al_confinement_time( * rminor**2 * dnla20**0.69e0 * bt**0.84e0 - * powerht ** (-0.58e0) + * p_plasma_loss_mw ** (-0.58e0) ) def gyro_reduced_bohm_confinement_time( bt: float, dnla20: float, - powerht: float, + p_plasma_loss_mw: float, rminor: float, rmajor: float, ) -> float: @@ -847,7 +847,7 @@ def gyro_reduced_bohm_confinement_time( Parameters: bt (float): Toroidal magnetic field [T] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rminor (float): Plasma minor radius [m] rmajor (float): Plasma major radius [m] @@ -864,7 +864,7 @@ def gyro_reduced_bohm_confinement_time( 0.25e0 * bt**0.8e0 * dnla20**0.6e0 - * powerht ** (-0.6e0) + * p_plasma_loss_mw ** (-0.6e0) * rminor**2.4e0 * rmajor**0.6e0 ) @@ -875,7 +875,7 @@ def lackner_gottardi_stellarator_confinement_time( rminor: float, dnla20: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, q: float, ) -> float: """ @@ -886,7 +886,7 @@ def lackner_gottardi_stellarator_confinement_time( rminor (float): Plasma minor radius [m] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] q (float): Edge safety factor Returns: @@ -906,7 +906,7 @@ def lackner_gottardi_stellarator_confinement_time( * rminor**2 * dnla20**0.6e0 * bt**0.8e0 - * powerht ** (-0.6e0) + * p_plasma_loss_mw ** (-0.6e0) * q**0.4e0 ) @@ -914,7 +914,7 @@ def lackner_gottardi_stellarator_confinement_time( def iter_93h_confinement_time( pcur: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, afuel: float, rmajor: float, dnla20: float, @@ -927,7 +927,7 @@ def iter_93h_confinement_time( Parameters: pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] afuel (float): Fuel atomic mass number rmajor (float): Plasma major radius [m] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 @@ -948,7 +948,7 @@ def iter_93h_confinement_time( 0.036e0 * pcur**1.06e0 * bt**0.32e0 - * powerht ** (-0.67e0) + * p_plasma_loss_mw ** (-0.67e0) * afuel**0.41e0 * rmajor**1.79e0 * dnla20**0.17e0 @@ -960,7 +960,7 @@ def iter_93h_confinement_time( def iter_h97p_confinement_time( pcur: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, dnla19: float, rmajor: float, aspect: float, @@ -973,7 +973,7 @@ def iter_h97p_confinement_time( Parameters: pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 rmajor (float): Plasma major radius [m] aspect (float): Aspect ratio @@ -995,7 +995,7 @@ def iter_h97p_confinement_time( 0.031e0 * pcur**0.95e0 * bt**0.25e0 - * powerht ** (-0.67e0) + * p_plasma_loss_mw ** (-0.67e0) * dnla19**0.35e0 * rmajor**1.92e0 * aspect ** (-0.08e0) @@ -1007,7 +1007,7 @@ def iter_h97p_confinement_time( def iter_h97p_elmy_confinement_time( pcur: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, dnla19: float, rmajor: float, aspect: float, @@ -1020,7 +1020,7 @@ def iter_h97p_elmy_confinement_time( Parameters: pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 rmajor (float): Plasma major radius [m] aspect (float): Aspect ratio @@ -1044,7 +1044,7 @@ def iter_h97p_elmy_confinement_time( 0.029e0 * pcur**0.90e0 * bt**0.20e0 - * powerht ** (-0.66e0) + * p_plasma_loss_mw ** (-0.66e0) * dnla19**0.40e0 * rmajor**2.03e0 * aspect ** (-0.19e0) @@ -1061,7 +1061,7 @@ def iter_96p_confinement_time( aspect: float, dnla19: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the ITER-96P (= ITER-97L) L-mode scaling confinement time @@ -1074,7 +1074,7 @@ def iter_96p_confinement_time( aspect (float): Aspect ratio dnla19 (float): Line averaged electron density in units of 10**19 m**-3 afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: ITER-96P confinement time [s] @@ -1097,7 +1097,7 @@ def iter_96p_confinement_time( * aspect**0.06e0 * dnla19**0.40e0 * afuel**0.20e0 - * powerht ** (-0.73e0) + * p_plasma_loss_mw ** (-0.73e0) ) @@ -1109,7 +1109,7 @@ def valovic_elmy_confinement_time( rmajor: float, rminor: float, kappa: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Valovic modified ELMy-H mode scaling confinement time @@ -1123,7 +1123,7 @@ def valovic_elmy_confinement_time( rmajor (float): Plasma major radius [m] rminor (float): Plasma minor radius [m] kappa (float): Plasma elongation - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Valovic modified ELMy-H mode confinement time [s] @@ -1141,7 +1141,7 @@ def valovic_elmy_confinement_time( * rmajor**1.316e0 * rminor**0.79e0 * kappa**0.56e0 - * powerht ** (-0.68e0) + * p_plasma_loss_mw ** (-0.68e0) ) @@ -1153,7 +1153,7 @@ def kaye_confinement_time( aspect: float, dnla19: float, afuel: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Kaye PPPL Workshop April 1998 L-mode scaling confinement time @@ -1166,7 +1166,7 @@ def kaye_confinement_time( aspect (float): Aspect ratio dnla19 (float): Line averaged electron density in units of 10**19 m**-3 afuel (float): Fuel atomic mass number - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Kaye PPPL Workshop confinement time [s] @@ -1185,7 +1185,7 @@ def kaye_confinement_time( * aspect ** (-0.18e0) * dnla19**0.47e0 * afuel**0.25e0 - * powerht ** (-0.73e0) + * p_plasma_loss_mw ** (-0.73e0) ) @@ -1193,7 +1193,7 @@ def iter_pb98py_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa: float, aspect: float, @@ -1206,7 +1206,7 @@ def iter_pb98py_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa (float): Plasma elongation aspect (float): Aspect ratio @@ -1225,7 +1225,7 @@ def iter_pb98py_confinement_time( * pcur**0.9e0 * bt**0.1e0 * dnla19**0.4e0 - * powerht ** (-0.66e0) + * p_plasma_loss_mw ** (-0.66e0) * rmajor**2 * kappa**0.75e0 * aspect ** (-0.66e0) @@ -1237,7 +1237,7 @@ def iter_ipb98y_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa: float, aspect: float, @@ -1250,7 +1250,7 @@ def iter_ipb98y_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa (float): Plasma separatrix elongation aspect (float): Aspect ratio @@ -1276,7 +1276,7 @@ def iter_ipb98y_confinement_time( * pcur**0.97e0 * bt**0.08e0 * dnla19**0.41e0 - * powerht ** (-0.63e0) + * p_plasma_loss_mw ** (-0.63e0) * rmajor**1.93e0 * kappa**0.67e0 * aspect ** (-0.23e0) @@ -1288,7 +1288,7 @@ def iter_ipb98y1_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa_ipb: float, aspect: float, @@ -1301,7 +1301,7 @@ def iter_ipb98y1_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa_ipb (float): IPB sprcific plasma separatrix elongation aspect (float): Aspect ratio @@ -1326,7 +1326,7 @@ def iter_ipb98y1_confinement_time( * pcur**0.91e0 * bt**0.15e0 * dnla19**0.44e0 - * powerht ** (-0.65e0) + * p_plasma_loss_mw ** (-0.65e0) * rmajor**2.05e0 * kappa_ipb**0.72e0 * aspect ** (-0.57e0) @@ -1338,7 +1338,7 @@ def iter_ipb98y2_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa_ipb: float, aspect: float, @@ -1351,7 +1351,7 @@ def iter_ipb98y2_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa_ipb (float): IPB specific plasma separatrix elongation aspect (float): Aspect ratio @@ -1375,7 +1375,7 @@ def iter_ipb98y2_confinement_time( * pcur**0.93e0 * bt**0.15e0 * dnla19**0.41e0 - * powerht ** (-0.69e0) + * p_plasma_loss_mw ** (-0.69e0) * rmajor**1.97e0 * kappa_ipb**0.78e0 * aspect ** (-0.58e0) @@ -1387,7 +1387,7 @@ def iter_ipb98y3_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa_ipb: float, aspect: float, @@ -1400,7 +1400,7 @@ def iter_ipb98y3_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa_ipb (float): IPB specific plasma separatrix elongation aspect (float): Aspect ratio @@ -1424,7 +1424,7 @@ def iter_ipb98y3_confinement_time( * pcur**0.88e0 * bt**0.07e0 * dnla19**0.40e0 - * powerht ** (-0.69e0) + * p_plasma_loss_mw ** (-0.69e0) * rmajor**2.15e0 * kappa_ipb**0.78e0 * aspect ** (-0.64e0) @@ -1436,7 +1436,7 @@ def iter_ipb98y4_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa_ipb: float, aspect: float, @@ -1449,7 +1449,7 @@ def iter_ipb98y4_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa_ipb (float): IPB specific plasma separatrix elongation aspect (float): Aspect ratio @@ -1473,7 +1473,7 @@ def iter_ipb98y4_confinement_time( * pcur**0.85e0 * bt**0.29e0 * dnla19**0.39e0 - * powerht ** (-0.70e0) + * p_plasma_loss_mw ** (-0.70e0) * rmajor**2.08e0 * kappa_ipb**0.76e0 * aspect ** (-0.69e0) @@ -1486,7 +1486,7 @@ def iss95_stellarator_confinement_time( rmajor: float, dnla19: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, iotabar: float, ) -> float: """ @@ -1497,7 +1497,7 @@ def iss95_stellarator_confinement_time( rmajor (float): Plasma major radius [m] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] iotabar (float): Rotational transform Returns: @@ -1516,7 +1516,7 @@ def iss95_stellarator_confinement_time( * rmajor**0.65e0 * dnla19**0.51e0 * bt**0.83e0 - * powerht ** (-0.59e0) + * p_plasma_loss_mw ** (-0.59e0) * iotabar**0.4e0 ) @@ -1526,7 +1526,7 @@ def iss04_stellarator_confinement_time( rmajor: float, dnla19: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, iotabar: float, ) -> float: """ @@ -1537,7 +1537,7 @@ def iss04_stellarator_confinement_time( rmajor (float): Plasma major radius [m] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] iotabar (float): Rotational transform Returns: @@ -1556,7 +1556,7 @@ def iss04_stellarator_confinement_time( * rmajor**0.64e0 * dnla19**0.54e0 * bt**0.84e0 - * powerht ** (-0.61e0) + * p_plasma_loss_mw ** (-0.61e0) * iotabar**0.41e0 ) @@ -1565,7 +1565,7 @@ def ds03_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa95: float, aspect: float, @@ -1578,7 +1578,7 @@ def ds03_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa95 (float): Plasma elongation at 95% flux surface aspect (float): Aspect ratio @@ -1600,7 +1600,7 @@ def ds03_confinement_time( * pcur**0.83e0 * bt**0.07e0 * dnla19**0.49e0 - * powerht ** (-0.55e0) + * p_plasma_loss_mw ** (-0.55e0) * rmajor**2.11e0 * kappa95**0.75e0 * aspect ** (-0.3e0) @@ -1614,7 +1614,7 @@ def murari_confinement_time( kappa_ipb: float, dnla19: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Murari H-mode energy confinement scaling time @@ -1625,7 +1625,7 @@ def murari_confinement_time( kappa_ipb (float): IPB specific plasma separatrix elongation dnla19 (float): Line averaged electron density in units of 10**19 m**-3 bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Murari confinement time [s] @@ -1646,7 +1646,7 @@ def murari_confinement_time( * pcur**1.006 * rmajor**1.731 * kappa_ipb**1.450 - * powerht ** (-0.735) + * p_plasma_loss_mw ** (-0.735) * (dnla19**0.448 / (1.0 + np.exp(-9.403 * (dnla19 / bt) ** -1.365))) ) @@ -1655,7 +1655,7 @@ def petty08_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa_ipb: float, aspect: float, @@ -1667,7 +1667,7 @@ def petty08_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa_ipb (float): IPB specific plasma separatrix elongation aspect (float): Aspect ratio @@ -1691,7 +1691,7 @@ def petty08_confinement_time( * pcur**0.75e0 * bt**0.3e0 * dnla19**0.32e0 - * powerht ** (-0.47e0) + * p_plasma_loss_mw ** (-0.47e0) * rmajor**2.09e0 * kappa_ipb**0.88e0 * aspect ** (-0.84e0) @@ -1702,7 +1702,7 @@ def lang_high_density_confinement_time( plasma_current: float, bt: float, dnla: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, rminor: float, q: float, @@ -1718,7 +1718,7 @@ def lang_high_density_confinement_time( plasma_current (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla (float): Line averaged electron density [m**-3] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] rminor (float): Plasma minor radius [m] q (float): Safety factor @@ -1746,7 +1746,7 @@ def lang_high_density_confinement_time( * plasma_current**1.3678e0 * bt**0.12e0 * dnla**0.032236e0 - * (powerht * 1.0e6) ** (-0.74e0) + * (p_plasma_loss_mw * 1.0e6) ** (-0.74e0) * rmajor**1.2345e0 * kappa_ipb**0.37e0 * aspect**2.48205e0 @@ -1761,7 +1761,7 @@ def hubbard_nominal_confinement_time( pcur: float, bt: float, dnla20: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Hubbard 2017 I-mode confinement time scaling - nominal @@ -1770,7 +1770,7 @@ def hubbard_nominal_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Hubbard confinement time [s] @@ -1782,14 +1782,20 @@ def hubbard_nominal_confinement_time( Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. ‌ """ - return 0.014e0 * pcur**0.68e0 * bt**0.77e0 * dnla20**0.02e0 * powerht ** (-0.29e0) + return ( + 0.014e0 + * pcur**0.68e0 + * bt**0.77e0 + * dnla20**0.02e0 + * p_plasma_loss_mw ** (-0.29e0) + ) def hubbard_lower_confinement_time( pcur: float, bt: float, dnla20: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Hubbard 2017 I-mode confinement time scaling - lower @@ -1798,7 +1804,7 @@ def hubbard_lower_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Hubbard confinement time [s] @@ -1811,7 +1817,11 @@ def hubbard_lower_confinement_time( ‌ """ return ( - 0.014e0 * pcur**0.60e0 * bt**0.70e0 * dnla20 ** (-0.03e0) * powerht ** (-0.33e0) + 0.014e0 + * pcur**0.60e0 + * bt**0.70e0 + * dnla20 ** (-0.03e0) + * p_plasma_loss_mw ** (-0.33e0) ) @@ -1819,7 +1829,7 @@ def hubbard_upper_confinement_time( pcur: float, bt: float, dnla20: float, - powerht: float, + p_plasma_loss_mw: float, ) -> float: """ Calculate the Hubbard 2017 I-mode confinement time scaling - upper @@ -1828,7 +1838,7 @@ def hubbard_upper_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] Returns: float: Hubbard confinement time [s] @@ -1840,14 +1850,20 @@ def hubbard_upper_confinement_time( Nuclear Fusion, vol. 57, no. 12, p. 126039, Oct. 2017, doi: https://doi.org/10.1088/1741-4326/aa8570. ‌ """ - return 0.014e0 * pcur**0.76e0 * bt**0.84e0 * dnla20**0.07 * powerht ** (-0.25e0) + return ( + 0.014e0 + * pcur**0.76e0 + * bt**0.84e0 + * dnla20**0.07 + * p_plasma_loss_mw ** (-0.25e0) + ) def menard_nstx_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa_ipb: float, aspect: float, @@ -1860,7 +1876,7 @@ def menard_nstx_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa_ipb (float): IPB specific plasma separatrix elongation aspect (float): Aspect ratio @@ -1888,7 +1904,7 @@ def menard_nstx_confinement_time( * pcur**0.57e0 * bt**1.08e0 * dnla19**0.44e0 - * powerht ** (-0.73e0) + * p_plasma_loss_mw ** (-0.73e0) * rmajor**1.97e0 * kappa_ipb**0.78e0 * aspect ** (-0.58e0) @@ -1900,7 +1916,7 @@ def menard_nstx_petty08_hybrid_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, kappa_ipb: float, aspect: float, @@ -1913,7 +1929,7 @@ def menard_nstx_petty08_hybrid_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Line averaged electron density in units of 10**19 m**-3 - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] kappa_ipb (float): IPB specific plasma separatrix elongation aspect (float): Aspect ratio @@ -1937,7 +1953,7 @@ def menard_nstx_petty08_hybrid_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, kappa_ipb, aspect, @@ -1949,7 +1965,7 @@ def menard_nstx_petty08_hybrid_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, kappa_ipb, aspect, @@ -1960,7 +1976,7 @@ def menard_nstx_petty08_hybrid_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, kappa_ipb, aspect, @@ -1971,7 +1987,7 @@ def menard_nstx_petty08_hybrid_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, kappa_ipb, aspect, @@ -1982,7 +1998,7 @@ def menard_nstx_petty08_hybrid_confinement_time( def nstx_gyro_bohm_confinement_time( pcur: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, dnla20: float, ) -> float: @@ -1992,7 +2008,7 @@ def nstx_gyro_bohm_confinement_time( Parameters: pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] - powerht (float): Net Heating power [MW] + p_plasma_loss_mw (float): Net Heating power [MW] rmajor (float): Plasma major radius [m] dnla20 (float): Line averaged electron density in units of 10**20 m**-3 @@ -2011,7 +2027,7 @@ def nstx_gyro_bohm_confinement_time( 0.21e0 * pcur**0.54e0 * bt**0.91e0 - * powerht ** (-0.38e0) + * p_plasma_loss_mw ** (-0.38e0) * rmajor**2.14e0 * dnla20 ** (-0.05e0) ) @@ -2021,7 +2037,7 @@ def itpa20_confinement_time( pcur: float, bt: float, dnla19: float, - powerht: float, + p_plasma_loss_mw: float, rmajor: float, triang: float, kappa_ipb: float, @@ -2035,7 +2051,7 @@ def itpa20_confinement_time( pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] dnla19 (float): Central line-averaged electron density in units of 10**19 m**-3 - powerht (float): Thermal power lost due to transport through the LCFS [MW] + p_plasma_loss_mw (float): Thermal power lost due to transport through the LCFS [MW] rmajor (float): Plasma major radius [m] triang (float): Triangularity kappa_ipb (float): IPB specific plasma separatrix elongation @@ -2058,7 +2074,7 @@ def itpa20_confinement_time( * pcur**0.98 * bt**0.22 * dnla19**0.24 - * powerht ** (-0.669) + * p_plasma_loss_mw ** (-0.669) * rmajor**1.71 * (1 + triang) ** 0.36 * kappa_ipb**0.8 @@ -2070,7 +2086,7 @@ def itpa20_confinement_time( def itpa20_il_confinement_time( pcur: float, bt: float, - powerht: float, + p_plasma_loss_mw: float, dnla19: float, aion: float, rmajor: float, @@ -2083,7 +2099,7 @@ def itpa20_il_confinement_time( Parameters: pcur (float): Plasma current [MA] bt (float): Toroidal magnetic field [T] - powerht (float): Thermal power lost due to transport through the LCFS [MW] + p_plasma_loss_mw (float): Thermal power lost due to transport through the LCFS [MW] dnla19 (float): Central line-averaged electron density in units of 10**19 m**-3 aion (float): Average mass of all ions (amu) rmajor (float): Plasma major radius [m] @@ -2106,7 +2122,7 @@ def itpa20_il_confinement_time( 0.067 * pcur**1.29 * bt**-0.13 - * powerht ** (-0.644) + * p_plasma_loss_mw ** (-0.644) * dnla19**0.15 * aion**0.3 * rmajor**1.19 diff --git a/process/io/mfile_comparison.py b/process/io/mfile_comparison.py index 9d82f0a54c..054127c07e 100644 --- a/process/io/mfile_comparison.py +++ b/process/io/mfile_comparison.py @@ -90,7 +90,7 @@ "inductive_current_fraction", "gamnb", "beam_energy", - "powerht", + "p_plasma_loss_mw", ] BASELINE_LIST = [ @@ -179,7 +179,7 @@ "inductive_current_fraction", "gamnb", "beam_energy", - "powerht", + "p_plasma_loss_mw", "pdivt", "vssoft", "vstot", diff --git a/process/io/plot_proc.py b/process/io/plot_proc.py index 06417ffb91..139dfacd37 100644 --- a/process/io/plot_proc.py +++ b/process/io/plot_proc.py @@ -2771,7 +2771,7 @@ def plot_current_drive_info(axis, mfile_data, scan): ("bootstrap_current_fraction", "Bootstrap fraction", ""), ("aux_current_fraction", "Auxiliary fraction", ""), ("inductive_current_fraction", "Inductive fraction", ""), - ("powerht", "Plasma heating used for H factor", "MW"), + ("p_plasma_loss_mw", "Plasma heating used for H factor", "MW"), ( "effcd", "Current drive efficiency", @@ -2803,7 +2803,7 @@ def plot_current_drive_info(axis, mfile_data, scan): ("inductive_current_fraction", "Inductive fraction", ""), ("gamnb", "NB gamma", "$10^{20}$ A W$^{-1}$ m$^{-2}$"), ("beam_energy", "NB energy", "keV"), - ("powerht", "Plasma heating used for H factor", "MW"), + ("p_plasma_loss_mw", "Plasma heating used for H factor", "MW"), (pdivr, r"$\frac{P_{\mathrm{div}}}{R_{0}}$", "MW m$^{-1}$"), ( pdivnr, @@ -2827,7 +2827,7 @@ def plot_current_drive_info(axis, mfile_data, scan): ("bootstrap_current_fraction", "Bootstrap fraction", ""), ("aux_current_fraction", "Auxiliary fraction", ""), ("inductive_current_fraction", "Inductive fraction", ""), - ("powerht", "Plasma heating used for H factor", "MW"), + ("p_plasma_loss_mw", "Plasma heating used for H factor", "MW"), ( "gamcd", "Normalised current drive efficiency", @@ -2856,7 +2856,7 @@ def plot_current_drive_info(axis, mfile_data, scan): ("bootstrap_current_fraction", "Bootstrap fraction", ""), ("aux_current_fraction", "Auxiliary fraction", ""), ("inductive_current_fraction", "Inductive fraction", ""), - ("powerht", "Plasma heating used for H factor", "MW"), + ("p_plasma_loss_mw", "Plasma heating used for H factor", "MW"), ( "gamcd", "Normalised current drive efficiency", @@ -2885,7 +2885,7 @@ def plot_current_drive_info(axis, mfile_data, scan): ("bootstrap_current_fraction", "Bootstrap fraction", ""), ("aux_current_fraction", "Auxiliary fraction", ""), ("inductive_current_fraction", "Inductive fraction", ""), - ("powerht", "Plasma heating used for H factor", "MW"), + ("p_plasma_loss_mw", "Plasma heating used for H factor", "MW"), ( "gamcd", "Normalised current drive efficiency", diff --git a/process/physics.py b/process/physics.py index 09bee6a150..18f715e79b 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2253,7 +2253,7 @@ def physics(self): physics_variables.t_electron_energy_confinement, physics_variables.t_energy_confinement, physics_variables.t_ion_energy_confinement, - physics_variables.powerht, + physics_variables.p_plasma_loss_mw, ) = self.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, @@ -5249,8 +5249,8 @@ def outplas(self): po.ovarre( self.outfile, "Transport loss power assumed in scaling law (MW)", - "(powerht)", - physics_variables.powerht, + "(p_plasma_loss_mw)", + physics_variables.p_plasma_loss_mw, "OP ", ) po.ovarin( @@ -5292,9 +5292,9 @@ def outplas(self): "(hstar)", physics_variables.hfact * ( - physics_variables.powerht + physics_variables.p_plasma_loss_mw / ( - physics_variables.powerht + physics_variables.p_plasma_loss_mw + physics_variables.pden_plasma_sync_mw + physics_variables.p_plasma_inner_rad_mw ) @@ -5309,9 +5309,9 @@ def outplas(self): "(hstar)", physics_variables.hfact * ( - physics_variables.powerht + physics_variables.p_plasma_loss_mw / ( - physics_variables.powerht + physics_variables.p_plasma_loss_mw + physics_variables.pden_plasma_rad_mw * physics_variables.vol_plasma ) @@ -6703,13 +6703,13 @@ def calculate_confinement_time( - t_electron_energy_confinement (float): Electron energy confinement time (s) - t_ion_energy_confinement (float): Ion energy confinement time (s) - t_energy_confinement (float): Global energy confinement time (s) - - powerht (float): Heating power (MW) assumed in calculation + - p_plasma_loss_mw (float): Heating power (MW) assumed in calculation """ # ======================================================================== # Calculate heating power (MW) - powerht = ( + p_plasma_loss_mw = ( physics_variables.f_alpha_plasma * alpha_power_total + non_alpha_charged_power + physics_variables.p_plasma_ohmic_mw @@ -6717,19 +6717,21 @@ def calculate_confinement_time( # If the device is not ignited, add the injected auxiliary power if ignite == 0: - powerht = powerht + pinjmw + p_plasma_loss_mw = p_plasma_loss_mw + pinjmw # Include the radiation as a loss term if requested if physics_variables.i_rad_loss == 0: - powerht = powerht - physics_variables.pden_plasma_rad_mw * vol_plasma + p_plasma_loss_mw = ( + p_plasma_loss_mw - physics_variables.pden_plasma_rad_mw * vol_plasma + ) elif physics_variables.i_rad_loss == 1: - powerht = ( - powerht - pcoreradpv * vol_plasma + p_plasma_loss_mw = ( + p_plasma_loss_mw - pcoreradpv * vol_plasma ) # shouldn't this be vol_core instead of vol_plasma? - # else do not adjust powerht for radiation + # else do not adjust p_plasma_loss_mw for radiation # Ensure heating power is positive (shouldn't be necessary) - powerht = max(powerht, 1.0e-3) + p_plasma_loss_mw = max(p_plasma_loss_mw, 1.0e-3) # ======================================================================== @@ -6800,7 +6802,7 @@ def calculate_confinement_time( # Kaye-Goldston scaling (L-mode) elif i_confinement_time == 5: t_electron_confinement = confinement.kaye_goldston_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, p_plasma_loss_mw ) # ======================================================================== @@ -6808,7 +6810,7 @@ def calculate_confinement_time( # ITER Power scaling - ITER 89-P (L-mode) elif i_confinement_time == 6: t_electron_confinement = confinement.iter_89p_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, p_plasma_loss_mw ) # ======================================================================== @@ -6816,7 +6818,7 @@ def calculate_confinement_time( # ITER Offset linear scaling - ITER 89-O (L-mode) elif i_confinement_time == 7: t_electron_confinement = confinement.iter_89_0_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, p_plasma_loss_mw ) # ======================================================================== @@ -6831,7 +6833,7 @@ def calculate_confinement_time( zeff, dnla20, bt, - powerht, + p_plasma_loss_mw, ) # ======================================================================== @@ -6839,7 +6841,7 @@ def calculate_confinement_time( # Goldston scaling (L-mode) elif i_confinement_time == 9: # Goldston scaling (L-mode) t_electron_confinement = confinement.goldston_confinement_time( - pcur, rmajor, rminor, kappa95, m_fuel_amu, powerht + pcur, rmajor, rminor, kappa95, m_fuel_amu, p_plasma_loss_mw ) # ======================================================================== @@ -6847,7 +6849,7 @@ def calculate_confinement_time( # T-10 scaling (L-mode) elif i_confinement_time == 10: t_electron_confinement = confinement.t10_confinement_time( - dnla20, rmajor, qstar, bt, rminor, kappa95, powerht, zeff, pcur + dnla20, rmajor, qstar, bt, rminor, kappa95, p_plasma_loss_mw, zeff, pcur ) # ======================================================================== @@ -6864,7 +6866,7 @@ def calculate_confinement_time( rmajor, qstar, zeff, - powerht, + p_plasma_loss_mw, ) # ======================================================================== @@ -6879,7 +6881,7 @@ def calculate_confinement_time( pcur, n20, m_fuel_amu, - powerht, + p_plasma_loss_mw, ) # ======================================================================== @@ -6894,7 +6896,7 @@ def calculate_confinement_time( dnla20, bt, m_fuel_amu, - powerht, + p_plasma_loss_mw, ) # ======================================================================== @@ -6903,10 +6905,24 @@ def calculate_confinement_time( elif i_confinement_time == 14: t_electron_confinement = min( confinement.iter_89p_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + pcur, + rmajor, + rminor, + kappa, + dnla20, + bt, + m_fuel_amu, + p_plasma_loss_mw, ), confinement.iter_89_0_confinement_time( - pcur, rmajor, rminor, kappa, dnla20, bt, m_fuel_amu, powerht + pcur, + rmajor, + rminor, + kappa, + dnla20, + bt, + m_fuel_amu, + p_plasma_loss_mw, ), ) @@ -6921,7 +6937,7 @@ def calculate_confinement_time( kappa95, dnla20, bt, - powerht, + p_plasma_loss_mw, ) # ======================================================================== @@ -6935,7 +6951,7 @@ def calculate_confinement_time( kappa95, dnla20, bt, - powerht, + p_plasma_loss_mw, m_fuel_amu, ) @@ -6950,7 +6966,7 @@ def calculate_confinement_time( kappa95, dnla20, bt, - powerht, + p_plasma_loss_mw, ) # ======================================================================== @@ -6964,7 +6980,7 @@ def calculate_confinement_time( kappa95, dnla20, bt, - powerht, + p_plasma_loss_mw, ) # ======== ================================================================ @@ -6979,7 +6995,7 @@ def calculate_confinement_time( dnla20, bt, m_fuel_amu, - powerht, + p_plasma_loss_mw, ) # ======================================================================== @@ -6991,7 +7007,7 @@ def calculate_confinement_time( bt, m_fuel_amu, rmajor, - powerht, + p_plasma_loss_mw, kappa, ) @@ -7004,7 +7020,7 @@ def calculate_confinement_time( rminor, dnla20, bt, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7014,7 +7030,7 @@ def calculate_confinement_time( t_electron_confinement = confinement.gyro_reduced_bohm_confinement_time( bt, dnla20, - powerht, + p_plasma_loss_mw, rminor, rmajor, ) @@ -7029,7 +7045,7 @@ def calculate_confinement_time( rminor, dnla20, bt, - powerht, + p_plasma_loss_mw, q, ) ) @@ -7041,7 +7057,7 @@ def calculate_confinement_time( t_electron_confinement = confinement.iter_93h_confinement_time( pcur, bt, - powerht, + p_plasma_loss_mw, m_fuel_amu, rmajor, dnla20, @@ -7060,7 +7076,7 @@ def calculate_confinement_time( t_electron_confinement = confinement.iter_h97p_confinement_time( pcur, bt, - powerht, + p_plasma_loss_mw, dnla19, rmajor, aspect, @@ -7075,7 +7091,7 @@ def calculate_confinement_time( t_electron_confinement = confinement.iter_h97p_elmy_confinement_time( pcur, bt, - powerht, + p_plasma_loss_mw, dnla19, rmajor, aspect, @@ -7095,7 +7111,7 @@ def calculate_confinement_time( aspect, dnla19, m_fuel_amu, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7111,7 +7127,7 @@ def calculate_confinement_time( rmajor, rminor, kappa, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7127,7 +7143,7 @@ def calculate_confinement_time( aspect, dnla19, m_fuel_amu, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7139,7 +7155,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7154,7 +7170,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, kappa, aspect, @@ -7169,7 +7185,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7184,7 +7200,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7199,7 +7215,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7214,7 +7230,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7231,7 +7247,7 @@ def calculate_confinement_time( rmajor, dnla19, bt, - powerht, + p_plasma_loss_mw, iotabar, ) @@ -7245,7 +7261,7 @@ def calculate_confinement_time( rmajor, dnla19, bt, - powerht, + p_plasma_loss_mw, iotabar, ) @@ -7257,7 +7273,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, kappa95, aspect, @@ -7274,7 +7290,7 @@ def calculate_confinement_time( physics_variables.kappa_ipb, dnla19, bt, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7285,7 +7301,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7299,7 +7315,7 @@ def calculate_confinement_time( plasma_current, bt, dnla, - powerht, + p_plasma_loss_mw, rmajor, rminor, q, @@ -7317,7 +7333,7 @@ def calculate_confinement_time( pcur, bt, dnla20, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7328,7 +7344,7 @@ def calculate_confinement_time( pcur, bt, dnla20, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7339,7 +7355,7 @@ def calculate_confinement_time( pcur, bt, dnla20, - powerht, + p_plasma_loss_mw, ) # ========================================================================== @@ -7350,7 +7366,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7366,7 +7382,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.kappa_ipb, aspect, @@ -7381,7 +7397,7 @@ def calculate_confinement_time( t_electron_confinement = confinement.nstx_gyro_bohm_confinement_time( pcur, bt, - powerht, + p_plasma_loss_mw, rmajor, dnla20, ) @@ -7394,7 +7410,7 @@ def calculate_confinement_time( pcur, bt, dnla19, - powerht, + p_plasma_loss_mw, rmajor, physics_variables.triang, physics_variables.kappa_ipb, @@ -7409,7 +7425,7 @@ def calculate_confinement_time( t_electron_confinement = confinement.itpa20_il_confinement_time( pcur, bt, - powerht, + p_plasma_loss_mw, dnla19, physics_variables.m_ions_total_amu, rmajor, @@ -7461,7 +7477,7 @@ def calculate_confinement_time( # from the total plasma beta and the loss power used above. physics_module.t_energy_confinement_beta = ( physics_module.e_plasma_beta / 1e6 - ) / powerht + ) / p_plasma_loss_mw return ( pden_electron_transport_loss_mw, @@ -7469,7 +7485,7 @@ def calculate_confinement_time( t_electron_energy_confinement, t_ion_energy_confinement, t_energy_confinement, - powerht, + p_plasma_loss_mw, ) diff --git a/process/stellarator.py b/process/stellarator.py index 99ea895e3b..ce5a2b6e0a 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -218,7 +218,7 @@ def stigma(self): physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, - physics_variables.powerht, + physics_variables.p_plasma_loss_mw, ) = self.physics.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, @@ -352,7 +352,7 @@ def stopt(self, output: bool): physics_variables.dnelimt = self.stdlim( physics_variables.bt, - physics_variables.powerht, + physics_variables.p_plasma_loss_mw, physics_variables.rmajor, physics_variables.rminor, ) @@ -3549,7 +3549,7 @@ def power_at_ignition_point(self, gyro_frequency_max, te0_available): ) # The second call seems to be necessary for all values to "converge" (and is sufficient) powerht_out = max( - copy(physics_variables.powerht), 0.00001e0 + copy(physics_variables.p_plasma_loss_mw), 0.00001e0 ) # the radiation module sometimes returns negative heating power pscalingmw_out = copy(physics_variables.pscalingmw) @@ -4457,7 +4457,7 @@ def stphys(self, output): physics_variables.t_electron_energy_confinement, physics_variables.t_ion_energy_confinement, physics_variables.t_energy_confinement, - physics_variables.powerht, + physics_variables.p_plasma_loss_mw, ) = self.physics.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index ed4e2ff876..4c54b41a38 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -419,58 +419,58 @@ module physics_variables !! switch for energy confinement time scaling law (see description in `labels_confinement_scalings`) !! labels_confinement_scalings(n_confinement_scalings) : labels describing energy confinement scaling laws - character*30, parameter, dimension(n_confinement_scalings) :: labels_confinement_scalings = (/ & - 'Input tauee_in ', & - 'Neo-Alcator (Ohmic)', & - 'Mirnov (H)', & - 'Merezkhin-Muhkovatov (L)', & - 'Shimomura (H)', & - 'Kaye-Goldston (L)', & - 'ITER 89-P (L)', & - 'ITER 89-O (L)', & - 'Rebut-Lallia (L)', & - 'Goldston (L)', & - 'T10 (L)', & - 'JAERI-88 (L)', & - 'Kaye-Big Complex (L)', & - 'ITER H90-P (H)', & - 'ITER Mix (L)', & - 'Riedel (L)', & - 'Christiansen (L)', & - 'Lackner-Gottardi (L)', & - 'Neo-Kaye (L)', & - 'Riedel (H)', & - 'ITER H90-P amended (H)', & - 'LHD (Stell)', & - 'Gyro-reduced Bohm (Stell)', & - 'Lackner-Gottardi (Stell)', & - 'ITER-93H (H)', & - 'TITAN RFP OBSOLETE ', & - 'ITER H-97P ELM-free (H)', & - 'ITER H-97P ELMy (H)', & - 'ITER-96P (L)', & - 'Valovic modified ELMy (H)', & - 'Kaye PPPL April 98 (L)', & - 'ITERH-PB98P(y) (H)', & - 'IPB98(y) (H)', & - 'IPB98(y,1) (H)', & - 'IPB98(y,2) (H)', & - 'IPB98(y,3) (H)', & - 'IPB98(y,4) (H)', & - 'ISS95 (Stell)', & - 'ISS04 (Stell)', & - 'DS03 (H)', & - 'Murari et al NPL (H)', & - 'Petty 2008 (ST)(H)', & - 'Lang et al. 2012 (H)', & - 'Hubbard 2017 - nom (I)', & - 'Hubbard 2017 - lower (I)', & - 'Hubbard 2017 - upper (I)', & - 'NSTX (ST)(H)', & - 'NSTX-Petty08 Hybrid (ST)(H)', & - 'NSTX gyro-Bohm Buxton (ST)(H)', & - 'ITPA20 (H)', & - 'ITPA20-IL (H)' /) + character*34, parameter, dimension(n_confinement_scalings) :: labels_confinement_scalings = (/ & + 'User input electron confinement ', & + 'Neo-Alcator (Ohmic)', & + 'Mirnov (H)', & + 'Merezkhin-Muhkovatov (Ohmic)(L)', & + 'Shimomura (H)', & + 'Kaye-Goldston (L)', & + 'ITER 89-P (L)', & + 'ITER 89-O (L)', & + 'Rebut-Lallia (L)', & + 'Goldston (L)', & + 'T10 (L)', & + 'JAERI / Odajima-Shimomura (L)', & + 'Kaye-Big Complex (L)', & + 'ITER H90-P (H)', & + 'ITER 89-P & 89-O min (L)', & + 'Riedel (L)', & + 'Christiansen (L)', & + 'Lackner-Gottardi (L)', & + 'Neo-Kaye (L)', & + 'Riedel (H)', & + 'ITER H90-P amended (H)', & + 'LHD (Stell)', & + 'Gyro-reduced Bohm (Stell)', & + 'Lackner-Gottardi (Stell)', & + 'ITER-93H ELM-free (H)', & + 'TITAN RFP OBSOLETE ', & + 'ITER H-97P ELM-free (H)', & + 'ITER H-97P ELMy (H)', & + 'ITER-96P (ITER-97L) (L)', & + 'Valovic modified ELMy (H)', & + 'Kaye 98 modified (L)', & + 'ITERH-PB98P(y) (H)', & + 'IPB98(y) (H)', & + 'IPB98(y,1) (H)', & + 'IPB98(y,2) (H)', & + 'IPB98(y,3) (H)', & + 'IPB98(y,4) (H)', & + 'ISS95 (Stell)', & + 'ISS04 (Stell)', & + 'DS03 beta-independent (H)', & + 'Murari "Non-power law" (H)', & + 'Petty 2008 (ST)(H)', & + 'Lang high density (H)', & + 'Hubbard 2017 - nomonimal (I)', & + 'Hubbard 2017 - lower (I)', & + 'Hubbard 2017 - upper (I)', & + 'Menard NSTX (ST)(H)', & + 'Menard NSTX-Petty08 hybrid (ST)(H)', & + 'Buxton NSTX gyro-Bohm (ST)(H)', & + 'ITPA20 (H)', & + 'ITPA20-IL (H)' /) integer :: i_plasma_wall_gap !! Switch for plasma-first wall clearances at the mid-plane: @@ -654,7 +654,7 @@ module physics_variables real(dp) :: pden_plasma_ohmic_mw !! ohmic heating power per volume (MW/m3) - real(dp) :: powerht + real(dp) :: p_plasma_loss_mw !! heating power (= transport loss power) (MW) used in confinement time calculation real(dp) :: fusion_power @@ -1052,7 +1052,7 @@ subroutine init_physics_variables neutron_power_density_plasma = 0.0D0 p_plasma_ohmic_mw = 0.0D0 pden_plasma_ohmic_mw = 0.0D0 - powerht = 0.0D0 + p_plasma_loss_mw = 0.0D0 fusion_power = 0.0D0 len_plasma_poloidal = 0.0D0 p_plasma_rad_mw = 0.0D0 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index a80969b458..d2aa3d84f4 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -489,7 +489,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index e3678bff45..d2eba7fec3 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -490,7 +490,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index 52ed1d8cb7..4cde49adbe 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -490,7 +490,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index a476dc6451..f1f7af53ae 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -490,7 +490,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2037E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5843E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2275E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9785E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9785E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1650E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 2.2270E+01 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index 25817374dc..fe8238ad7b 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -486,7 +486,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9729E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 45a100fa3e..e772741b55 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -492,7 +492,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1609E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5403E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0737E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9249E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9249E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.7889E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9961E+01 @@ -1655,7 +1655,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1472E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5390E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0722E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9493E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9493E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8240E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9751E+01 @@ -2818,7 +2818,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1421E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5425E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0764E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8985E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9727E+01 @@ -3981,7 +3981,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1540E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5409E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0999E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9622E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9622E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8956E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9773E+01 @@ -5144,7 +5144,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1491E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5361E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0940E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9667E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9667E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8995E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9645E+01 @@ -6307,7 +6307,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1469E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5258E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.0815E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9600E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9600E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8676E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9471E+01 @@ -7470,7 +7470,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1547E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5216E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1016E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9644E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9644E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8858E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9508E+01 @@ -8633,7 +8633,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1544E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5240E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1045E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9674E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9674E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9000E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9498E+01 @@ -9796,7 +9796,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1563E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5211E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1009E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9602E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9602E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.8564E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9521E+01 @@ -10959,7 +10959,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1622E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5225E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1279E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9743E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9743E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 8.9158E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9576E+01 @@ -12122,7 +12122,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1621E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5304E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1377E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9837E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9837E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0058E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9558E+01 @@ -13285,7 +13285,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1617E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5280E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1347E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9823E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9823E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0074E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9518E+01 @@ -14448,7 +14448,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1687E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5289E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1612E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9938E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9938E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.0607E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9571E+01 @@ -15611,7 +15611,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1663E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5365E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1706E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0064E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.0064E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1011E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9628E+01 @@ -16774,7 +16774,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.1640E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5446E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1807E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.0193E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.0193E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1467E+01 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.9687E+01 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index 208e5e07fb..900fdb9b8b 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -347,7 +347,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -1342,7 +1342,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -2337,7 +2337,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -3332,7 +3332,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -4327,7 +4327,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -5322,7 +5322,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -6317,7 +6317,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -7312,7 +7312,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 @@ -8307,7 +8307,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.6434E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5918E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.1834E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 3.2994E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 3.2994E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 1.0500E+02 OP Alpha_particle_confinement_time_(s)_____________________________________ (t_alpha_confinement)________________________ 1.8217E+01 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index a449e452f4..ea27099b35 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -3596,7 +3596,7 @@ ], "porbitlossmw": 0.0, "p_plasma_outer_rad_mw": 0.0, - "powerht": 0.0, + "p_plasma_loss_mw": 0.0, "powfmax": 1500.0, "fusion_power": 0.0, "powohres": 0.0, @@ -10349,7 +10349,7 @@ "poloidalpower": "Poloidal power usage at time t (MW)", "porbitlossmw": "neutral beam power lost after ionisation but before thermalisation (orbit loss power) (MW)", "p_plasma_outer_rad_mw": "radiation power from outer zone (MW)", - "powerht": "heating power (= transport loss power) (MW) used in confinement time calculation", + "p_plasma_loss_mw": "heating power (= transport loss power) (MW) used in confinement time calculation", "powfmax": "maximum fusion power (MW) (`constraint equation 9`)", "fusion_power": "fusion power (MW)", "powohres": "central solenoid resistive power during flattop (W)", @@ -19200,7 +19200,7 @@ "neutron_power_density_plasma", "p_plasma_ohmic_mw", "pden_plasma_ohmic_mw", - "powerht", + "p_plasma_loss_mw", "fusion_power", "len_plasma_poloidal", "p_plasma_rad_mw", diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index f96984d03f..d6407457eb 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -486,7 +486,7 @@ Electron_energy_confinement_time_(s)____________________________________ (t_electron_energy_confinement)_______________________ 3.2080E+00 n.tau_=_Volume-average_electron_density_x_Energy_confinement_time_(s/m3) (ntau)_______________________ 2.5706E+20 OP Triple_product__(keV_s/m3)______________________________________________ (nTtau)____________________ 3.2284E+21 OP - Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (powerht)_____________________ 2.9729E+02 OP + Transport_loss_power_assumed_in_scaling_law_(MW)________________________ (p_plasma_loss_mw)_____________________ 2.9729E+02 OP Switch_for_radiation_loss_term_usage_in_power_balance___________________ (i_rad_loss)____________________ 1 Radiation_power_subtracted_from_plasma_power_balance_(MW)_______________ ______________________________ 9.1277E+01 OP H*_non-radiation_corrected______________________________________________ (hstar)_______________________ 1.1022E+00 diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 69c1c3c3f9..1208396b9b 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -2241,7 +2241,7 @@ class ConfinementTimeParam(NamedTuple): expected_kappaa: Any = None - expected_powerht: Any = None + expected_p_plasma_loss_mw: Any = None expected_pden_electron_transport_loss_mw: Any = None @@ -2297,7 +2297,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=21.17616899712392, expected_t_ion_energy_confinement=21.17616899712392, expected_t_energy_confinement=21.17616899712392, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2339,7 +2339,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.2679051814806361, expected_t_ion_energy_confinement=3.2679051814806361, expected_t_energy_confinement=3.2679051814806366, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2381,7 +2381,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.2731572946627923, expected_t_ion_energy_confinement=3.2731572946627923, expected_t_energy_confinement=3.2731572946627923, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2423,7 +2423,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=2.2040075681235445, expected_t_ion_energy_confinement=2.2040075681235445, expected_t_energy_confinement=2.2040075681235445, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2465,7 +2465,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.2739047552801135, expected_t_ion_energy_confinement=3.2739047552801135, expected_t_energy_confinement=3.2739047552801135, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2507,7 +2507,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.269202679985145, expected_t_ion_energy_confinement=3.269202679985145, expected_t_energy_confinement=3.2692026799851455, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2549,7 +2549,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.6611421391548524, expected_t_ion_energy_confinement=3.6611421391548524, expected_t_energy_confinement=3.6611421391548529, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2591,7 +2591,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.3898077909969717, expected_t_ion_energy_confinement=3.3898077909969717, expected_t_energy_confinement=3.3898077909969717, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2633,7 +2633,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.169298972363837, expected_t_ion_energy_confinement=3.169298972363837, expected_t_energy_confinement=3.169298972363837, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2675,7 +2675,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.203198469625145, expected_t_ion_energy_confinement=3.203198469625145, expected_t_energy_confinement=3.203198469625145, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2717,7 +2717,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.6416666339340682, expected_t_ion_energy_confinement=3.6416666339340682, expected_t_energy_confinement=3.6416666339340686, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2759,7 +2759,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.2693119926464509, expected_t_ion_energy_confinement=3.2693119926464509, expected_t_energy_confinement=3.2693119926464513, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2801,7 +2801,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.2694535383156871, expected_t_ion_energy_confinement=3.2694535383156871, expected_t_energy_confinement=3.2694535383156871, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2843,7 +2843,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.2694029195542003, expected_t_ion_energy_confinement=3.2694029195542003, expected_t_energy_confinement=3.2694029195542003, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2885,7 +2885,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.3442231132583498, expected_t_ion_energy_confinement=3.3442231132583498, expected_t_energy_confinement=3.3442231132583502, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ConfinementTimeParam( i_rad_loss=1, @@ -2927,7 +2927,7 @@ class ConfinementTimeParam(NamedTuple): expected_tauee=3.7242785823911264, expected_t_ion_energy_confinement=3.7242785823911264, expected_t_energy_confinement=3.7242785823911264, - expected_powerht=290.18368660937881, + expected_p_plasma_loss_mw=290.18368660937881, ), ), ) @@ -2970,7 +2970,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): t_electron_energy_confinement, t_ion_energy_confinement, t_energy_confinement, - powerht, + p_plasma_loss_mw, ) = physics.calculate_confinement_time( i_confinement_time=confinementtimeparam.i_confinement_time, ignite=confinementtimeparam.ignite, @@ -3003,7 +3003,9 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): confinementtimeparam.expected_kappa_ipb ) - assert powerht == pytest.approx(confinementtimeparam.expected_powerht) + assert p_plasma_loss_mw == pytest.approx( + confinementtimeparam.expected_p_plasma_loss_mw + ) assert pden_electron_transport_loss_mw == pytest.approx( confinementtimeparam.expected_pden_electron_transport_loss_mw diff --git a/tracking/tracking_data.py b/tracking/tracking_data.py index ed451eca99..c5cf8bd48d 100644 --- a/tracking/tracking_data.py +++ b/tracking/tracking_data.py @@ -133,7 +133,7 @@ class ProcessTracker: "kappa", "fusion_power", "teped", - "powerht", + "p_plasma_loss_mw", "kappa95", "neped", "dene", From d503df539072e98c1091d807e26393b46a1c8820 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 16:03:45 +0000 Subject: [PATCH 102/106] =?UTF-8?q?=F0=9F=94=84=20Refactor=20H-factor=20ca?= =?UTF-8?q?lculation=20methods=20for=20clarity=20and=20consistency=20in=20?= =?UTF-8?q?physics=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- process/physics.py | 156 ++++++++++++++++++++--------------------- process/stellarator.py | 2 +- 2 files changed, 78 insertions(+), 80 deletions(-) diff --git a/process/physics.py b/process/physics.py index 18f715e79b..a17d7a3a16 100644 --- a/process/physics.py +++ b/process/physics.py @@ -5772,12 +5772,13 @@ def output_confinement_comparison(self) -> None: po.oheadr(self.outfile, "Energy confinement times, and required H-factors :") po.ocmmnt( self.outfile, - f"{'':>2}{'Scaling law':<33}{'Confinement time [s]':<29}H-factor for", + f"{'':>2}{'Scaling law':<27}{'Electron confinement time [s]':<32}Equivalent H-factor for", ) po.ocmmnt( self.outfile, - f"{'':>40}{'for H = 1':<24}power balance", + f"{'':>38}{'for H = 1':<23}same confinement time", ) + po.oblnkl(self.outfile) # Plot all of the confinement scalings for comparison when H = 1 # Start from range 1 as the first i_confinement_time is a user input @@ -5785,12 +5786,12 @@ def output_confinement_comparison(self) -> None: if i_confinement_time == 25: continue ( - ptrez, - ptriz, + _, + _, taueez, - taueiz, - taueffz, - powerhtz, + _, + _, + _, ) = self.calculate_confinement_time( physics_variables.m_fuel_amu, physics_variables.alpha_power_total, @@ -5819,8 +5820,8 @@ def output_confinement_comparison(self) -> None: physics_variables.zeff, ) - # Calculate the H-factor for when the plasma is ignited - physics_variables.hfac[i_confinement_time - 1] = self.fhfac( + # Calculate the H-factor for the same confinement time in other scalings + physics_variables.hfac[i_confinement_time - 1] = self.find_other_h_factors( i_confinement_time ) @@ -6556,88 +6557,85 @@ def bootstrap_fraction_gi_II( # noqa: N802 return c_bs * np.sqrt(inverse_aspect) * beta_poloidal - def fhfac(self, is_): - """Function to find H-factor for power balance - author: P J Knight, CCFE, Culham Science Centre - is : input integer : confinement time scaling law of interest - This function calculates the H-factor required for power balance, - using the given energy confinement scaling law. + def find_other_h_factors(self, i_confinement_time: int) -> float: """ + Function to find H-factor for the equivalent confinement time in other scalings. - physics_module.iscz = is_ - - return root_scalar(self.fhz, bracket=(0.01, 150), xtol=0.003).root + Args: + i_confinement_time (int): Index of the confinement time scaling to use. - def fhz(self, hhh): - """Function used to find power balance - author: P J Knight, CCFE, Culham Science Centre - hhh : input real : test value for confinement time H-factor - This function is used to find power balance. - FHZ is zero at power balance, which is achieved - using routine ZEROIN to adjust the - value of hhh, the confinement time H-factor. + Returns: + float: The calculated H-factor. """ - ( - ptrez, - ptriz, - taueezz, - taueiz, - taueffz, - powerhtz, - ) = self.calculate_confinement_time( - physics_variables.m_fuel_amu, - physics_variables.alpha_power_total, - physics_variables.aspect, - physics_variables.bt, - physics_variables.nd_ions_total, - physics_variables.dene, - physics_variables.dnla, - physics_variables.eps, - hhh, - physics_module.iscz, - physics_variables.ignite, - physics_variables.kappa, - physics_variables.kappa95, - physics_variables.non_alpha_charged_power, - current_drive_variables.pinjmw, - physics_variables.plasma_current, - physics_variables.pcoreradpv, - physics_variables.rmajor, - physics_variables.rminor, - physics_variables.ten, - physics_variables.tin, - physics_variables.q, - physics_variables.qstar, - physics_variables.vol_plasma, - physics_variables.zeff, - ) + def fhz(hfact: float) -> float: + """ + Function used to find power balance. - # At power balance, fhz is zero. + Args: + hfact (float): H-factor to be used in the calculation. - fhz = ( - ptrez - + ptriz - - physics_variables.f_alpha_plasma - * physics_variables.alpha_power_density_total - - physics_variables.charged_power_density - - physics_variables.pden_plasma_ohmic_mw - ) + Returns: + float: The difference between the calculated power and the required power for balance. + """ + ( + ptrez, + ptriz, + _, + _, + _, + _, + ) = self.calculate_confinement_time( + physics_variables.m_fuel_amu, + physics_variables.alpha_power_total, + physics_variables.aspect, + physics_variables.bt, + physics_variables.nd_ions_total, + physics_variables.dene, + physics_variables.dnla, + physics_variables.eps, + hfact, + i_confinement_time, + physics_variables.ignite, + physics_variables.kappa, + physics_variables.kappa95, + physics_variables.non_alpha_charged_power, + current_drive_variables.pinjmw, + physics_variables.plasma_current, + physics_variables.pcoreradpv, + physics_variables.rmajor, + physics_variables.rminor, + physics_variables.ten, + physics_variables.tin, + physics_variables.q, + physics_variables.qstar, + physics_variables.vol_plasma, + physics_variables.zeff, + ) - # Take into account whether injected power is included in tau_e - # calculation (i.e. whether device is ignited) + # At power balance, fhz is zero. + fhz_value = ( + ptrez + + ptriz + - physics_variables.f_alpha_plasma + * physics_variables.alpha_power_density_total + - physics_variables.charged_power_density + - physics_variables.pden_plasma_ohmic_mw + ) - if physics_variables.ignite == 0: - fhz -= current_drive_variables.pinjmw / physics_variables.vol_plasma + # Take into account whether injected power is included in tau_e calculation (i.e. whether device is ignited) + if physics_variables.ignite == 0: + fhz_value -= current_drive_variables.pinjmw / physics_variables.vol_plasma - # Include the radiation power if requested + # Include the radiation power if requested + if physics_variables.i_rad_loss == 0: + fhz_value += physics_variables.pden_plasma_rad_mw + elif physics_variables.i_rad_loss == 1: + fhz_value += physics_variables.pcoreradpv - if physics_variables.i_rad_loss == 0: - fhz += physics_variables.pden_plasma_rad_mw - elif physics_variables.i_rad_loss == 1: - fhz += physics_variables.pcoreradpv + return fhz_value - return fhz + return root_scalar(fhz, bracket=(0.01, 150), xtol=0.00001).root @staticmethod def calculate_confinement_time( diff --git a/process/stellarator.py b/process/stellarator.py index ce5a2b6e0a..367664852c 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -249,7 +249,7 @@ def stigma(self): physics_variables.zeff, ) - physics_variables.hfac[iisc] = self.physics.fhfac(i) + physics_variables.hfac[iisc] = self.physics.find_other_h_factors(i) def stnewconfig(self): """author: J Lion, IPP Greifswald From a3e6311e39fed8367b34f7965500852044ffa7ff Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 4 Feb 2025 16:41:56 +0000 Subject: [PATCH 103/106] =?UTF-8?q?=F0=9F=94=84=20Fix=20typos=20in=20plasm?= =?UTF-8?q?a=20confinement=20documentation=20and=20Fortran=20physics=20var?= =?UTF-8?q?iables=20for=20clarity=20and=20accuracy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/proc-pages/physics-models/plasma_confinement.md | 2 +- source/fortran/physics_variables.f90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 163094b36c..dc20737091 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -44,7 +44,7 @@ $$ where $V_{\text{p}}$ is the plasma volume, $R$ is the plasma major radius and $a$ is the plasma minor radius. -The loss power $P_{\text{L}}$ [$\mathtt{p_plasma_loss_mw}$] is calculated from above but may have a separate radiation term depending on the condition of `i_rad_loss` switch below. +The loss power $P_{\text{L}}$ [$\mathtt{p\_plasma\_loss\_mw}$] is calculated from above but may have a separate radiation term depending on the condition of `i_rad_loss` switch below. ------------- diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 4c54b41a38..7506fc5fd0 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -463,7 +463,7 @@ module physics_variables 'Murari "Non-power law" (H)', & 'Petty 2008 (ST)(H)', & 'Lang high density (H)', & - 'Hubbard 2017 - nomonimal (I)', & + 'Hubbard 2017 - nominal (I)', & 'Hubbard 2017 - lower (I)', & 'Hubbard 2017 - upper (I)', & 'Menard NSTX (ST)(H)', & From 97ae8fbbb8a0685c1a8c1003be4b23cae4dbeec2 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Thu, 6 Feb 2025 09:13:43 +0000 Subject: [PATCH 104/106] :memo: Doc review updates --- .../proc-pages/physics-models/plasma_confinement.md | 12 ++++++------ process/physics.py | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index dc20737091..0e190e35b2 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -647,11 +647,11 @@ $$ ------------------------- -### Trasnport Powers +### Transport Powers -After the confinement time scaling with $H$-factor correction have been calculated the ion and electron transport power densities are found. `PROCESS` assumes the scaling confinement time to be equal to the ion and electron energy confinement time. +After the confinement time scaling with $H$-factor correction has been calculated, the ion and electron transport power densities are found. `PROCESS` assumes the scaling confinement time to be equal to the ion and electron energy confinement time. -This is simply the volume averaged thermal energy of the electron and ions divided by the $H$-factor corrected confinement time form the chosen scaling. +This is simply the volume averaged thermal energy of the electron and ions divided by the $H$-factor corrected confinement time from the chosen scaling. $$ \mathtt{pden\_ion\_transport\_loss\_mw} = \frac{3}{2}\frac{n_{\text{i}} \langle T_{\text{i}} \rangle_{\text{n}}}{\tau_{\text{E}}} @@ -669,7 +669,7 @@ $$ \frac{n_{\text{i}}}{n_{\text{e}}}\frac{\langle T_{\text{i}} \rangle_{\text{n}}}{\langle T_{\text{e}} \rangle_{\text{n}}} $$ -The density weighted global energy confinement time is then found as thus via this ratio: +The density weighted global energy confinement time is then found in terms of this ratio: $$ \tau_{\text{E}} = \frac{\frac{n_{\text{i}}}{n_{\text{e}}}\frac{\langle T_{\text{i}} \rangle_{\text{n}}}{\langle T_{\text{e}} \rangle_{\text{n}}} + 1}{\left(\frac{\frac{n_{\text{i}}}{n_{\text{e}}}\frac{\langle T_{\text{i}} \rangle_{\text{n}}}{\langle T_{\text{e}} \rangle_{\text{n}}}}{\tau_{\text{i}}}+\frac{1}{\tau_{\text{e}}}\right)} @@ -683,7 +683,7 @@ $$ This constraint can be activated by stating `icc = 2` in the input file. -This constraint ensures self consistency between the the transport loss power used for the confinement scalings and the calculated confinement time in relation to the plasmas total thermal energy. +This constraint ensures self consistency between the the transport loss power used for the confinement scalings and the calculated confinement time in relation to the plasmas total thermal energy: $$ P_{\text{L}} = \frac{W}{\tau_{\text{E}}} @@ -695,7 +695,7 @@ $$ The $\frac{3}{2}n_{\text{i}} \langle T_{\text{i}} \rangle_{\text{n}}$ value is simply the volume averaged ion thermal energy density where $\langle T_{\text{i}} \rangle_{\text{n}}$ is the density weighted temperature. The same goes for the $\frac{3}{2}n_{\text{e}} \langle T_{\text{e}} \rangle_{\text{e}}$ electron thermal energy density term. $\tau_{\text{E}}$ is the confinement time calculated from the chosen confinement scaling via `i_confinement_time`. -The constraint is done using the loss power and thermal densities hence the inclusion of the $V_{\text{p}}$ plasma volume term. The constraint is adapted depending on the condition of `i_rad_loss` which governs the radiation contribution to the loss power definition, see the [radiation and energy confinement section](#effect-of-radiation-on-energy-confinement) for more info. The injected heating and current drive contribution $P_{\text{HCD}}$ is also included or excluded depending if the plasma is deemed to be ignited with the `ignite` switch. +The constraint uses the loss power and thermal densities hence the inclusion of the $V_{\text{p}}$ plasma volume term. The constraint is adapted depending on the condition of `i_rad_loss` which governs the radiation contribution to the loss power definition, see the [radiation and energy confinement section](#effect-of-radiation-on-energy-confinement) for more info. The injected heating and current drive contribution $P_{\text{HCD}}$ is also included or excluded depending if the plasma is deemed to be ignited with the `ignite` switch. **It is highly recommended to always have this constraint on as it is a global consistency checker** diff --git a/process/physics.py b/process/physics.py index a17d7a3a16..668f64b3bd 100644 --- a/process/physics.py +++ b/process/physics.py @@ -6625,7 +6625,9 @@ def fhz(hfact: float) -> float: # Take into account whether injected power is included in tau_e calculation (i.e. whether device is ignited) if physics_variables.ignite == 0: - fhz_value -= current_drive_variables.pinjmw / physics_variables.vol_plasma + fhz_value -= ( + current_drive_variables.pinjmw / physics_variables.vol_plasma + ) # Include the radiation power if requested if physics_variables.i_rad_loss == 0: From 1c072700f8cccd6ba913212b2362f689d38bfa88 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 7 Feb 2025 12:01:45 +0000 Subject: [PATCH 105/106] :memo: Requested review changes, add variables to obsolete dictionary --- process/confinement_time.py | 4 ---- process/io/obsolete_vars.py | 5 +++++ process/physics.py | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/process/confinement_time.py b/process/confinement_time.py index 82476145b9..7654eb7764 100644 --- a/process/confinement_time.py +++ b/process/confinement_time.py @@ -2129,7 +2129,3 @@ def itpa20_il_confinement_time( * (1 + triang) ** 0.56 * kappa_ipb**0.67 ) - - -if __name__ == "__main__": - pass diff --git a/process/io/obsolete_vars.py b/process/io/obsolete_vars.py index 482fb764be..1a494a494b 100644 --- a/process/io/obsolete_vars.py +++ b/process/io/obsolete_vars.py @@ -184,6 +184,11 @@ "d_vv_in": "dr_vv_inboard", "d_vv_out": "dr_vv_outboard", "iblnkith": "i_blkt_inboard", + "taulimit": "f_alpha_energy_confinement_min", + "ftaulimit": "falpha_energy_confinement", + "isc": "i_confinement_time", + "iradloss": "i_rad_loss", + "ipnlaws": "n_confinement_scalings", } OBS_VARS_HELP = { diff --git a/process/physics.py b/process/physics.py index 668f64b3bd..5a4cbf3086 100644 --- a/process/physics.py +++ b/process/physics.py @@ -2340,8 +2340,6 @@ def physics(self): physics_variables.vol_plasma, ) - # p_electron_transport_loss_mw = physics_variables.pden_electron_transport_loss_mw*physics_variables.vol_plasma - # p_ion_transport_loss_mw = physics_variables.pden_ion_transport_loss_mw*physics_variables.vol_plasma # Total transport power from scaling law (MW) physics_variables.pscalingmw = ( physics_variables.p_electron_transport_loss_mw From 97882124584b86e3d4bee9ae60ecf0fe2c19a248 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Fri, 7 Feb 2025 12:14:20 +0000 Subject: [PATCH 106/106] :memo: Add subscripts to plasma current and loss power --- .../physics-models/plasma_confinement.md | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/documentation/proc-pages/physics-models/plasma_confinement.md b/documentation/proc-pages/physics-models/plasma_confinement.md index 0e190e35b2..0c57713d64 100644 --- a/documentation/proc-pages/physics-models/plasma_confinement.md +++ b/documentation/proc-pages/physics-models/plasma_confinement.md @@ -128,7 +128,7 @@ $$ Is selected with `i_confinement_time = 2`[^1] $$ -\tau_{\text{E}} = 0.2 a \sqrt{\kappa_{95}}I +\tau_{\text{E}} = 0.2 a \sqrt{\kappa_{95}}I_{\text{p}} $$ ------------ @@ -159,7 +159,7 @@ $$ Is selected with `i_confinement_time = 5`[^1] $$ -\tau_{\text{E}} = 0.055 I^{1.24}P^{-0.58}R^{1.65}a^{-0.49}\kappa_{95}^{0.28}n_{20}^{0.26}B_{\text{T}}^{-0.09}\left(\frac{M_{\text{i}}}{1.5}\right)^{0.5} +\tau_{\text{E}} = 0.055 I_{\text{p}}^{1.24}P_{\text{L}}^{-0.58}R^{1.65}a^{-0.49}\kappa_{95}^{0.28}n_{20}^{0.26}B_{\text{T}}^{-0.09}\left(\frac{M_{\text{i}}}{1.5}\right)^{0.5} $$ ---------------- @@ -169,7 +169,7 @@ $$ Is selected with `i_confinement_time = 6`[^1] [^2] $$ -\tau_{\text{E}} = 0.048 I^{0.85}R^{1.2}a^{0.3}\kappa^{0.5}\overline{n}_{20}^{0.1}B_{\text{T}}^{0.2}M_{\text{i}}^{0.5} P^{-0.5} +\tau_{\text{E}} = 0.048 I_{\text{p}}^{0.85}R^{1.2}a^{0.3}\kappa^{0.5}\overline{n}_{20}^{0.1}B_{\text{T}}^{0.2}M_{\text{i}}^{0.5} P_{\text{L}}^{-0.5} $$ ---------------- @@ -180,8 +180,8 @@ Is selected with `i_confinement_time = 7` [^2] $$ \begin{aligned} -\tau_E= & 0.04 I^{0.5} R^{0.3} a^{0.8} \kappa^{0.6} M_i^{0.5} \\ -& +0.064 I^{0.8} R^{1.6} a^{0.6} \kappa^{0.2} \bar{n}_{20}^{0.6} B_0^{0.35} M_i^{0.2} / P +\tau_E= & 0.04 I_{\text{p}}^{0.5} R^{0.3} a^{0.8} \kappa^{0.6} M_i^{0.5} \\ +& +0.064 I_{\text{p}}^{0.8} R^{1.6} a^{0.6} \kappa^{0.2} \bar{n}_{20}^{0.6} B_0^{0.35} M_i^{0.2} / P_{\text{L}} \end{aligned} $$ @@ -193,8 +193,8 @@ Is selected with `i_confinement_time = 8` [^2] $$ \begin{aligned} -\tau_E= & 1.65\left[1.2 \times 10^{-5} I \ell^{1.5} Z_{e f f}^{-0.5}\right. \\ -& \left.+0.146 \bar{n}_{20}^{0.75} I^{0.5} B_0^{0.5} \ell^{2.75} Z_{e f f}^{0.25} / P\right]\left(A_i / 2\right)^{0.5} +\tau_E= & 1.65\left[1.2 \times 10^{-5} I_{\text{p}} \ell^{1.5} Z_{e f f}^{-0.5}\right. \\ +& \left.+0.146 \bar{n}_{20}^{0.75} I_{\text{p}}^{0.5} B_0^{0.5} \ell^{2.75} Z_{e f f}^{0.25} / P_{\text{L}}\right]\left(A_i / 2\right)^{0.5} \end{aligned} $$ @@ -207,7 +207,7 @@ where $\ell = \left(a^2R\kappa\right)^{\frac{1}{3}}$ Is selected with `i_confinement_time = 9` [^1] $$ -\tau_{\text{E}} = 0.037 I P^{-0.5} R^{1.75}a^{-0.37}\kappa_{95}^{0.5} \left(\frac{M_i}{1.5}\right)^{0.5} +\tau_{\text{E}} = 0.037 I_{\text{p}} P_{\text{L}}^{-0.5} R^{1.75}a^{-0.37}\kappa_{95}^{0.5} \left(\frac{M_i}{1.5}\right)^{0.5} $$ ---------------- @@ -218,7 +218,7 @@ Is selected with `i_confinement_time = 10` [^1] $$ -\tau_{\text{E}} = 0.095 a R B_{\text{T}} \kappa_{95}^{0.5} \frac{\overline{n}_{20}}{\overline{n}_{20*}}P^{-0.4} \left[\frac{Z_{\text{eff}}^2 I^4}{aRq_{\text{cyl}}^3\kappa_{95}^{1.5}} \right]^{0.08} +\tau_{\text{E}} = 0.095 a R B_{\text{T}} \kappa_{95}^{0.5} \frac{\overline{n}_{20}}{\overline{n}_{20*}}P_{\text{L}}^{-0.4} \left[\frac{Z_{\text{eff}}^2 I_{\text{p}}^4}{aRq_{\text{cyl}}^3\kappa_{95}^{1.5}} \right]^{0.08} $$ where $\overline{n}_{20*} = 1.3\left(\frac{B_{\text{T}}}{Rq_{\text{cyl}}}\right)$ and $\frac{\overline{n}_{20}}{\overline{n}_{20*}} \le 1$ @@ -231,7 +231,7 @@ Is selected with `i_confinement_time = 11` [^1] $$ -\tau_{\text{E}} = \left[\frac{0.085\kappa_{95}a^2+0.069In_{20}^{0.6}B_{\text{T}}^{0.2}R^{1.6} a^{0.4} \kappa_{95}^{0.2} G\left(q_{\text{cyl}},Z_{\text{eff}}\right)}{P}\right]M_{\text{i}}^{0.5} +\tau_{\text{E}} = \left[\frac{0.085\kappa_{95}a^2+0.069In_{20}^{0.6}B_{\text{T}}^{0.2}R^{1.6} a^{0.4} \kappa_{95}^{0.2} G\left(q_{\text{cyl}},Z_{\text{eff}}\right)}{P_{\text{L}}}\right]M_{\text{i}}^{0.5} $$ where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\frac{\left(15 - Z_{\text{eff}}\right)}{20}\right]^{0.6}\left[3q_{\text{cyl}}\frac{q_{\text{cyl}}+5}{(q_{\text{cyl}}+2)(q_{\text{cyl}}+7)}\right]^{0.6}$ @@ -244,7 +244,7 @@ where $G\left(q_{\text{cyl}},Z_{\text{eff}}\right) = Z_{\text{eff}}^{0.4}\left[\ Is selected with `i_confinement_time = 12` [^1] $$ -\tau_{\text{E}} = 0.1051 I^{0.85} P^{-0.5} R^{0.5} a^{0.3} \kappa^{0.25} n_{20}^{0.1}B_{\text{T}}^{0.3}M_{\text{i}}^{0.5} +\tau_{\text{E}} = 0.1051 I_{\text{p}}^{0.85} P_{\text{L}}^{-0.5} R^{0.5} a^{0.3} \kappa^{0.25} n_{20}^{0.1}B_{\text{T}}^{0.3}M_{\text{i}}^{0.5} $$ ------------------------- @@ -254,7 +254,7 @@ $$ Is selected with `i_confinement_time = 13` [^2] $$ -\tau_{\text{E}} = 0.064 I^{0.87} R^{1.82} a^{-0.12} \kappa_{95}^{0.35} \overline{n}_{20}^{0.09} B_{\text{T}}^{0.15} M_{\text{i}}^{0.5} P^{-0.5} +\tau_{\text{E}} = 0.064 I_{\text{p}}^{0.87} R^{1.82} a^{-0.12} \kappa_{95}^{0.35} \overline{n}_{20}^{0.09} B_{\text{T}}^{0.15} M_{\text{i}}^{0.5} P_{\text{L}}^{-0.5} $$ ------------------------- @@ -272,7 +272,7 @@ Will return the value of [ITER 89-P](#6-iter-89-p-l-mode-scaling) or [ITER 89-O] Is selected with `i_confinement_time = 15` [^2] $$ -\tau_{\text{E}} = 0.044 I^{0.93} R^{1.37} a^{-0.049} \kappa_{95}^{0.588} \overline{n}_{20}^{0.078} B_{\text{T}}^{0.152} P^{-0.537} +\tau_{\text{E}} = 0.044 I_{\text{p}}^{0.93} R^{1.37} a^{-0.049} \kappa_{95}^{0.588} \overline{n}_{20}^{0.078} B_{\text{T}}^{0.152} P_{\text{L}}^{-0.537} $$ ------------------------- @@ -282,7 +282,7 @@ $$ Is selected with `i_confinement_time = 16` [^2] $$ -\tau_{\text{E}} = 0.24 I^{0.79} R^{0.56} a^{1.46} \kappa_{95}^{0.73} \overline{n}_{20}^{0.41} B_{\text{T}}^{0.29} P^{-0.79} M_{\text{i}}^{-0.02} +\tau_{\text{E}} = 0.24 I_{\text{p}}^{0.79} R^{0.56} a^{1.46} \kappa_{95}^{0.73} \overline{n}_{20}^{0.41} B_{\text{T}}^{0.29} P_{\text{L}}^{-0.79} M_{\text{i}}^{-0.02} $$ ------------------------- @@ -292,10 +292,10 @@ $$ Is selected with `i_confinement_time = 17` [^2] $$ -\tau_{\text{E}} = 0.12 I^{0.8} R^{1.8} a^{0.4} \left(\frac{\kappa_{95}}{\left(1+\kappa_{95}\right)^{0.8}}\right) \overline{n}_{20}^{0.6} \hat{q}^{0.4} P^{-0.6} +\tau_{\text{E}} = 0.12 I_{\text{p}}^{0.8} R^{1.8} a^{0.4} \left(\frac{\kappa_{95}}{\left(1+\kappa_{95}\right)^{0.8}}\right) \overline{n}_{20}^{0.6} \hat{q}^{0.4} P_{\text{L}}^{-0.6} $$ -where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I R}$ +where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I_{\text{p}} R}$ ------------------------- @@ -304,7 +304,7 @@ where $\hat{q} = \frac{(1+\kappa_{95}a^2B_{\text{T}})}{0.4 I R}$ Is selected with `i_confinement_time = 18` [^2] $$ -\tau_{\text{E}} = 0.063 I^{1.12} R^{1.3} a^{-0.04} \kappa_{95}^{0.28} \overline{n}_{20}^{0.14} B_{\text{T}}^{0.04} P^{-0.59} +\tau_{\text{E}} = 0.063 I_{\text{p}}^{1.12} R^{1.3} a^{-0.04} \kappa_{95}^{0.28} \overline{n}_{20}^{0.14} B_{\text{T}}^{0.04} P_{\text{L}}^{-0.59} $$ ------------------------- @@ -314,7 +314,7 @@ $$ Is selected with `i_confinement_time = 19` [^2] $$ -\tau_{\text{E}} = 0.1 M_{\text{i}}^{0.5} I^{0.884} R^{1.24} a^{-0.23} \kappa_{95}^{0.317} \overline{n}_{20}^{0.105} B_{\text{T}}^{0.207} P^{-0.486} +\tau_{\text{E}} = 0.1 M_{\text{i}}^{0.5} I_{\text{p}}^{0.884} R^{1.24} a^{-0.23} \kappa_{95}^{0.317} \overline{n}_{20}^{0.105} B_{\text{T}}^{0.207} P_{\text{L}}^{-0.486} $$ ------------------------- @@ -324,7 +324,7 @@ $$ Is selected with `i_confinement_time = 20` [^3] $$ -\tau_{\text{E}} = 0.082 M_{\text{i}}^{0.5} I^{1.02} R^{1.6} \kappa_{95}^{-0.19} B_{\text{T}}^{0.15} P^{-0.47} +\tau_{\text{E}} = 0.082 M_{\text{i}}^{0.5} I_{\text{p}}^{1.02} R^{1.6} \kappa_{95}^{-0.19} B_{\text{T}}^{0.15} P_{\text{L}}^{-0.47} $$ ------------------------- @@ -334,7 +334,7 @@ $$ Is selected with `i_confinement_time = 21` [^4] $$ -\tau_{\text{E}} = 0.17 P^{-0.58} \overline{n}_{20}^{0.69} B^{0.84} a^{2.0} R^{0.75} +\tau_{\text{E}} = 0.17 P_{\text{L}}^{-0.58} \overline{n}_{20}^{0.69} B^{0.84} a^{2.0} R^{0.75} $$ ------------------------- @@ -344,7 +344,7 @@ $$ Is selected with `i_confinement_time = 22` [^5] $$ -\tau_{\text{E}} = 0.25 P^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.4} R^{0.6} +\tau_{\text{E}} = 0.25 P_{\text{L}}^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.4} R^{0.6} $$ ------------------------- @@ -354,7 +354,7 @@ $$ Is selected with `i_confinement_time = 23` [^6] $$ -\tau_{\text{E}} = 0.17 P^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.0} R q_{95}^{0.4} +\tau_{\text{E}} = 0.17 P_{\text{L}}^{-0.6} \overline{n}_{20}^{0.6} B_{\text{T}}^{0.8} a^{2.0} R q_{95}^{0.4} $$ ------------------------- @@ -364,7 +364,7 @@ $$ Is selected with `i_confinement_time = 24` [^7] $$ -\tau_{\text{E}} = 0.036 I^{1.06} B_{\text{T}}^{0.32} P^{-0.67} R^{1.79} \epsilon^{-0.11} \kappa^{0.66} \overline{n}_{20}^{0.17} M_{\text{i}}^{0.41} +\tau_{\text{E}} = 0.036 I_{\text{p}}^{1.06} B_{\text{T}}^{0.32} P_{\text{L}}^{-0.67} R^{1.79} \epsilon^{-0.11} \kappa^{0.66} \overline{n}_{20}^{0.17} M_{\text{i}}^{0.41} $$ ------------------------- @@ -383,7 +383,7 @@ Is selected with `i_confinement_time = 25` Is selected with `i_confinement_time = 26` [^8] $$ -\tau_{\text{E}} = 0.031 M_{\text{i}}^{0.42} I^{0.95} R^{1.92} \epsilon^{0.08} \kappa_{95}^{0.63} \overline{n}_{19}^{0.35} B_{\text{T}}^{0.25} P^{-0.67} +\tau_{\text{E}} = 0.031 M_{\text{i}}^{0.42} I_{\text{p}}^{0.95} R^{1.92} \epsilon^{0.08} \kappa_{95}^{0.63} \overline{n}_{19}^{0.35} B_{\text{T}}^{0.25} P_{\text{L}}^{-0.67} $$ ------------------------- @@ -393,7 +393,7 @@ $$ Is selected with `i_confinement_time = 27` [^8] [^9] $$ -\tau_{\text{E}} = 0.029 M_{\text{i}}^{0.2} I^{0.9} R^{2.03} \epsilon^{-0.19} \kappa_{95}^{0.92} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.20} P^{-0.66} +\tau_{\text{E}} = 0.029 M_{\text{i}}^{0.2} I_{\text{p}}^{0.9} R^{2.03} \epsilon^{-0.19} \kappa_{95}^{0.92} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.20} P_{\text{L}}^{-0.66} $$ ------------------------- @@ -403,7 +403,7 @@ $$ Is selected with `i_confinement_time = 28` [^10] $$ -\tau_{\text{E}} = 0.023 M_{\text{i}}^{0.2} I^{0.96} R^{1.83} \epsilon^{-0.06} \kappa_{95}^{0.64} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.03} P^{-0.73} +\tau_{\text{E}} = 0.023 M_{\text{i}}^{0.2} I_{\text{p}}^{0.96} R^{1.83} \epsilon^{-0.06} \kappa_{95}^{0.64} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.03} P_{\text{L}}^{-0.73} $$ ------------------------- @@ -413,7 +413,7 @@ $$ Is selected with `i_confinement_time = 29` $$ -\tau_{\text{E}} = 0.067 M_{\text{i}}^{0.05} I^{0.9} R^{1.31} \kappa^{0.56} \overline{n}_{19}^{0.45} B_{\text{T}}^{0.17} P^{-0.68} a^{0.79} +\tau_{\text{E}} = 0.067 M_{\text{i}}^{0.05} I_{\text{p}}^{0.9} R^{1.31} \kappa^{0.56} \overline{n}_{19}^{0.45} B_{\text{T}}^{0.17} P_{\text{L}}^{-0.68} a^{0.79} $$ !!! warning @@ -426,7 +426,7 @@ $$ Is selected with `i_confinement_time = 30` $$ -\tau_{\text{E}} = 0.021 M_{\text{i}}^{0.25} I^{0.81} R^{2.01} \kappa^{0.7} \overline{n}_{19}^{0.47} B_{\text{T}}^{0.14} P^{-0.73} \epsilon^{0.18} +\tau_{\text{E}} = 0.021 M_{\text{i}}^{0.25} I_{\text{p}}^{0.81} R^{2.01} \kappa^{0.7} \overline{n}_{19}^{0.47} B_{\text{T}}^{0.14} P_{\text{L}}^{-0.73} \epsilon^{0.18} $$ !!! warning @@ -439,7 +439,7 @@ $$ Is selected with `i_confinement_time = 31` $$ -\tau_{\text{E}} = 0.0615 M^{0.2} I^{0.9} R^{2.0} \kappa_{\text{IPB}}^{0.75} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.1} P^{-0.66} \epsilon^{0.66} +\tau_{\text{E}} = 0.0615 M^{0.2} I_{\text{p}}^{0.9} R^{2.0} \kappa_{\text{IPB}}^{0.75} \overline{n}_{19}^{0.4} B_{\text{T}}^{0.1} P_{\text{L}}^{-0.66} \epsilon^{0.66} $$ !!! warning @@ -452,7 +452,7 @@ $$ Is selected with `i_confinement_time = 32` [^11] [^12] $$ -\tau_{\text{E}} = 0.0365 I^{0.97} B_{\text{T}}^{0.08} \overline{n}_{19}^{0.41} P^{-0.63} R^{1.93} \kappa^{0.67} \epsilon^{0.23} M^{0.2} +\tau_{\text{E}} = 0.0365 I_{\text{p}}^{0.97} B_{\text{T}}^{0.08} \overline{n}_{19}^{0.41} P_{\text{L}}^{-0.63} R^{1.93} \kappa^{0.67} \epsilon^{0.23} M^{0.2} $$ ------------------------- @@ -462,7 +462,7 @@ $$ Is selected with `i_confinement_time = 33` [^11] [^12] $$ -\tau_{\text{E}} = 0.0503 I^{0.91} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.44} P^{-0.65} R^{2.05} \kappa_{\text{IPB}}^{0.72} \epsilon^{0.57} M^{0.13} +\tau_{\text{E}} = 0.0503 I_{\text{p}}^{0.91} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.44} P_{\text{L}}^{-0.65} R^{2.05} \kappa_{\text{IPB}}^{0.72} \epsilon^{0.57} M^{0.13} $$ ------------------------- @@ -472,7 +472,7 @@ $$ Is selected with `i_confinement_time = 34` [^11] [^12] $$ -\tau_{\text{E}} = 0.0562 I^{0.93} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.41} P^{-0.69} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} +\tau_{\text{E}} = 0.0562 I_{\text{p}}^{0.93} B_{\text{T}}^{0.15} \overline{n}_{19}^{0.41} P_{\text{L}}^{-0.69} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} $$ ------------------------- @@ -482,7 +482,7 @@ $$ Is selected with `i_confinement_time = 35` [^11] [^12] $$ -\tau_{\text{E}} = 0.0564 I^{0.88} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.4} P^{-0.69} R^{2.15} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.64} M^{0.2} +\tau_{\text{E}} = 0.0564 I_{\text{p}}^{0.88} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.4} P_{\text{L}}^{-0.69} R^{2.15} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.64} M^{0.2} $$ ------------------------- @@ -492,7 +492,7 @@ $$ Is selected with `i_confinement_time = 36` [^11] [^12] $$ -\tau_{\text{E}} = 0.0587 I^{0.85} B_{\text{T}}^{0.29} \overline{n}_{19}^{0.39} P^{-0.7} R^{2.08} \kappa_{\text{IPB}}^{0.76} \epsilon^{0.69} M^{0.17} +\tau_{\text{E}} = 0.0587 I_{\text{p}}^{0.85} B_{\text{T}}^{0.29} \overline{n}_{19}^{0.39} P_{\text{L}}^{-0.7} R^{2.08} \kappa_{\text{IPB}}^{0.76} \epsilon^{0.69} M^{0.17} $$ ------------------------- @@ -503,7 +503,7 @@ $$ Is selected with `i_confinement_time = 37` [^13] $$ -\tau_{\text{E}} = 0.079 a^{2.21} R^{0.65} P^{-0.59} \overline{n}_{19}^{0.51} B_{\text{T}}^{0.83} \iota_{2/3}^{0.4} +\tau_{\text{E}} = 0.079 a^{2.21} R^{0.65} P_{\text{L}}^{-0.59} \overline{n}_{19}^{0.51} B_{\text{T}}^{0.83} \iota_{2/3}^{0.4} $$ ------------------------- @@ -514,7 +514,7 @@ $$ Is selected with `i_confinement_time = 38` [^14] $$ -\tau_{\text{E}} = 0.134 a^{2.28} R^{0.64} P^{-0.61} \overline{n}_{19}^{0.54} B_{\text{T}}^{0.84} \iota_{2/3}^{0.41} +\tau_{\text{E}} = 0.134 a^{2.28} R^{0.64} P_{\text{L}}^{-0.61} \overline{n}_{19}^{0.54} B_{\text{T}}^{0.84} \iota_{2/3}^{0.41} $$ ------------------------- @@ -524,7 +524,7 @@ $$ Is selected with `i_confinement_time = 39` [^15] $$ -\tau_{\text{E}} = 0.028 I^{0.83} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.49} P^{-0.55} R^{2.11} \kappa_{95}^{0.75} \epsilon^{0.3} M^{0.14} +\tau_{\text{E}} = 0.028 I_{\text{p}}^{0.83} B_{\text{T}}^{0.07} \overline{n}_{19}^{0.49} P_{\text{L}}^{-0.55} R^{2.11} \kappa_{95}^{0.75} \epsilon^{0.3} M^{0.14} $$ ------------------------- @@ -534,7 +534,7 @@ $$ Is selected with `i_confinement_time = 40` [^16] $$ -\tau_{\text{E}} = 0.0367 I^{1.006} R^{1.731} \kappa_{\text{IPB}}^{1.45} P^{-0.735} \\ +\tau_{\text{E}} = 0.0367 I_{\text{p}}^{1.006} R^{1.731} \kappa_{\text{IPB}}^{1.45} P_{\text{L}}^{-0.735} \\ \times \frac{\overline{n}_{19}^{0.49}}{1+e^\left({-9.403\left(\frac{\overline{n}_{19}^{0.49}}{B_{\text{T}}}\right)^{-1.365}}\right)} $$ @@ -545,7 +545,7 @@ $$ Is selected with `i_confinement_time = 41` [^17] $$ -\tau_{\text{E}} = 0.052 I^{0.75} B_{\text{T}}^{0.3} \overline{n}_{19}^{0.32} P^{-0.47} R^{2.09} \kappa_{\text{IPB}}^{0.88} \epsilon^{0.84} +\tau_{\text{E}} = 0.052 I_{\text{p}}^{0.75} B_{\text{T}}^{0.3} \overline{n}_{19}^{0.32} P_{\text{L}}^{-0.47} R^{2.09} \kappa_{\text{IPB}}^{0.88} \epsilon^{0.84} $$ ------------------------- @@ -556,7 +556,7 @@ Is selected with `i_confinement_time = 42` [^18] $$ \tau_{\text{E}} = 6.94\times 10^{-7} M^{0.2} \kappa_{\text{IPB}}^{0.37} \left(\frac{q_{95}}{q_{\text{cyl}}}\right)^{0.77} \\ -\times A^{2.48205} \frac{I^{1.3678} B_{\text{T}}^{0.12} R^{1.2345} \overline{n}^{0.032236}}{A^{0.9\ln{A}}P^{0.74}} \left(\frac{\overline{n}_{e}}{n_{\text{GW}}}\right)^{-0.22 \ln{\left(\frac{\overline{n}_e}{n_{\text{GW}}}\right)}} +\times A^{2.48205} \frac{I_{\text{p}}^{1.3678} B_{\text{T}}^{0.12} R^{1.2345} \overline{n}^{0.032236}}{A^{0.9\ln{A}}P_{\text{L}}^{0.74}} \left(\frac{\overline{n}_{e}}{n_{\text{GW}}}\right)^{-0.22 \ln{\left(\frac{\overline{n}_e}{n_{\text{GW}}}\right)}} $$ ------------------------- @@ -566,7 +566,7 @@ $$ Is selected with `i_confinement_time = 43` [^19] $$ -\tau_{\text{E}} = 0.014 I^{0.68} B_{\text{T}}^{0.77} \overline{n}_{20}^{0.02} P^{-0.29} +\tau_{\text{E}} = 0.014 I_{\text{p}}^{0.68} B_{\text{T}}^{0.77} \overline{n}_{20}^{0.02} P_{\text{L}}^{-0.29} $$ ------------------------- @@ -576,7 +576,7 @@ $$ Is selected with `i_confinement_time = 44` [^19] $$ -\tau_{\text{E}} = 0.014 I^{0.6} B_{\text{T}}^{0.7} \overline{n}_{20}^{-0.03} P^{-0.33} +\tau_{\text{E}} = 0.014 I_{\text{p}}^{0.6} B_{\text{T}}^{0.7} \overline{n}_{20}^{-0.03} P_{\text{L}}^{-0.33} $$ ------------------------- @@ -586,7 +586,7 @@ $$ Is selected with `i_confinement_time = 45` [^19] $$ -\tau_{\text{E}} = 0.014 I^{0.76} B_{\text{T}}^{0.84} \overline{n}_{20}^{-0.07} P^{-0.25} +\tau_{\text{E}} = 0.014 I_{\text{p}}^{0.76} B_{\text{T}}^{0.84} \overline{n}_{20}^{-0.07} P_{\text{L}}^{-0.25} $$ ------------------------- @@ -597,7 +597,7 @@ $$ Is selected with `i_confinement_time = 46` [^20] $$ -\tau_{\text{E}} = 0.095 I^{0.75} B_{\text{T}}^{1.08} \overline{n}_{19}^{0.44} P^{-0.73} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} +\tau_{\text{E}} = 0.095 I_{\text{p}}^{0.75} B_{\text{T}}^{1.08} \overline{n}_{19}^{0.44} P_{\text{L}}^{-0.73} R^{1.97} \kappa_{\text{IPB}}^{0.78} \epsilon^{0.58} M^{0.19} $$ ------------------------- @@ -622,7 +622,7 @@ $$ Is selected with `i_confinement_time = 48` [^21] $$ -\tau_{\text{E}} = 0.21 I^{0.54} B_{\text{T}}^{0.91} \overline{n}_{20}^{-0.05} P^{-0.38} R^{2.14} +\tau_{\text{E}} = 0.21 I_{\text{p}}^{0.54} B_{\text{T}}^{0.91} \overline{n}_{20}^{-0.05} P_{\text{L}}^{-0.38} R^{2.14} $$ ------------------------- @@ -632,7 +632,7 @@ $$ Is selected with `i_confinement_time = 49` [^22] $$ -\tau_{\text{E}} = 0.053 I^{0.98} B_{\text{T}}^{0.22} \overline{n}_{19}^{0.24} P^{-0.669} R^{1.71} \left(1+\delta \right)^{0.36} \kappa_{\text{IPB}}^{0.8} \epsilon^{0.35} M^{0.2} +\tau_{\text{E}} = 0.053 I_{\text{p}}^{0.98} B_{\text{T}}^{0.22} \overline{n}_{19}^{0.24} P_{\text{L}}^{-0.669} R^{1.71} \left(1+\delta \right)^{0.36} \kappa_{\text{IPB}}^{0.8} \epsilon^{0.35} M^{0.2} $$ ------------------------- @@ -642,7 +642,7 @@ $$ Is selected with `i_confinement_time = 50` [^23] $$ -\tau_{\text{E}} = 0.067 I^{1.29} B_{\text{T}}^{-0.13} P^{-0.644} \overline{n}_{19}^{0.15} M^{0.3} R^{1.19} \left(1+\delta \right)^{0.56} \kappa_{\text{IPB}}^{0.67} +\tau_{\text{E}} = 0.067 I_{\text{p}}^{1.29} B_{\text{T}}^{-0.13} P_{\text{L}}^{-0.644} \overline{n}_{19}^{0.15} M^{0.3} R^{1.19} \left(1+\delta \right)^{0.56} \kappa_{\text{IPB}}^{0.67} $$ -------------------------