From 858dee13c094602b01b703d9aced4dc6a7c66829 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 19 Mar 2024 10:12:46 +0000 Subject: [PATCH 1/8] update q -> q95 --- examples/data/scan_example_file_IN.DAT | 4 ++-- source/fortran/input.f90 | 7 +++++-- source/fortran/physics_variables.f90 | 8 ++++---- tests/regression/input_files/large_tokamak.IN.DAT | 4 ++-- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/examples/data/scan_example_file_IN.DAT b/examples/data/scan_example_file_IN.DAT index 2a0a94bea3..792b2e5a11 100644 --- a/examples/data/scan_example_file_IN.DAT +++ b/examples/data/scan_example_file_IN.DAT @@ -226,10 +226,10 @@ ixc = 16 boundl(16) = 0.3 dr_cs = 0.5 -* Safety factor near plasma edge +* Safety factor at 95% flux surface ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index 3cdb88a1e2..96ef86c5ea 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -308,7 +308,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 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, ind_plasma_internal_norm, triang, & + i_beta_fast_alpha, tauee_in, alphaj, alphat, i_plasma_current, q, q95, ti, tesep, ind_plasma_internal_norm, triang, & itart, f_nd_alpha_electron, iprofile, triang95, rad_fraction_sol, betbm0, f_nd_protium_electrons, & teped, f_helium3, iwalld, ejima_coeff, f_alpha_plasma, fgwped, tbeta, i_bootstrap_current, & i_rad_loss, te, alphan, rmajor, plasma_square, kappa, fkzohm, beamfus0, & @@ -702,7 +702,10 @@ subroutine parse_input_file(in_file,out_file,show_changes) 'Plasma resistivity pre-factor') case ('q') call parse_real_variable('q', q, 1.00D0, 50.0D0, & - 'Safety factor near plasma edge') + 'For backwards compatibility only, q95 can be entered using the symbol q.') + case ('q95') + call parse_real_variable('q', q, 1.00D0, 50.0D0, & + 'Safety factor at 95% flux surface') case ('q0') call parse_real_variable('q0', q0, 0.01D0, 20.0D0, & 'Safety factor on axis') diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index 4f77656a23..dc6bf80bbf 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -729,14 +729,14 @@ module physics_variables !! ion transport power per volume (MW/m3) real(dp) :: q - !! Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 - !! (unless `i_plasma_current=2` (ST current scaling), in which case q = mean edge safety factor qbar) + !! For backwards compatibility only, q95 can be entered using the symbol q. real(dp) :: q0 - !! safety factor on axis + !! Safety factor on axis real(dp) :: q95 - !! safety factor at 95% surface + !! Safety factor at 95% flux surface (iteration variable 18) (unless icurr=2 (ST current scaling), + !! in which case q95 = mean edge safety factor qbar) real(dp) :: qfuel !! plasma fuelling rate (nucleus-pairs/s) diff --git a/tests/regression/input_files/large_tokamak.IN.DAT b/tests/regression/input_files/large_tokamak.IN.DAT index fe8e5ef93c..e7bf1bd32e 100644 --- a/tests/regression/input_files/large_tokamak.IN.DAT +++ b/tests/regression/input_files/large_tokamak.IN.DAT @@ -226,10 +226,10 @@ ixc = 16 boundl(16) = 0.3 dr_cs = 0.5 -* Safety factor near plasma edge +* Safety factor at 95% flux surface ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 From 2d583bcba75cf4fc9af39db23b8393cfadab0206 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 14 Jan 2025 16:32:41 +0000 Subject: [PATCH 2/8] Rename 'q' to 'q95' in multiple data files for clarity and consistency --- examples/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 | 4 ++-- tests/integration/data/large_tokamak_1_MFILE.DAT | 2 +- tests/integration/data/large_tokamak_2_MFILE.DAT | 2 +- tests/integration/data/large_tokamak_3_MFILE.DAT | 2 +- tests/integration/data/large_tokamak_4_MFILE.DAT | 2 +- tests/integration/data/large_tokamak_IN.DAT | 2 +- tests/integration/data/large_tokamak_MFILE.DAT | 2 +- tests/integration/data/scan_2D_MFILE.DAT | 2 +- tests/integration/ref_dicts.json | 2 +- tests/unit/data/large_tokamak_IN.DAT | 2 +- tests/unit/data/large_tokamak_MFILE.DAT | 2 +- 16 files changed, 17 insertions(+), 17 deletions(-) diff --git a/examples/data/csv_output_large_tokamak_MFILE.DAT b/examples/data/csv_output_large_tokamak_MFILE.DAT index e7d5f9206e..f8131adb9d 100644 --- a/examples/data/csv_output_large_tokamak_MFILE.DAT +++ b/examples/data/csv_output_large_tokamak_MFILE.DAT @@ -1425,7 +1425,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/examples/data/large_tokamak_1_MFILE.DAT b/examples/data/large_tokamak_1_MFILE.DAT index bbafaeba05..fc80cb1b61 100644 --- a/examples/data/large_tokamak_1_MFILE.DAT +++ b/examples/data/large_tokamak_1_MFILE.DAT @@ -1419,7 +1419,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/examples/data/large_tokamak_2_MFILE.DAT b/examples/data/large_tokamak_2_MFILE.DAT index c413964ae2..10c0910fd9 100644 --- a/examples/data/large_tokamak_2_MFILE.DAT +++ b/examples/data/large_tokamak_2_MFILE.DAT @@ -1419,7 +1419,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/examples/data/large_tokamak_3_MFILE.DAT b/examples/data/large_tokamak_3_MFILE.DAT index 074e5a016f..78dd310da0 100644 --- a/examples/data/large_tokamak_3_MFILE.DAT +++ b/examples/data/large_tokamak_3_MFILE.DAT @@ -1419,7 +1419,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/examples/data/large_tokamak_4_MFILE.DAT b/examples/data/large_tokamak_4_MFILE.DAT index 909d11d44a..48db2c12ba 100644 --- a/examples/data/large_tokamak_4_MFILE.DAT +++ b/examples/data/large_tokamak_4_MFILE.DAT @@ -1419,7 +1419,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/examples/data/large_tokamak_IN.DAT b/examples/data/large_tokamak_IN.DAT index 7051df43bc..89099c6042 100644 --- a/examples/data/large_tokamak_IN.DAT +++ b/examples/data/large_tokamak_IN.DAT @@ -226,10 +226,10 @@ ixc = 16 boundl(16) = 0.3 dr_cs = 0.5 -* q +* q95 ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/data/large_tokamak_1_MFILE.DAT b/tests/integration/data/large_tokamak_1_MFILE.DAT index f644e84dd3..d6f0feefbe 100644 --- a/tests/integration/data/large_tokamak_1_MFILE.DAT +++ b/tests/integration/data/large_tokamak_1_MFILE.DAT @@ -1418,7 +1418,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/data/large_tokamak_2_MFILE.DAT b/tests/integration/data/large_tokamak_2_MFILE.DAT index cce535e877..acd7511dd5 100644 --- a/tests/integration/data/large_tokamak_2_MFILE.DAT +++ b/tests/integration/data/large_tokamak_2_MFILE.DAT @@ -1419,7 +1419,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/data/large_tokamak_3_MFILE.DAT b/tests/integration/data/large_tokamak_3_MFILE.DAT index a0f10311d2..51f3d631de 100644 --- a/tests/integration/data/large_tokamak_3_MFILE.DAT +++ b/tests/integration/data/large_tokamak_3_MFILE.DAT @@ -1419,7 +1419,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/data/large_tokamak_4_MFILE.DAT b/tests/integration/data/large_tokamak_4_MFILE.DAT index a14239c81e..f43dc5d4ea 100644 --- a/tests/integration/data/large_tokamak_4_MFILE.DAT +++ b/tests/integration/data/large_tokamak_4_MFILE.DAT @@ -1419,7 +1419,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/data/large_tokamak_IN.DAT b/tests/integration/data/large_tokamak_IN.DAT index 912b478d37..4a080f53c0 100644 --- a/tests/integration/data/large_tokamak_IN.DAT +++ b/tests/integration/data/large_tokamak_IN.DAT @@ -229,7 +229,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/data/large_tokamak_MFILE.DAT b/tests/integration/data/large_tokamak_MFILE.DAT index babc8d2d57..aa10d32433 100644 --- a/tests/integration/data/large_tokamak_MFILE.DAT +++ b/tests/integration/data/large_tokamak_MFILE.DAT @@ -1420,7 +1420,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/data/scan_2D_MFILE.DAT b/tests/integration/data/scan_2D_MFILE.DAT index 66cb81bad3..c0d6a6e502 100644 --- a/tests/integration/data/scan_2D_MFILE.DAT +++ b/tests/integration/data/scan_2D_MFILE.DAT @@ -17705,7 +17705,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index e784f4221a..440fce0cea 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -10423,7 +10423,7 @@ "pwplh": "lower hybrid wall plug power (MW)", "pwpm2": "base AC power requirement per unit floor area (W/m2)", "pwpnb": "neutral beam wall plug power (MW)", - "q": "safety factor 'near' plasma edge (`iteration variable 18`) equal to q95\n (unless `i_plasma_current=2` (ST current scaling), in which case q = mean edge safety factor qbar)", + "q": "safety factor 'near' plasma edge (`iteration variable 18`) equal to q95\n (unless `i_plasma_current=2` (ST current scaling), in which case q95 = mean edge safety factor qbar)", "q0": "safety factor on axis", "q2": "", "q95": "safety factor at 95% surface", diff --git a/tests/unit/data/large_tokamak_IN.DAT b/tests/unit/data/large_tokamak_IN.DAT index 2d3b23a593..8ca90699b8 100644 --- a/tests/unit/data/large_tokamak_IN.DAT +++ b/tests/unit/data/large_tokamak_IN.DAT @@ -229,7 +229,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/unit/data/large_tokamak_MFILE.DAT b/tests/unit/data/large_tokamak_MFILE.DAT index efa8efef43..8b95bd4b58 100644 --- a/tests/unit/data/large_tokamak_MFILE.DAT +++ b/tests/unit/data/large_tokamak_MFILE.DAT @@ -1420,7 +1420,7 @@ dr_cs = 0.5 * q ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 From 7249d4b9d02b76d310e2e3858cfc0a60911042f3 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 17 Feb 2025 09:46:36 +0000 Subject: [PATCH 3/8] Fix typo in safety factor description for q95 in input.f90 --- source/fortran/input.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index 96ef86c5ea..0347d954b6 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -705,7 +705,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 'For backwards compatibility only, q95 can be entered using the symbol q.') case ('q95') call parse_real_variable('q', q, 1.00D0, 50.0D0, & - 'Safety factor at 95% flux surface') + 'Safety factor at 95% flux surface') case ('q0') call parse_real_variable('q0', q0, 0.01D0, 20.0D0, & 'Safety factor on axis') From 1e1e799623fc8434f449bae2e5cc6bc043fd1649 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 18 Feb 2025 09:21:11 +0000 Subject: [PATCH 4/8] :fire: Remove q and replace with just q95 --- process/divertor.py | 6 ++-- process/physics.py | 40 +++++++++++++---------- process/stellarator.py | 2 -- source/fortran/constraint_equations.f90 | 6 ++-- source/fortran/input.f90 | 7 ++--- source/fortran/iteration_variables.f90 | 12 +++---- source/fortran/physics_variables.f90 | 6 +--- source/fortran/scan.f90 | 4 +-- source/fortran/stellarator.f90 | 4 +-- tests/unit/test_physics.py | 42 ++++++++++++------------- 10 files changed, 63 insertions(+), 66 deletions(-) diff --git a/process/divertor.py b/process/divertor.py index e24540e065..7ad6966535 100644 --- a/process/divertor.py +++ b/process/divertor.py @@ -116,15 +116,15 @@ def run(self, output: bool) -> None: # (2.5 factor comes from normalization to ITER 1990) tconl = ( - 2.5e0 * pv.rmajor * pv.q * (1.0e0 + 1.0e0 / (pv.q * pv.aspect) ** 2) ** 0.5 + 2.5e0 * pv.rmajor * pv.q95 * (1.0e0 + 1.0e0 / (pv.q95 * pv.aspect) ** 2) ** 0.5 ) dtheta = plsep / pv.rminor dconl = ( 2.5e0 * bv.rspo - * pv.q + * pv.q95 * dtheta - * (1.0e0 + 1.0e0 / (pv.q * pv.aspect) ** 2) ** 0.5 + * (1.0e0 + 1.0e0 / (pv.q95 * pv.aspect) ** 2) ** 0.5 ) rconl = dconl / tconl diff --git a/process/physics.py b/process/physics.py index 9e6c6643ae..a3cddb333e 100644 --- a/process/physics.py +++ b/process/physics.py @@ -1545,8 +1545,6 @@ def physics(self): https://inis.iaea.org/search/search.aspx?orig_q=RN:45031642 """ - physics_variables.q95 = physics_variables.q - # Calculate plasma composition # Issue #261 Remove old radiation model (imprad_model=0) self.plasma_composition() @@ -1583,7 +1581,7 @@ def physics(self): physics_variables.p0, physics_variables.len_plasma_poloidal, physics_variables.q0, - physics_variables.q, + physics_variables.q95, physics_variables.ind_plasma_internal_norm, physics_variables.rmajor, physics_variables.rminor, @@ -3215,7 +3213,7 @@ def calculate_plasma_current( 9 = FIESTA ST scaling iprofile (int): Switch for current profile consistency. 0: Use input values for alphaj, ind_plasma_internal_norm, beta_norm_max. - 1: Make these consistent with input q, q_0 values. + 1: Make these consistent with input q95, q_0 values. 2: Use input values for alphaj, ind_plasma_internal_norm. Scale beta_norm_max with aspect ratio (original scaling). 3: Use input values for alphaj, ind_plasma_internal_norm. Scale beta_norm_max with aspect ratio (Menard scaling). 4: Use input values for alphaj, beta_norm_max. Set ind_plasma_internal_norm from elongation (Menard scaling). @@ -3679,12 +3677,12 @@ def outplas(self): if physics_variables.iprofile == 1: po.ocmmnt( self.outfile, - "Consistency between q0,q,alphaj,ind_plasma_internal_norm,beta_norm_max is enforced", + "Consistency between q0,q95,alphaj,ind_plasma_internal_norm,beta_norm_max is enforced", ) else: po.ocmmnt( self.outfile, - "Consistency between q0,q,alphaj,ind_plasma_internal_norm,beta_norm_max is not enforced", + "Consistency between q0,q95,alphaj,ind_plasma_internal_norm,beta_norm_max is not enforced", ) po.oblnkl(self.outfile) @@ -3769,7 +3767,10 @@ def outplas(self): if physics_variables.i_plasma_current == 2: po.ovarrf( - self.outfile, "Mean edge safety factor", "(q)", physics_variables.q + self.outfile, + "Mean edge safety factor", + "(q95)", + physics_variables.q95, ) po.ovarrf( @@ -3790,7 +3791,7 @@ def outplas(self): if physics_variables.i_plasma_geometry == 1: po.ovarrf( self.outfile, - "Lower limit for edge safety factor q", + "Lower limit for edge safety factor q95", "(q95_min)", physics_variables.q95_min, "OP ", @@ -5891,7 +5892,7 @@ def output_confinement_comparison(self, istell: int) -> None: physics_variables.rminor, physics_variables.ten, physics_variables.tin, - physics_variables.q, + physics_variables.q95, physics_variables.qstar, physics_variables.vol_plasma, physics_variables.zeff, @@ -6210,7 +6211,8 @@ def bootstrap_fraction_sauter(plasma_profile: float) -> float: # inverse_q = 1/safety factor # Parabolic q profile assumed inverse_q = 1 / ( - physics_variables.q0 + (physics_variables.q - physics_variables.q0) * roa**2 + physics_variables.q0 + + (physics_variables.q95 - physics_variables.q0) * roa**2 ) # Create new array of average mass of fuel portion of ions amain = np.full_like(inverse_q, physics_variables.m_fuel_amu) @@ -6690,7 +6692,7 @@ def fhz(hfact: float) -> float: physics_variables.rminor, physics_variables.ten, physics_variables.tin, - physics_variables.q, + physics_variables.q95, physics_variables.qstar, physics_variables.vol_plasma, physics_variables.zeff, @@ -6745,7 +6747,7 @@ def calculate_confinement_time( rminor: float, ten: float, tin: float, - q: float, + q95: float, qstar: float, vol_plasma: float, zeff: float, @@ -6770,7 +6772,7 @@ def calculate_confinement_time( :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 q95: 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) @@ -7129,7 +7131,7 @@ def calculate_confinement_time( dnla20, bt, p_plasma_loss_mw, - q, + q95, ) ) @@ -7324,7 +7326,9 @@ def calculate_confinement_time( # ISS95 stellarator scaling elif i_confinement_time == 37: - iotabar = q # dummy argument q is actual argument iotabar for stellarators + iotabar = ( + q95 # dummy argument q95 is actual argument iotabar for stellarators + ) t_electron_confinement = confinement.iss95_stellarator_confinement_time( rminor, rmajor, @@ -7338,7 +7342,9 @@ def calculate_confinement_time( # ISS04 stellarator scaling elif i_confinement_time == 38: - iotabar = q # dummy argument q is actual argument iotabar for stellarators + iotabar = ( + q95 # dummy argument q95 is actual argument iotabar for stellarators + ) t_electron_confinement = confinement.iss04_stellarator_confinement_time( rminor, rmajor, @@ -7401,7 +7407,7 @@ def calculate_confinement_time( p_plasma_loss_mw, rmajor, rminor, - q, + q95, qstar, aspect, m_fuel_amu, diff --git a/process/stellarator.py b/process/stellarator.py index 6073d9b263..7222fe4af5 100644 --- a/process/stellarator.py +++ b/process/stellarator.py @@ -4121,8 +4121,6 @@ def stphys(self, output): * physics_variables.rmajor ) - physics_variables.q95 = physics_variables.q - # Calculate poloidal field using rotation transform physics_variables.bp = ( physics_variables.rminor diff --git a/source/fortran/constraint_equations.f90 b/source/fortran/constraint_equations.f90 index 961c51ea63..37bcb604ec 100755 --- a/source/fortran/constraint_equations.f90 +++ b/source/fortran/constraint_equations.f90 @@ -1981,14 +1981,14 @@ subroutine constraint_eqn_045(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) !! and hence also optional here. !! Logic change during pre-factoring: err, symbol, units will be assigned only if present. !! fq : input real : f-value for edge safety factor - !! q : safety factor 'near' plasma edge: equal to q95 + !! q95 : safety factor 'near' plasma edge !! (unless i_plasma_current = 2 (ST current scaling), in which case q = mean edge safety factor qbar) !! q95_min : input real : lower limit for edge safety factor !! itart : input integer : switch for spherical tokamak (ST) models:
    !!
  • = 0 use conventional aspect ratio models; !!
  • = 1 use spherical tokamak models
