Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
fdfb473
:sparkle: Add switch for TF turn geometry type in superconducting coi…
chris-ashe Oct 24, 2025
1c1adbd
Add validation for TF turn type and introduce new input variable for …
chris-ashe Oct 24, 2025
ab8b1fc
Add geometry calculations for superconducting TF coil turns based on …
chris-ashe Oct 24, 2025
f2b0c59
Add plotting function for TF coil step vertical tape turn structure
chris-ashe Oct 24, 2025
90dde75
Add thickness variable for TF turn tape stack
chris-ashe Oct 24, 2025
9c13a22
Add radial thickness variable for TF turn tape stack
chris-ashe Oct 24, 2025
39d8047
Refactor tape stack geometry calculations for superconducting TF coils
chris-ashe Oct 24, 2025
0569fa8
Add cross-sectional area variable for TF turn tape stack and update r…
chris-ashe Oct 24, 2025
c0e2845
Add number of superconducting strands variable for TF turn tape stack
chris-ashe Oct 24, 2025
5789fa1
Add coolant channel center position and stabilizer thickness variable…
chris-ashe Oct 24, 2025
a4b4cf9
Add HTS tape thickness and width variables to TF coil output
chris-ashe Oct 24, 2025
46a958c
Add calculation and output for number of superconducting strands per …
chris-ashe Oct 27, 2025
2e6b9d3
Refactor quench heat protection calculations and add insulation area …
chris-ashe Oct 27, 2025
6e59b94
Add stabiliser area and dimensions for TF turn in superconducting TF …
chris-ashe Oct 27, 2025
35fa7c9
Add parameterized tests for TF coil geometry and superconductor prope…
chris-ashe Oct 27, 2025
28a8229
Enhance tf_step_vertical_tape_averaged_turn_geometry with detailed pa…
chris-ashe Oct 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions process/data_structure/superconducting_tf_coil_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,33 @@
j_tf_superconductor: float = None
"""Current density in the superconducting cable [A/m^2]"""

i_tf_turn_type: int = None
"""Switch for TF turn geometry type"""

dx_tf_turn_tape_stack: float = None
"""Thickness of the tape stack in the TF turn [m]"""

dr_tf_turn_tape_stack: float = None
"""Radial thickness of the tape stack in the TF turn [m]"""

a_tf_turn_tape_stack: float = None
"""Cross-sectional area of the tape stack in the TF turn [m^2]"""

n_tf_turn_superconducting_strands: int = None
"""Number of superconducting strands in the TF turn"""

x_tf_turn_coolant_channel_centre: float = None
"""Vertical centre position of the coolant channel in the TF turn [m]"""

dr_tf_turn_stabiliser: float = None
"""Radial thickness of the stabiliser in the TF turn [m]"""

dx_tf_turn_stabiliser: float = None
"""Toroidal thickness of the stabiliser in the TF turn [m]"""

a_tf_turn_stabiliser: float = None
"""Cross-sectional area of the stabiliser in the TF turn [m^2]"""

# Vacuum Vessel stress on TF coil quench

vv_stress_quench: float = None
Expand Down Expand Up @@ -320,6 +347,15 @@ def init_superconducting_tf_coil_variables():
global f_a_tf_turn_cable_space_cooling
global c_tf_turn_cables_critical
global j_tf_superconductor
global i_tf_turn_type
global dx_tf_turn_tape_stack
global dr_tf_turn_tape_stack
global a_tf_turn_tape_stack
global n_tf_turn_superconducting_strands
global x_tf_turn_coolant_channel_centre
global dr_tf_turn_stabiliser
global dx_tf_turn_stabiliser
global a_tf_turn_stabiliser

is_leg_cp_temp_same = 0
tf_fit_t = 0.0
Expand Down Expand Up @@ -380,3 +416,12 @@ def init_superconducting_tf_coil_variables():
f_a_tf_turn_cable_space_cooling = 0.0
c_tf_turn_cables_critical = 0.0
j_tf_superconductor = 0.0
i_tf_turn_type = 0
dx_tf_turn_tape_stack = 0.0
dr_tf_turn_tape_stack = 0.0
a_tf_turn_tape_stack = 0.0
n_tf_turn_superconducting_strands = 0
x_tf_turn_coolant_channel_centre = 0.0
dr_tf_turn_stabiliser = 0.0
dx_tf_turn_stabiliser = 0.0
a_tf_turn_stabiliser = 0.0
10 changes: 10 additions & 0 deletions process/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import process
import process.iteration_variables as iteration_variables
import process.process_output as process_output
import process.superconducting_tf_coil as superconducting_tf_coil_module
from process import constants, data_structure
from process.constraints import ConstraintManager
from process.data_structure.blanket_library import init_blanket_library
Expand Down Expand Up @@ -811,6 +812,15 @@ def check_process(inputs): # noqa: ARG001
"Constraint equation 10 (CP lifetime) to used with ST desing (itart=1)"
)

if (
data_structure.superconducting_tf_coil_variables.i_tf_turn_type == 0
and data_structure.tfcoil_variables.i_tf_sup
not in superconducting_tf_coil_module.CABLE_SUPERCONDUCTORS
):
raise ProcessValidationError(
"i_tf_turn_type = 0 can only be used with cable type superconductors"
)

# Pulsed power plant model
if data_structure.pulse_variables.i_pulsed_plant == 1:
data_structure.global_variables.icase = "Pulsed tokamak model"
Expand Down
3 changes: 3 additions & 0 deletions process/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -2203,6 +2203,9 @@ def __post_init__(self):
"n_tf_wp_pancakes": InputVariable(
data_structure.tfcoil_variables, int, range=(1, 100)
),
"i_tf_turn_type": InputVariable(
data_structure.superconducting_tf_coil_variables, int, choices=[0, 1, 2]
),
"n_rad_per_layer": InputVariable(
data_structure.tfcoil_variables, int, range=(1, 500)
),
Expand Down
Loading
Loading