diff --git a/process/input.py b/process/input.py index 5bcb0c29a9..9fa77ad9a6 100644 --- a/process/input.py +++ b/process/input.py @@ -1295,6 +1295,7 @@ def __post_init__(self): data_structure.pfcoil_variables, float, range=(0.0, 1e-05) ), "rinboard": InputVariable(data_structure.build_variables, float, range=(0.1, 10.0)), + "routboard": InputVariable(data_structure.build_variables, float, range=(0.1, 20.0)), "ripple_b_tf_plasma_edge_max": InputVariable( data_structure.tfcoil_variables, float, range=(0.1, 100.0) ), @@ -1865,7 +1866,7 @@ def __post_init__(self): data_structure.physics_variables, int, range=(1, 9) ), "i_plasma_geometry": InputVariable( - data_structure.physics_variables, int, range=(0, 11) + data_structure.physics_variables, int, range=(0, 12) ), "i_plasma_shape": InputVariable( data_structure.physics_variables, int, choices=[0, 1] diff --git a/process/io/plot_scans.py b/process/io/plot_scans.py index 2eb1362ea5..6e7d7b1e16 100644 --- a/process/io/plot_scans.py +++ b/process/io/plot_scans.py @@ -304,6 +304,7 @@ def main(args=None): 5: "oacdcp", 6: "pflux_fw_neutron_max_mw", 7: "beamfus0", + 8: "Obsolete",# OBSOLETE 9: "temp_plasma_electron_vol_avg_kev", 10: "boundu(15)", 11: "beta_norm_max", @@ -347,6 +348,7 @@ def main(args=None): 50: "f_nd_impurity_electrons(13)", 51: "f_p_div_lower", 52: "rad_fraction_sol", + 53: "obsolete", # Removed 54: "b_crit_upper_nbti", 55: "dr_shld_inboard", 56: "p_cryo_plant_electric_max_mw", @@ -375,6 +377,7 @@ def main(args=None): 79: "eta_ecrh_injector_wall_plug", 80: "fcoolcp", 81: "n_tf_coil_turns", + 82: "f_p_plasma_separatrix_rad", # really fradpwr } # ------------------- @@ -951,6 +954,8 @@ def main(args=None): # Output file naming if output_name == "plasma_current_MA": extra_str = f"plasma_current{f'_vs_{output_name2}' if output_names2 != [] else ''}" + if output_name == "p_div_separatrix_max_mw/physics_variables.rmajor": + extra_str = f"p_div_separatrix_max_mwrmajor{f'_vs_{output_name2}' if output_names2 != [] else ''}" elif stack_plots and output_names[-1] == output_name: extra_str = f"{output_name}{f'_vs_{output_name2}' if output_names2 != [] else '_vs_'.join(output_names)}" else: diff --git a/process/models/physics/physics.py b/process/models/physics/physics.py index 91dd3bef05..f69511616a 100644 --- a/process/models/physics/physics.py +++ b/process/models/physics/physics.py @@ -3931,6 +3931,14 @@ def outplas(self): physics_variables.kappa, "OP ", ) + elif physics_variables.i_plasma_geometry == 12: + po.ovarrf( + self.outfile, + "Elongation, X-point (calculated from aspect ratio via scaling)", + "(kappa)", + physics_variables.kappa, + "OP ", + ) else: raise ProcessValueError( "Illegal value of i_plasma_geometry", diff --git a/process/models/physics/plasma_geometry.py b/process/models/physics/plasma_geometry.py index 268306d7d2..adcf697545 100644 --- a/process/models/physics/plasma_geometry.py +++ b/process/models/physics/plasma_geometry.py @@ -219,6 +219,15 @@ def plasma_geometry(self): # ====================================================================== + if physics_variables.i_plasma_geometry == 12: + + physics_variables.kappa = 2.93e0 * ( 1.8e0 / physics_variables.aspect ) ** 0.4e0 + + physics_variables.kappa95 = physics_variables.kappa / 1.12e0 + physics_variables.triang95 = physics_variables.triang / 1.50e0 + + # ====================================================================== + # Scrape-off layer thicknesses if physics_variables.i_plasma_wall_gap == 0: build_variables.dr_fw_plasma_gap_outboard = 0.1e0 * physics_variables.rminor