Describe the bug
Build.calculate_radial_build only derives dr_tf_inboard from the winding-pack and case thicknesses when dr_tf_wp_with_insulation (ixc = 140) is an iteration variable:
# Issue #514 Radial dimensions of inboard leg
# Calculate self.data.build.dr_tf_inboard if
# self.data.tfcoil.dr_tf_wp_with_insulation is an iteration variable (140)
if 140 in self.data.numerics.ixc[0 : self.data.numerics.n_iteration_variables]:
self.data.build.dr_tf_inboard = (...)
If a user supplies dr_tf_wp_with_insulation as a plain input instead (a natural thing to do when freezing a design), and does not use ixc 13 or set dr_tf_inboard explicitly, dr_tf_inboard silently stays at its default of 0.0: the TF coil vanishes from the radial build. The run then fails far downstream and confusingly — radial-build consistency (icc 11) violated by the full coil thickness, TF stress constraints evaluating at tens of GPa against an 850 MPa limit — with no message pointing at the cause. Whether a physical quantity is derived or defaulted-to-zero currently depends on the numerics configuration.
Reproduce: take tests/regression/input_files/st_regression.IN.DAT, replace ixc = 140 with a fixed dr_tf_wp_with_insulation = 0.63 (and ixc = 57 with dr_tf_nose_case = 0.25); the radial build silently loses ~0.93 m and VMCON fails with no explanation.
Proposed fix
Validate at input-check time (check_process) that a superconducting TF has a positive dr_tf_inboard when neither ixc = 13 nor ixc = 140 is active, with an actionable error message. Stellarators (which compute dr_tf_inboard during the model run) and IFE excluded. All seven shipped regression inputs pass the check. PR ready (found during an independent audit of v3.4.2; related to the older #514 TODO on making dr_tf_inboard an output).
Describe the bug
Build.calculate_radial_buildonly derivesdr_tf_inboardfrom the winding-pack and case thicknesses whendr_tf_wp_with_insulation(ixc = 140) is an iteration variable:If a user supplies
dr_tf_wp_with_insulationas a plain input instead (a natural thing to do when freezing a design), and does not use ixc 13 or setdr_tf_inboardexplicitly,dr_tf_inboardsilently stays at its default of 0.0: the TF coil vanishes from the radial build. The run then fails far downstream and confusingly — radial-build consistency (icc 11) violated by the full coil thickness, TF stress constraints evaluating at tens of GPa against an 850 MPa limit — with no message pointing at the cause. Whether a physical quantity is derived or defaulted-to-zero currently depends on the numerics configuration.Reproduce: take
tests/regression/input_files/st_regression.IN.DAT, replaceixc = 140with a fixeddr_tf_wp_with_insulation = 0.63(andixc = 57withdr_tf_nose_case = 0.25); the radial build silently loses ~0.93 m and VMCON fails with no explanation.Proposed fix
Validate at input-check time (
check_process) that a superconducting TF has a positivedr_tf_inboardwhen neither ixc = 13 nor ixc = 140 is active, with an actionable error message. Stellarators (which computedr_tf_inboardduring the model run) and IFE excluded. All seven shipped regression inputs pass the check. PR ready (found during an independent audit of v3.4.2; related to the older #514 TODO on making dr_tf_inboard an output).