Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
eafc889
Add CROCOAveragedTurnGeometry class and update CROCOSuperconductingTF…
chris-ashe Apr 17, 2026
8da6224
Remove unused i_tf_sc_mat parameter from CICCSuperconductingTFCoil an…
chris-ashe Apr 17, 2026
5808ce6
Refactor CICCSuperconductingTFCoil to simplify cable calculations by …
chris-ashe Apr 17, 2026
cfa6723
Update main_plot to handle different superconducting turn types and i…
chris-ashe Apr 17, 2026
5dec6cb
Add output_croco_info method to CROCOSuperconductingTFCoil for detail…
chris-ashe Apr 17, 2026
d903cdc
Add plot_tf_croco_turn function for visualizing TF coil CICC turn str…
chris-ashe Apr 17, 2026
20d5fd2
Remove unsupported integer turn geometry handling for CroCo conductor…
chris-ashe Apr 17, 2026
d6f4541
Refactor CROCOSuperconductingTFCoil to streamline conductor area calc…
chris-ashe Apr 17, 2026
873c282
Post rebase summary file changes
chris-ashe Apr 17, 2026
eb05756
Add effective cable space area calculation in CROCOSuperconductingTFCoil
chris-ashe Apr 17, 2026
ec35521
Refactor CROCOSuperconductingTFCoil to update Croco cable diameter va…
chris-ashe Apr 17, 2026
1bd0b11
Enhance CroCo cable geometry calculations by adding tape stack height…
chris-ashe Apr 17, 2026
9ea5c98
Add CroCo cable geometry data class and summary box for plotting
chris-ashe Apr 20, 2026
3029043
Add HTS tape geometry plotting function and update CroCo cable plot p…
chris-ashe Apr 20, 2026
bd6108f
Refactor CroCo strand calculations to use N_CROCO_STRANDS_TURN consta…
chris-ashe May 13, 2026
b8b04e3
Refactor CroCo cable geometry calculations to return CroCoCableGeomet…
chris-ashe May 13, 2026
d44630f
Refactor CROCOSuperconductingTFCoil to utilize calculate_croco_cable_…
chris-ashe May 13, 2026
75bb5de
Refactor variable names for TF coil components
chris-ashe May 13, 2026
757b94a
Update tests
chris-ashe May 13, 2026
40e1c0f
Rename croco superconductor
chris-ashe May 13, 2026
302bd89
Pass out function terms
chris-ashe May 13, 2026
2329fb5
Add CroCoCableSpaceGeometry class and refactor cable space calculatio…
chris-ashe May 14, 2026
c109367
Add TFSuperconductorLimits dataclass and refactor superconductor prop…
chris-ashe May 14, 2026
6e5c6cc
Refactor CroCo cable geometry calculations and remove deprecated croc…
chris-ashe May 14, 2026
98a3045
Refactor jcrit_rebco function to return additional critical propertie…
chris-ashe May 14, 2026
e0bb1dc
Refactor CroCo copper bar area variable and update related calculatio…
chris-ashe May 14, 2026
4f1adae
Refactor CroCo strand critical current variable and update related ca…
chris-ashe May 14, 2026
5643cb4
Refactor CroCo copper area variables and update related calculations …
chris-ashe May 14, 2026
53e511a
Rename `conductor_hastelloy_area` to `a_tf_turn_croco_hastelloy`
chris-ashe May 14, 2026
382c106
Refactor superconductor classes to add type hints and clean up unused…
chris-ashe May 14, 2026
6728569
Update tests
chris-ashe May 14, 2026
bcd9094
Refactor output methods in TFCoil classes to use output_general_tf_in…
chris-ashe May 15, 2026
5dc8be7
Move `e_tf_magnetic_stored_total` variable from superconducting to n…
chris-ashe May 15, 2026
9762188
Rename `oacdcp` to `j_tf_coil_full_area` across multiple files for cl…
chris-ashe May 15, 2026
cea94bb
Update TF coil variable descriptions for clarity and consistency
chris-ashe May 15, 2026
2f82047
Refactor TFCoil output methods to use instance outfile and add genera…
chris-ashe May 15, 2026
e97c901
Post rebase changes
chris-ashe May 15, 2026
54fe946
Enhance output methods for resistive and superconducting TF coils, ad…
chris-ashe May 18, 2026
d78b113
Enhance SuperconductingTFTurnType enum to include full names and impr…
chris-ashe May 18, 2026
01bed8c
Refactor radial build output methods for resistive and superconductin…
chris-ashe May 18, 2026
d4f2824
Add detailed resistive loss parameters output for ResistiveTFCoil class
chris-ashe May 18, 2026
8aca4cb
Enhance output structure and clarity for SuperconductingTFCoil class
chris-ashe May 18, 2026
f3b717a
Refactor output methods for CroCo superconducting TF coil, enhancing …
chris-ashe May 18, 2026
2e8843c
Add dx_tf_hts_tape_total to CroCoCableGeometry and update CROCOSuperc…
chris-ashe May 18, 2026
ded5567
Fix calculation of internal diameter in CroCo cable geometry by adjus…
chris-ashe May 18, 2026
6f28c04
Post rebase fixes
chris-ashe May 18, 2026
c27d93e
Update process/core/input.py
chris-ashe May 20, 2026
02b98dc
Update obsoelete vars
chris-ashe May 20, 2026
9a17bf7
Requested changes
chris-ashe May 20, 2026
c85050a
Refactor stress calculation in SuperconductingTFCoil class and stream…
chris-ashe May 20, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
(
j_scaling[i, j],
_,
_,
_,
) = superconductors.jcrit_rebco(temp_grid[i, j], b_grid[i, j])
# Convert from A/m² to kA/mm² (1 A/m² = 1e-6 A/mm²)
j_scaling[i, j] *= 1e-9
Expand Down
2 changes: 1 addition & 1 deletion documentation/source/eng-models/superconductors.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ The geometry of a single CroCo cable is calculated as follows:
1. The diameter of the circular internal tape region is given by the outer copper diameter minus its thickness:

