Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
d2a43bb
Add CROCOAveragedTurnGeometry class and update CROCOSuperconductingTF…
chris-ashe Apr 17, 2026
338c934
Remove unused i_tf_sc_mat parameter from CICCSuperconductingTFCoil an…
chris-ashe Apr 17, 2026
81d3f6d
Refactor CICCSuperconductingTFCoil to simplify cable calculations by …
chris-ashe Apr 17, 2026
f6427a8
Update main_plot to handle different superconducting turn types and i…
chris-ashe Apr 17, 2026
21ec915
Add output_croco_info method to CROCOSuperconductingTFCoil for detail…
chris-ashe Apr 17, 2026
6b8791d
Add plot_tf_croco_turn function for visualizing TF coil CICC turn str…
chris-ashe Apr 17, 2026
49ef682
Remove unsupported integer turn geometry handling for CroCo conductor…
chris-ashe Apr 17, 2026
80c0e41
Refactor CROCOSuperconductingTFCoil to streamline conductor area calc…
chris-ashe Apr 17, 2026
790d395
Post rebase summary file changes
chris-ashe Apr 17, 2026
0bddda5
Add effective cable space area calculation in CROCOSuperconductingTFCoil
chris-ashe Apr 17, 2026
e5fdfdd
Refactor CROCOSuperconductingTFCoil to update Croco cable diameter va…
chris-ashe Apr 17, 2026
2ea909a
Enhance CroCo cable geometry calculations by adding tape stack height…
chris-ashe Apr 17, 2026
bdb6b5e
Add CroCo cable geometry data class and summary box for plotting
chris-ashe Apr 20, 2026
7280580
Add HTS tape geometry plotting function and update CroCo cable plot p…
chris-ashe Apr 20, 2026
58c9df2
Refactor CroCo strand calculations to use N_CROCO_STRANDS_TURN consta…
chris-ashe May 13, 2026
9ae8ad5
Refactor CroCo cable geometry calculations to return CroCoCableGeomet…
chris-ashe May 13, 2026
cbd72b4
Refactor CROCOSuperconductingTFCoil to utilize calculate_croco_cable_…
chris-ashe May 13, 2026
d030d3d
Refactor variable names for TF coil components
chris-ashe May 13, 2026
075e2ba
Update tests
chris-ashe May 13, 2026
7efa6f0
Rename croco superconductor
chris-ashe May 13, 2026
b3b014e
Pass out function terms
chris-ashe May 13, 2026
168fb97
Add CroCoCableSpaceGeometry class and refactor cable space calculatio…
chris-ashe May 14, 2026
094efbb
Add TFSuperconductorLimits dataclass and refactor superconductor prop…
chris-ashe May 14, 2026
3a366f4
Refactor CroCo cable geometry calculations and remove deprecated croc…
chris-ashe May 14, 2026
ade8267
Refactor jcrit_rebco function to return additional critical propertie…
chris-ashe May 14, 2026
8b8a28a
Refactor CroCo copper bar area variable and update related calculatio…
chris-ashe May 14, 2026
cee0ed2
Refactor CroCo strand critical current variable and update related ca…
chris-ashe May 14, 2026
39963aa
Refactor CroCo copper area variables and update related calculations …
chris-ashe May 14, 2026
43dc015
Rename `conductor_hastelloy_area` to `a_tf_turn_croco_hastelloy`
chris-ashe May 14, 2026
1efbb69
Refactor superconductor classes to add type hints and clean up unused…
chris-ashe May 14, 2026
6cb4aa6
Update tests
chris-ashe May 14, 2026
041735f
Refactor output methods in TFCoil classes to use output_general_tf_in…
chris-ashe May 15, 2026
b1ad458
Move `e_tf_magnetic_stored_total` variable from superconducting to n…
chris-ashe May 15, 2026
52fc5e3
Rename `oacdcp` to `j_tf_coil_full_area` across multiple files for cl…
chris-ashe May 15, 2026
1ae5c16
Update TF coil variable descriptions for clarity and consistency
chris-ashe May 15, 2026
971a3b1
Refactor TFCoil output methods to use instance outfile and add genera…
chris-ashe May 15, 2026
0bdb4e7
Post rebase changes
chris-ashe May 15, 2026
583b86e
Enhance output methods for resistive and superconducting TF coils, ad…
chris-ashe May 18, 2026
890ac04
Enhance SuperconductingTFTurnType enum to include full names and impr…
chris-ashe May 18, 2026
5268272
Refactor radial build output methods for resistive and superconductin…
chris-ashe May 18, 2026
914ab29
Add detailed resistive loss parameters output for ResistiveTFCoil class
chris-ashe May 18, 2026
ec4cfd3
Enhance output structure and clarity for SuperconductingTFCoil class
chris-ashe May 18, 2026
bb4041f
Refactor output methods for CroCo superconducting TF coil, enhancing …
chris-ashe May 18, 2026
a950ad6
Add dx_tf_hts_tape_total to CroCoCableGeometry and update CROCOSuperc…
chris-ashe May 18, 2026
3696bed
Fix calculation of internal diameter in CroCo cable geometry by adjus…
chris-ashe May 18, 2026
9ec6f93
Post rebase fixes
chris-ashe May 18, 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 @@ -375,7 +375,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
16 changes: 8 additions & 8 deletions process/core/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,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 @@ -316,7 +316,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 @@ -598,7 +598,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 @@ -709,7 +709,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 @@ -809,7 +809,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 @@ -936,10 +936,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 @@ -1164,7 +1164,7 @@ 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(
"tf_coppera_m2_max": InputVariable(
data_structure.rebco_variables, float, range=(1.0e6, 1.0e10)
),
"cost_model": InputVariable("costs", int, choices=[0, 1, 2]),
Expand Down
12 changes: 6 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",
"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 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