use constraint_variables, only: fq - use physics_variables, only: q, q95_min, itart + use physics_variables, only: q95, q95_min, itart implicit none real(dp), intent(out) :: tmp_cc real(dp), intent(out) :: tmp_con @@ -1998,7 +1998,7 @@ subroutine constraint_eqn_045(tmp_cc, tmp_con, tmp_err, tmp_symbol, tmp_units) ! if the machine isn't a ST then report error if (itart == 0) call report_error(9) - tmp_cc = 1.0D0 - fq * q/q95_min + tmp_cc = 1.0D0 - fq * q95/q95_min tmp_con = q95_min * (1.0D0 - tmp_cc) tmp_err = q95_min * tmp_cc tmp_symbol = '<' diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index 0347d954b6..d8bc6a5dc9 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -308,7 +308,7 @@ subroutine parse_input_file(in_file,out_file,show_changes) 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, q95, ti, tesep, ind_plasma_internal_norm, triang, & + i_beta_fast_alpha, tauee_in, alphaj, alphat, i_plasma_current, q95, ti, tesep, ind_plasma_internal_norm, triang, & itart, f_nd_alpha_electron, iprofile, triang95, rad_fraction_sol, betbm0, f_nd_protium_electrons, & teped, f_helium3, iwalld, ejima_coeff, f_alpha_plasma, fgwped, tbeta, i_bootstrap_current, & i_rad_loss, te, alphan, rmajor, plasma_square, kappa, fkzohm, beamfus0, & @@ -700,11 +700,8 @@ subroutine parse_input_file(in_file,out_file,show_changes) case ('plasma_res_factor') call parse_real_variable('plasma_res_factor', plasma_res_factor, 0.0D0, 1.0D0, & 'Plasma resistivity pre-factor') - case ('q') - call parse_real_variable('q', q, 1.00D0, 50.0D0, & - 'For backwards compatibility only, q95 can be entered using the symbol q.') case ('q95') - call parse_real_variable('q', q, 1.00D0, 50.0D0, & + call parse_real_variable('q95', q95, 1.00D0, 50.0D0, & 'Safety factor at 95% flux surface') case ('q0') call parse_real_variable('q0', q0, 0.01D0, 20.0D0, & diff --git a/source/fortran/iteration_variables.f90 b/source/fortran/iteration_variables.f90 index 5a34f4c20d..4ec866b6c4 100755 --- a/source/fortran/iteration_variables.f90 +++ b/source/fortran/iteration_variables.f90 @@ -437,25 +437,25 @@ end subroutine set_itv_17 !--------------------------------- subroutine init_itv_18 - !!
  • (18) q + !!
  • (18) q95 use numerics, only: lablxc, boundl, boundu implicit none - lablxc(18) = 'q ' + lablxc(18) = 'q95 ' boundl(18) = 2.000D0 boundu(18) = 50.00D0 end subroutine init_itv_18 real(kind(1.d0)) function itv_18() - use physics_variables, only: q + use physics_variables, only: q95 implicit none - itv_18 = q + itv_18 = q95 end function itv_18 subroutine set_itv_18(ratio) - use physics_variables, only: q + use physics_variables, only: q95 implicit none real(kind(1.d0)) :: ratio - q = ratio + q95 = ratio end subroutine set_itv_18 !--------------------------------- diff --git a/source/fortran/physics_variables.f90 b/source/fortran/physics_variables.f90 index dc6bf80bbf..3b30a00398 100644 --- a/source/fortran/physics_variables.f90 +++ b/source/fortran/physics_variables.f90 @@ -400,7 +400,7 @@ module physics_variables !! switch for current profile consistency: !! !! - =0 use input values for alphaj, ind_plasma_internal_norm, beta_norm_max - !! - =1 make these consistent with input q, q_0 values (recommend `i_plasma_current=4` with this option) + !! - =1 make these consistent with input q95, q_0 values (recommend `i_plasma_current=4` with this option) !! - =2 use input values for alphaj, ind_plasma_internal_norm. Scale beta_norm_max with aspect ratio (original scaling) !! - =3 use input values for alphaj, ind_plasma_internal_norm. Scale beta_norm_max with aspect ratio (Menard scaling) !! - =4 use input values for alphaj, beta_norm_max. Set ind_plasma_internal_norm from elongation (Menard scaling) @@ -728,9 +728,6 @@ module physics_variables real(dp) :: pden_ion_transport_loss_mw !! ion transport power per volume (MW/m3) - real(dp) :: q - !! For backwards compatibility only, q95 can be entered using the symbol q. - real(dp) :: q0 !! Safety factor on axis @@ -1072,7 +1069,6 @@ subroutine init_physics_variables p_ion_transport_loss_mw = 0.0D0 pscalingmw = 0.0D0 pden_ion_transport_loss_mw = 0.0D0 - q = 3.0D0 q0 = 1.0D0 q95 = 0.0D0 qfuel = 0.0D0 diff --git a/source/fortran/scan.f90 b/source/fortran/scan.f90 index ccaf1aa326..03f5cc0810 100644 --- a/source/fortran/scan.f90 +++ b/source/fortran/scan.f90 @@ -195,7 +195,7 @@ subroutine scan_1d_store_output(iscan, ifail, noutvars_, ipnscns_, outvar) tfcpmw, fcutfsu, acond, fcoolcp, rcool, whttf, ppump, vcool, wwp1, n_tf_coils, & dr_tf_wp, b_crit_upper_nbti use fwbs_variables, only: tpeak - use physics_variables, only: q, aspect, p_plasma_rad_mw, dene, fusion_power, btot, tesep, & + use physics_variables, only: q95, aspect, p_plasma_rad_mw, dene, fusion_power, btot, tesep, & pdivt, f_nd_alpha_electron, ten, beta_poloidal, hfac, teped, alpha_power_beams, q95_min, rmajor, wallmw, & beta, beta_max, bt, plasma_current use global_variables, only: verbose, maxcal, runtitle, run_tests @@ -226,7 +226,7 @@ subroutine scan_1d_store_output(iscan, ifail, noutvars_, ipnscns_, outvar) outvar(12,iscan) = 1.0D-6 * plasma_current outvar(13,iscan) = bt outvar(14,iscan) = btot - outvar(15,iscan) = q + outvar(15,iscan) = q95 outvar(16,iscan) = q95_min outvar(17,iscan) = beta outvar(18,iscan) = beta_max diff --git a/source/fortran/stellarator.f90 b/source/fortran/stellarator.f90 index 83abff24c6..73b493717b 100644 --- a/source/fortran/stellarator.f90 +++ b/source/fortran/stellarator.f90 @@ -54,7 +54,7 @@ subroutine stinit use build_variables, only: dr_cs_tf_gap, iohcl, dr_cs, tfootfi use current_drive_variables, only: irfcd use pfcoil_variables, only: ohhghf - use physics_variables, only: aspect, beta_norm_max, kappa, kappa95, q, rmajor, & + use physics_variables, only: aspect, beta_norm_max, kappa, kappa95, q95, rmajor, & triang, hfac, labels_confinement_scalings use numerics, only: boundl, boundu use stellarator_variables, only: istell @@ -101,7 +101,7 @@ subroutine stinit beta_norm_max = 0.0D0 kappa95 = 1.0D0 triang = 0.0D0 - q = 1.03D0 + q95 = 1.03D0 ! Turn off current drive diff --git a/tests/unit/test_physics.py b/tests/unit/test_physics.py index 6fe1eac9a9..2bbc0069ab 100644 --- a/tests/unit/test_physics.py +++ b/tests/unit/test_physics.py @@ -339,7 +339,7 @@ class BootstrapFractionSauterParam(NamedTuple): rmajor: Any = None - q: Any = None + q95: Any = None nesep: Any = None @@ -381,7 +381,7 @@ class BootstrapFractionSauterParam(NamedTuple): dene=8.016748468651018e19, te=12.570861186498382, rmajor=8, - q=3.5, + q95=3.5, nesep=3.6992211545476006e19, te0=25.986118047669795, neped=6.2886759627309195e19, @@ -461,7 +461,7 @@ def test_bootstrap_fraction_sauter(bootstrapfractionsauterparam, monkeypatch, ph physics_variables, "rmajor", bootstrapfractionsauterparam.rmajor ) - monkeypatch.setattr(physics_variables, "q", bootstrapfractionsauterparam.q) + monkeypatch.setattr(physics_variables, "q95", bootstrapfractionsauterparam.q95) monkeypatch.setattr(physics_variables, "nesep", bootstrapfractionsauterparam.nesep) @@ -2246,7 +2246,7 @@ class ConfinementTimeParam(NamedTuple): pcoreradpv: Any = None - q: Any = None + q95: Any = None qstar: Any = None @@ -2310,7 +2310,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2352,7 +2352,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2394,7 +2394,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2436,7 +2436,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2478,7 +2478,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2520,7 +2520,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2562,7 +2562,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2604,7 +2604,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2646,7 +2646,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2688,7 +2688,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2730,7 +2730,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2772,7 +2772,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2814,7 +2814,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2856,7 +2856,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2898,7 +2898,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -2940,7 +2940,7 @@ class ConfinementTimeParam(NamedTuple): pinjmw=75.397788712812741, plasma_current=16616203.759182997, pcoreradpv=0.047757569353246924, - q=3.5610139569387185, + q95=3.5610139569387185, qstar=2.9513713188821282, rmajor=8, rminor=2.6666666666666665, @@ -3018,7 +3018,7 @@ def test_calculate_confinement_time(confinementtimeparam, monkeypatch, physics): pinjmw=confinementtimeparam.pinjmw, plasma_current=confinementtimeparam.plasma_current, pcoreradpv=confinementtimeparam.pcoreradpv, - q=confinementtimeparam.q, + q95=confinementtimeparam.q95, qstar=confinementtimeparam.qstar, rmajor=confinementtimeparam.rmajor, rminor=confinementtimeparam.rminor, From 83bc75f2a3035c709537596668cbb5024e3e7d59 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 18 Feb 2025 09:28:10 +0000 Subject: [PATCH 5/8] :white_check_mark: Update q in tests --- tests/regression/input_files/large_tokamak_nof.IN.DAT | 4 ++-- tests/regression/input_files/st_regression.IN.DAT | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/regression/input_files/large_tokamak_nof.IN.DAT b/tests/regression/input_files/large_tokamak_nof.IN.DAT index 9904124d79..cf37dc6979 100644 --- a/tests/regression/input_files/large_tokamak_nof.IN.DAT +++ b/tests/regression/input_files/large_tokamak_nof.IN.DAT @@ -208,10 +208,10 @@ ixc = 16 boundl(16) = 0.3 dr_cs = 0.5 -* q +* q95 ixc = 18 boundl(18) = 3.0 -q = 3.5 +q95 = 3.5 * Machine dr_bore [m] ixc = 29 diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index ba7c20786b..6fb8c8a38f 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -379,7 +379,7 @@ beta_norm_max = 5.0 *‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ ixc = 18 -q = 6.0 +q95 = 6.0 boundl(18) = 3.0 boundu(18) = 20.0 * DESCRIPTION: Safety factor at 95% flux surface From 91a2c7eb7267796f05ead9dd7ea7afaa1884745b Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 18 Feb 2025 09:33:35 +0000 Subject: [PATCH 6/8] lint --- process/divertor.py | 5 ++++- .../regression/input_files/large_tokamak_once_through.IN.DAT | 2 +- .../input_files/spherical_tokamak_once_through.IN.DAT | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/process/divertor.py b/process/divertor.py index 7ad6966535..c6e1c75b8c 100644 --- a/process/divertor.py +++ b/process/divertor.py @@ -116,7 +116,10 @@ def run(self, output: bool) -> None: # (2.5 factor comes from normalization to ITER 1990) tconl = ( - 2.5e0 * pv.rmajor * pv.q95 * (1.0e0 + 1.0e0 / (pv.q95 * pv.aspect) ** 2) ** 0.5 + 2.5e0 + * pv.rmajor + * pv.q95 + * (1.0e0 + 1.0e0 / (pv.q95 * pv.aspect) ** 2) ** 0.5 ) dtheta = plsep / pv.rminor dconl = ( 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 80c62f63c2..20c8d5f08e 100644 --- a/tests/regression/input_files/large_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/large_tokamak_once_through.IN.DAT @@ -342,7 +342,7 @@ iprofile = 1 * switch for current profile consistency; 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 +q95 = 3.7339078193128556 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 q0 = 1.0 * safety factor on axis f_nd_alpha_electron = 0.060238763988650204 * thermal alpha density/electron density (`iteration variable 109`) rmajor = 8.0 * plasma major radius (m) (`iteration variable 3`) diff --git a/tests/regression/input_files/spherical_tokamak_once_through.IN.DAT b/tests/regression/input_files/spherical_tokamak_once_through.IN.DAT index 027e85c2da..c9558253e5 100644 --- a/tests/regression/input_files/spherical_tokamak_once_through.IN.DAT +++ b/tests/regression/input_files/spherical_tokamak_once_through.IN.DAT @@ -352,7 +352,7 @@ i_plasma_geometry = 0 * switch for plasma elongation and triangularity calculati itart = 1 * switch for spherical tokamak (ST) models; itartpf = 1 * switch for Spherical Tokamak PF models; kappa = 2.8 * plasma separatrix elongation (calculated if `i_plasma_geometry = 1-5; 7 or 9-10`) -q = 5.835830999686161 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 +q95 = 5.835830999686161 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 q0 = 2.0 * safety factor on axis f_nd_alpha_electron = 0.08870796537675113 * thermal alpha density/electron density (`iteration variable 109`) ind_plasma_internal_norm = 0.3 * plasma normalised internal inductance (calculated from alphaj if `iprofile=1`) From 2b0590044610e13c79381423ecac80336ab64e2a Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 18 Feb 2025 09:50:25 +0000 Subject: [PATCH 7/8] add to obsolete variables --- process/io/obsolete_vars.py | 1 + 1 file changed, 1 insertion(+) diff --git a/process/io/obsolete_vars.py b/process/io/obsolete_vars.py index 5fe700960e..7bb0bd49fd 100644 --- a/process/io/obsolete_vars.py +++ b/process/io/obsolete_vars.py @@ -201,6 +201,7 @@ "rli": "ind_plasma_internal_norm", "gamma": "ejima_coeff", "lpulse": "i_pulsed_plant", + "q": "q95", } OBS_VARS_HELP = { From af97a73e218d80f9f5a1120c6e86684599645518 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Tue, 18 Feb 2025 09:56:47 +0000 Subject: [PATCH 8/8] Refactor iotabar assignment for clarity in stellarator scaling --- examples/data/scan_MFILE.DAT | 4 ++-- process/physics.py | 10 ++++------ .../integration/data/large_tokamak_once_through.IN.DAT | 2 +- tests/integration/data/ref_IN.DAT | 4 ++-- tests/integration/data/scan_MFILE.DAT | 4 ++-- tests/integration/data/uncertainties_nonopt_ref_IN.DAT | 4 ++-- tests/integration/data/uncertainties_ref_IN.DAT | 4 ++-- 7 files changed, 15 insertions(+), 17 deletions(-) diff --git a/examples/data/scan_MFILE.DAT b/examples/data/scan_MFILE.DAT index 807b14ca8c..48cfccc52b 100644 --- a/examples/data/scan_MFILE.DAT +++ b/examples/data/scan_MFILE.DAT @@ -9259,7 +9259,7 @@ i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: u *kappa = 1.7808 kappa = 1.848 triang = 0.5 * Plasma separatrix triangularity (calculated if i_plasma_geometry=1; 3 or 4) -q = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); +q95 = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); q0 = 1.0 * Safety factor on axis rmajor = 9.072 * Plasma major radius (m) (iteration variable 3) i_single_null = 1 * Switch for single null / double null plasma; @@ -9323,7 +9323,7 @@ t_burn = 1.0d4 * Burn time (s) (calculated if i_pulsed_plant=1) dr_tf_inboard = 1.2080E+00 fwalld = 1.3100E-01 dr_cs = 5.5242E-01 - q = 3.5000E+00 + q95 = 3.5000E+00 dr_bore = 2.3322E+00 fbeta_max = 4.8251E-01 coheof = 2.0726E+07 diff --git a/process/physics.py b/process/physics.py index a3cddb333e..ed4964d51a 100644 --- a/process/physics.py +++ b/process/physics.py @@ -7326,9 +7326,8 @@ def calculate_confinement_time( # ISS95 stellarator scaling elif i_confinement_time == 37: - iotabar = ( - q95 # dummy argument q95 is actual argument iotabar for stellarators - ) + # dummy argument q95 is actual argument iotabar for stellarators + iotabar = q95 t_electron_confinement = confinement.iss95_stellarator_confinement_time( rminor, rmajor, @@ -7342,9 +7341,8 @@ def calculate_confinement_time( # ISS04 stellarator scaling elif i_confinement_time == 38: - iotabar = ( - q95 # dummy argument q95 is actual argument iotabar for stellarators - ) + # dummy argument q95 is actual argument iotabar for stellarators + iotabar = q95 t_electron_confinement = confinement.iss04_stellarator_confinement_time( rminor, rmajor, diff --git a/tests/integration/data/large_tokamak_once_through.IN.DAT b/tests/integration/data/large_tokamak_once_through.IN.DAT index 08db363549..87297a64d4 100644 --- a/tests/integration/data/large_tokamak_once_through.IN.DAT +++ b/tests/integration/data/large_tokamak_once_through.IN.DAT @@ -342,7 +342,7 @@ iprofile = 1 * switch for current profile consistency; 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 +q95 = 3.7339078193128556 * Safety factor 'near' plasma edge (`iteration variable 18`) equal to q95 q0 = 1.0 * safety factor on axis f_nd_alpha_electron = 0.060238763988650204 * thermal alpha density/electron density (`iteration variable 109`) rmajor = 8.0 * plasma major radius (m) (`iteration variable 3`) diff --git a/tests/integration/data/ref_IN.DAT b/tests/integration/data/ref_IN.DAT index be9d71dda6..82429c74bd 100644 --- a/tests/integration/data/ref_IN.DAT +++ b/tests/integration/data/ref_IN.DAT @@ -280,7 +280,7 @@ i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: u *kappa = 1.7808 kappa = 1.848 triang = 0.5 * Plasma separatrix triangularity (calculated if i_plasma_geometry=1; 3 or 4) -q = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); +q95 = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); q0 = 1.0 * Safety factor on axis rmajor = 9.072 * Plasma major radius (m) (iteration variable 3) i_single_null = 1 * Switch for single null / double null plasma; @@ -343,7 +343,7 @@ t_burn = 1.0d4 * Burn time (s) (calculated if i_pulsed_plant=1) dr_tf_inboard = 1.2080E+00 fwalld = 1.3100E-01 dr_cs = 5.5242E-01 - q = 3.5000E+00 + q95 = 3.5000E+00 dr_bore = 2.3322E+00 fbeta_max = 4.8251E-01 coheof = 2.0726E+07 diff --git a/tests/integration/data/scan_MFILE.DAT b/tests/integration/data/scan_MFILE.DAT index b0d91292fd..ed8595b696 100644 --- a/tests/integration/data/scan_MFILE.DAT +++ b/tests/integration/data/scan_MFILE.DAT @@ -9259,7 +9259,7 @@ i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: u *kappa = 1.7808 kappa = 1.848 triang = 0.5 * Plasma separatrix triangularity (calculated if i_plasma_geometry=1; 3 or 4) -q = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); +q95 = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); q0 = 1.0 * Safety factor on axis rmajor = 9.072 * Plasma major radius (m) (iteration variable 3) i_single_null = 1 * Switch for single null / double null plasma; @@ -9323,7 +9323,7 @@ t_burn = 1.0d4 * Burn time (s) (calculated if i_pulsed_plant=1) dr_tf_inboard = 1.2080E+00 fwalld = 1.3100E-01 dr_cs = 5.5242E-01 - q = 3.5000E+00 + q95 = 3.5000E+00 dr_bore = 2.3322E+00 fbeta_max = 4.8251E-01 coheof = 2.0726E+07 diff --git a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT index e13916e374..77e155778e 100644 --- a/tests/integration/data/uncertainties_nonopt_ref_IN.DAT +++ b/tests/integration/data/uncertainties_nonopt_ref_IN.DAT @@ -280,7 +280,7 @@ i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: u *kappa = 1.7808 kappa = 1.848 triang = 0.5 * Plasma separatrix triangularity (calculated if i_plasma_geometry=1; 3 or 4) -q = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); +q95 = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); q0 = 1.0 * Safety factor on axis rmajor = 9.072 * Plasma major radius (m) (iteration variable 3) i_single_null = 1 * Switch for single null / double null plasma; @@ -343,7 +343,7 @@ t_burn = 1.0d4 * Burn time (s) (calculated if i_pulsed_plant=1) dr_tf_inboard = 1.2080E+00 fwalld = 1.3100E-01 dr_cs = 5.5242E-01 - q = 3.5000E+00 + q95 = 3.5000E+00 dr_bore = 2.3322E+00 fbeta_max = 4.8251E-01 coheof = 2.0726E+07 diff --git a/tests/integration/data/uncertainties_ref_IN.DAT b/tests/integration/data/uncertainties_ref_IN.DAT index cdbfb75a15..0336383cdb 100644 --- a/tests/integration/data/uncertainties_ref_IN.DAT +++ b/tests/integration/data/uncertainties_ref_IN.DAT @@ -280,7 +280,7 @@ i_plasma_geometry = 0 * Switch for plasma cross-sectional shape calculation: u *kappa = 1.7808 kappa = 1.848 triang = 0.5 * Plasma separatrix triangularity (calculated if i_plasma_geometry=1; 3 or 4) -q = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); +q95 = 3.247 * Safety factor 'near' plasma edge (iteration variable 18); q0 = 1.0 * Safety factor on axis rmajor = 9.072 * Plasma major radius (m) (iteration variable 3) i_single_null = 1 * Switch for single null / double null plasma; @@ -343,7 +343,7 @@ t_burn = 1.0d4 * Burn time (s) (calculated if i_pulsed_plant=1) dr_tf_inboard = 1.2080E+00 fwalld = 1.3100E-01 dr_cs = 5.5242E-01 - q = 3.5000E+00 + q95 = 3.5000E+00 dr_bore = 2.3322E+00 fbeta_max = 4.8251E-01 coheof = 2.0726E+07