$$
\overbrace{D_{\text{cable,internal}}}^{\texttt{dia_croco_strand_tape_region}} = \overbrace{D_{\text{cable}}}^{\texttt{dia_croco_strand}} - \overbrace{dx_{\text{cable,copper}}}^{\texttt{dx_croco_strand_copper}}
\overbrace{D_{\text{cable,internal}}}^{\texttt{dia_croco_strand_tape_region}} = \overbrace{D_{\text{cable}}}^{\texttt{dia_croco_strand}} - 2 \times \overbrace{dx_{\text{cable,copper}}}^{\texttt{dx_croco_strand_copper}}
$$

2. The total thickness of the HTS tape is found:
Expand Down
25 changes: 24 additions & 1 deletion documentation/source/eng-models/tf-coil-superconducting.md
Original file line number Diff line number Diff line change
Expand Up @@ -652,6 +652,29 @@ WIP

WIP

### Superconductor properties | `supercon_croco()`
### Cable space dimensions | `tf_turn_croco_cable_space_properties()`

This function calculates the dimensions of the circular cable space in the CroCo turn and that of the cables required to properly pack into the cable space.

The required diameter of a single cable element in the turn is given by:

$$
\overbrace{D_{\text{CroCo cable}}}^{\texttt{dia_tf_turn_croco_cable}} = \frac{dx_{\text{turn,jacket}}}{3} -\left(\overbrace{dx_{\text{steel}}}^{\texttt{dx_tf_turn_steel}} \times \frac{2}{3}\right)
$$

The full area of the circular cable space is:

$$
\overbrace{A_{\text{cable space, full}}}^{\texttt{a_tf_turn_cable_space_no_void}} = \frac{9\pi}{4} - D_{\text{CroCo cable}}^2
$$

The effective cable space is just the total cable space minus the central full copper cable in the middle.

$$
\overbrace{A_{\text{cable space, eff}}}^{\texttt{a_tf_turn_cable_space_effective}} = A_{\text{cable space, full}} - \left(\frac{\pi}{4} \times D_{\text{CroCo cable}}^2\right)
$$


### Superconductor properties | `tf_croco_superconductor_properties()`

### Quench voltage | `croco_voltage()`
2 changes: 1 addition & 1 deletion process/core/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ def check_process(inputs, data): # noqa: ARG001
data_structure.impurity_radiation_module.f_nd_impurity_electrons[imp]
)

# Stop the run if oacdcp is used as an optimisation variable
# Stop the run if j_tf_coil_full_area is used as an optimisation variable
# As the current density is now calculated from b_plasma_toroidal_on_axis without constraint 10

