diff --git a/process/models/tfcoil/base.py b/process/models/tfcoil/base.py index 30b11abdd..79b90bf38 100644 --- a/process/models/tfcoil/base.py +++ b/process/models/tfcoil/base.py @@ -2215,8 +2215,6 @@ def stresscl( i_tf_bucking, r_tf_inboard_in, dr_bore, - z_tf_inside_half, - f_z_cs_tf_internal, dr_cs, i_tf_inside_cs, dr_tf_inboard, @@ -2276,6 +2274,7 @@ def stresscl( a_tf_coil_inboard_case, vforce, a_tf_turn_steel, + a_cs_poloidal: float, ): """TF coil stress routine @@ -2297,10 +2296,6 @@ def stresscl( dr_bore : - z_tf_inside_half : - - f_z_cs_tf_internal : - dr_cs : i_tf_inside_cs : @@ -2418,6 +2413,9 @@ def stresscl( vforce : a_tf_turn_steel : + + a_cs_poloidal : float + Area of the CS poloidal cross-section [m²] Raises ------ @@ -2542,21 +2540,12 @@ def stresscl( # as the TF is called before CS in caller.f90 # -# - # CS vertical cross-section area [m2] - if i_tf_inside_cs == 1: - a_oh = ( - 2.0e0 - * z_tf_inside_half - * f_z_cs_tf_internal - * (dr_bore - dr_tf_inboard) - ) - else: - a_oh = 2.0e0 * z_tf_inside_half * f_z_cs_tf_internal * dr_cs - # Maximum current in Central Solenoid, at either BOP or EOF [MA-turns] # Absolute value curr_oh_max = ( - 1.0e-6 * np.maximum(j_cs_flat_top_end, j_cs_pulse_start) * a_oh + 1.0e-6 + * np.maximum(j_cs_flat_top_end, j_cs_pulse_start) + * a_cs_poloidal ) # Number of turns @@ -2567,7 +2556,7 @@ def stresscl( ) # CS Turn vertical cross-sectionnal area - a_cs_turn = a_oh / n_oh_turns + a_cs_turn = a_cs_poloidal / n_oh_turns # CS coil turn geometry calculation - stadium shape # Literature: https://doi.org/10.1016/j.fusengdes.2017.04.052 diff --git a/process/models/tfcoil/resistive.py b/process/models/tfcoil/resistive.py index 40211f0e6..a26f6d6b6 100644 --- a/process/models/tfcoil/resistive.py +++ b/process/models/tfcoil/resistive.py @@ -137,8 +137,6 @@ def run(self, output: bool = False): int(self.data.tfcoil.i_tf_bucking), float(self.data.build.r_tf_inboard_in), self.data.build.dr_bore, - self.data.build.z_tf_inside_half, - self.data.pf_coil.f_z_cs_tf_internal, self.data.build.dr_cs, self.data.build.i_tf_inside_cs, self.data.build.dr_tf_inboard, @@ -198,6 +196,7 @@ def run(self, output: bool = False): self.data.tfcoil.a_tf_coil_inboard_case, self.data.tfcoil.vforce, self.data.tfcoil.a_tf_turn_steel, + a_cs_poloidal=self.data.pf_coil.a_cs_poloidal, ) self.data.tfcoil.sig_tf_case = ( diff --git a/process/models/tfcoil/superconducting.py b/process/models/tfcoil/superconducting.py index e49df0c4a..9cf881f83 100644 --- a/process/models/tfcoil/superconducting.py +++ b/process/models/tfcoil/superconducting.py @@ -2068,8 +2068,6 @@ def run_and_output_stress(self) -> None: int(self.data.tfcoil.i_tf_bucking), float(self.data.build.r_tf_inboard_in), self.data.build.dr_bore, - self.data.build.z_tf_inside_half, - self.data.pf_coil.f_z_cs_tf_internal, self.data.build.dr_cs, self.data.build.i_tf_inside_cs, self.data.build.dr_tf_inboard, @@ -2129,6 +2127,7 @@ def run_and_output_stress(self) -> None: self.data.tfcoil.a_tf_coil_inboard_case, self.data.tfcoil.vforce, self.data.tfcoil.a_tf_turn_steel, + a_cs_poloidal=self.data.pf_coil.a_cs_poloidal, ) self.data.tfcoil.sig_tf_case = ( @@ -2495,8 +2494,6 @@ def run(self, output: bool = False): int(self.data.tfcoil.i_tf_bucking), float(self.data.build.r_tf_inboard_in), self.data.build.dr_bore, - self.data.build.z_tf_inside_half, - self.data.pf_coil.f_z_cs_tf_internal, self.data.build.dr_cs, self.data.build.i_tf_inside_cs, self.data.build.dr_tf_inboard, @@ -2556,6 +2553,7 @@ def run(self, output: bool = False): self.data.tfcoil.a_tf_coil_inboard_case, self.data.tfcoil.vforce, self.data.tfcoil.a_tf_turn_steel, + a_cs_poloidal=self.data.pf_coil.a_cs_poloidal, ) self.data.tfcoil.sig_tf_case = ( @@ -4204,8 +4202,6 @@ def run(self, output: bool = False): int(self.data.tfcoil.i_tf_bucking), float(self.data.build.r_tf_inboard_in), self.data.build.dr_bore, - self.data.build.z_tf_inside_half, - self.data.pf_coil.f_z_cs_tf_internal, self.data.build.dr_cs, self.data.build.i_tf_inside_cs, self.data.build.dr_tf_inboard, @@ -4265,6 +4261,7 @@ def run(self, output: bool = False): self.data.tfcoil.a_tf_coil_inboard_case, self.data.tfcoil.vforce, self.data.tfcoil.a_tf_turn_steel, + a_cs_poloidal=self.data.pf_coil.a_cs_poloidal, ) self.data.tfcoil.sig_tf_case = ( diff --git a/tests/unit/models/tfcoil/test_tfcoil.py b/tests/unit/models/tfcoil/test_tfcoil.py index c87434b5f..40ca25198 100644 --- a/tests/unit/models/tfcoil/test_tfcoil.py +++ b/tests/unit/models/tfcoil/test_tfcoil.py @@ -797,8 +797,6 @@ class StressclParam(NamedTuple): dr_cs_tf_gap: Any = None - z_tf_inside_half: Any = None - r_tf_inboard_in: Any = None casestr: Any = None @@ -907,8 +905,6 @@ class StressclParam(NamedTuple): f_a_cs_turn_steel: Any = None - f_z_cs_tf_internal: Any = None - j_cs_flat_top_end: Any = None j_cs_pulse_start: Any = None @@ -947,6 +943,8 @@ class StressclParam(NamedTuple): vforce_inboard_tot: Any = None + a_cs_poloidal: Any = None + iprint: Any = None outfile: Any = None @@ -976,7 +974,7 @@ class StressclParam(NamedTuple): r_tf_inboard_mid=3.5979411851091103, dr_bore=2.3322000000000003, dr_cs=0.55242000000000002, - z_tf_inside_half=9.0730900215620327, + a_cs_poloidal=9.021881501, r_tf_inboard_in=2.9939411851091102, casestr=0, n_tf_coil_turns=200, @@ -1031,7 +1029,6 @@ class StressclParam(NamedTuple): n_tf_wp_stress_layers=5, i_pf_conductor=0, f_a_cs_turn_steel=0.57874999999999999, - f_z_cs_tf_internal=0.90000000000000002, j_cs_flat_top_end=20726000, j_cs_pulse_start=0, n_pf_coils_in_group=np.array((1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0)), @@ -1093,7 +1090,7 @@ class StressclParam(NamedTuple): r_tf_inboard_mid=3.5979411851091103, dr_bore=2.3322000000000003, dr_cs=0.55242000000000002, - z_tf_inside_half=9.0730900215620327, + a_cs_poloidal=9.021881501, r_tf_inboard_in=2.9939411851091102, casestr=0.00094360452596334093, n_tf_coil_turns=200, @@ -1148,7 +1145,6 @@ class StressclParam(NamedTuple): n_tf_wp_stress_layers=5, i_pf_conductor=0, f_a_cs_turn_steel=0.57874999999999999, - f_z_cs_tf_internal=0.90000000000000002, j_cs_flat_top_end=20726000, j_cs_pulse_start=19311657.760000002, n_pf_coils_in_group=np.array((1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0)), @@ -1258,8 +1254,6 @@ def test_stresscl(stressclparam, monkeypatch, tfcoil): stressclparam.i_tf_bucking, stressclparam.r_tf_inboard_in, stressclparam.dr_bore, - stressclparam.z_tf_inside_half, - stressclparam.f_z_cs_tf_internal, stressclparam.dr_cs, stressclparam.i_tf_inside_cs, stressclparam.dr_tf_inboard, @@ -1319,6 +1313,7 @@ def test_stresscl(stressclparam, monkeypatch, tfcoil): stressclparam.a_tf_coil_inboard_case, stressclparam.vforce, stressclparam.a_tf_turn_steel, + a_cs_poloidal=stressclparam.a_cs_poloidal, ) assert casestr == pytest.approx(stressclparam.expected_casestr, rel=0.01)