if (data_structure.numerics.ixc[: data_structure.numerics.nvar] == 12).any():
Expand Down
18 changes: 9 additions & 9 deletions process/core/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ def __post_init__(self):
"copper_rrr": InputVariable(
data_structure.rebco_variables, float, range=(1.0, 10000.0)
),
"dx_hts_tape_copper": InputVariable(
"dx_tf_hts_tape_copper": InputVariable(
data_structure.rebco_variables, float, range=(0.0, 0.001)
),
"copperaoh_m2": InputVariable(
Expand Down Expand Up @@ -314,7 +314,7 @@ def __post_init__(self):
"crane_arm_h": InputVariable("buildings", float, range=(1.0, 100.0)),
"crane_clrnc_h": InputVariable("buildings", float, range=(0.0, 10.0)),
"crane_clrnc_v": InputVariable("buildings", float, range=(0.0, 10.0)),
"dx_croco_strand_copper": InputVariable(
"dx_tf_croco_strand_copper": InputVariable(
data_structure.rebco_variables, float, range=(0.001, 0.1)
),
"cryomag_h": InputVariable("buildings", float, range=(1.0, 100.0)),
Expand Down Expand Up @@ -586,7 +586,7 @@ def __post_init__(self):
"gas_buildings_w": InputVariable("buildings", float, range=(10.0, 1000.0)),
"ground_clrnc": InputVariable("buildings", float, range=(0.0, 10.0)),
"n_ecrh_harmonic": InputVariable("current_drive", float, range=(1.0, 10.0)),
"dx_hts_tape_hastelloy": InputVariable(
"dx_tf_hts_tape_hastelloy": InputVariable(
data_structure.rebco_variables, float, range=(1e-08, 0.001)
),
"hccl": InputVariable("buildings", float, range=(0.0, 10.0)),
Expand Down Expand Up @@ -693,7 +693,7 @@ def __post_init__(self):
data_structure.physics_variables, float, range=(0.0, 1e21)
),
"nflutfmax": InputVariable("constraints", float, range=(0.0, 1e24)),
"oacdcp": InputVariable(
"j_tf_coil_full_area": InputVariable(
data_structure.tfcoil_variables, float, range=(10000.0, 1000000000.0)
),
"f_a_cs_turn_steel": InputVariable("pf_coil", float, range=(0.001, 0.999)),
Expand Down Expand Up @@ -793,7 +793,7 @@ def __post_init__(self):
"reactor_hall_w": InputVariable("buildings", float, range=(10.0, 1000.0)),
"reactor_roof_thk": InputVariable("buildings", float, range=(0.25, 25.0)),
"reactor_wall_thk": InputVariable("buildings", float, range=(0.25, 25.0)),
"dx_hts_tape_rebco": InputVariable(
"dx_tf_hts_tape_rebco": InputVariable(
data_structure.rebco_variables,
float,
range=(1e-08, 0.0001),
Expand Down Expand Up @@ -918,10 +918,10 @@ def __post_init__(self):
"t_turn_tf_max": InputVariable(
data_structure.tfcoil_variables, float, range=(0.0, 1.0)
),
"dx_hts_tape_total": InputVariable(
"dx_tf_hts_tape_total": InputVariable(
data_structure.rebco_variables, float, range=(0.0, 0.1)
),
"dr_hts_tape": InputVariable(
"dr_tf_hts_tape": InputVariable(
data_structure.rebco_variables, float, range=(0.0, 0.1)
),
"tauee_in": InputVariable(
Expand Down Expand Up @@ -1144,8 +1144,8 @@ def __post_init__(self):
"ccls_ma": InputVariable("pf_coil", float, array=True),
"cfind": InputVariable("costs", float, array=True),
"i_blkt_coolant_type": InputVariable("fwbs", int, choices=[1, 2]),
"coppera_m2_max": InputVariable(
data_structure.rebco_variables, float, range=(1.0e6, 1.0e10)
"tf_coppera_m2_max": InputVariable(
data_structure.superconducting_tf_coil_variables, float, range=(1.0e6, 1.0e10)
),
"cost_model": InputVariable("costs", int, choices=[0, 1, 2]),
"i_vac_pump_dwell": InputVariable("vacuum", int, choices=[0, 1, 2]),
Expand Down
20 changes: 14 additions & 6 deletions process/core/io/obsolete_vars.py
Original file line number Diff line number Diff line change
Expand Up @@ -420,12 +420,12 @@
"t_structural_vertical": "dz_cs_turn_conduit",
"t_cable_tf": "dx_tf_turn_cable_space_general",
"t_turn_tf": "dx_tf_turn_general",
"copper_thick": "dx_hts_tape_copper",
"croco_thick": "dx_croco_strand_copper",
"hastelloy_thickness": "dx_hts_tape_hastelloy",
"rebco_thickness": "dx_hts_tape_rebco",
"tape_thickness": "dx_hts_tape_total",
"tape_width": "dr_hts_tape",
"copper_thick": "dx_tf_hts_tape_copper",
Comment thread
chris-ashe marked this conversation as resolved.
"croco_thick": "dx_tf_croco_strand_copper",
"hastelloy_thickness": "dx_tf_hts_tape_hastelloy",
"rebco_thickness": "dx_tf_hts_tape_rebco",
"tape_thickness": "dx_tf_hts_tape_total",
"tape_width": "dr_tf_hts_tape",
"beta": "beta_total_vol_avg",
"beta_max": "beta_vol_avg_max",
"beta_min": "beta_vol_avg_min",
Expand All @@ -448,6 +448,14 @@
"vcool": "vel_cp_coolant_midplane",
"rcool": "radius_cp_coolant_channel",
"fl_h_threshold": None,
"dx_hts_tape_copper": "dx_tf_hts_tape_copper",
"dx_croco_strand_copper": "dx_tf_croco_strand_copper",
"dx_hts_tape_hastelloy": "dx_tf_hts_tape_hastelloy",
"dx_hts_tape_rebco": "dx_tf_hts_tape_rebco",
"oacdcp": "j_tf_coil_full_area",
"dx_hts_tape_total": "dx_tf_hts_tape_total",
"dr_hts_tape": "dr_tf_hts_tape",
"coppera_m2_max": "tf_coppera_m2_max",
}

OBS_VARS_HELP = {
Expand Down
2 changes: 1 addition & 1 deletion process/core/io/plot/scans.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def plot_scan(
2: "pflux_div_heat_load_max_mw",
3: "p_plant_electric_net_mw",
4: "hfact",
5: "oacdcp",
5: "j_tf_coil_full_area",
6: "pflux_fw_neutron_max_mw",
7: "beamfus0",
8: "Obsolete", # OBSOLETE
Expand Down
Loading
Loading