Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
9689215
Add CROCOAveragedTurnGeometry class and update CROCOSuperconductingTF…
chris-ashe Apr 17, 2026
b00e475
Remove unused i_tf_sc_mat parameter from CICCSuperconductingTFCoil an…
chris-ashe Apr 17, 2026
42045f6
Refactor CICCSuperconductingTFCoil to simplify cable calculations by …
chris-ashe Apr 17, 2026
c220f4f
Update main_plot to handle different superconducting turn types and i…
chris-ashe Apr 17, 2026
2a9e3b0
Add output_croco_info method to CROCOSuperconductingTFCoil for detail…
chris-ashe Apr 17, 2026
9451817
Add plot_tf_croco_turn function for visualizing TF coil CICC turn str…
chris-ashe Apr 17, 2026
0c957e9
Remove unsupported integer turn geometry handling for CroCo conductor…
chris-ashe Apr 17, 2026
641d0e8
Refactor CROCOSuperconductingTFCoil to streamline conductor area calc…
chris-ashe Apr 17, 2026
5c4f325
Post rebase summary file changes
chris-ashe Apr 17, 2026
c8dcf71
Add effective cable space area calculation in CROCOSuperconductingTFCoil
chris-ashe Apr 17, 2026
cbdaf8c
Refactor CROCOSuperconductingTFCoil to update Croco cable diameter va…
chris-ashe Apr 17, 2026
b02aed9
Enhance CroCo cable geometry calculations by adding tape stack height…
chris-ashe Apr 17, 2026
c799163
Add CroCo cable geometry data class and summary box for plotting
chris-ashe Apr 20, 2026
e9a154b
Add HTS tape geometry plotting function and update CroCo cable plot p…
chris-ashe Apr 20, 2026
0004dfc
Refactor CroCo strand calculations to use N_CROCO_STRANDS_TURN consta…
chris-ashe May 13, 2026
b5f7754
Refactor CroCo cable geometry calculations to return CroCoCableGeomet…
chris-ashe May 13, 2026
30d4c7a
Refactor CROCOSuperconductingTFCoil to utilize calculate_croco_cable_…
chris-ashe May 13, 2026
34d0783
Refactor variable names for TF coil components
chris-ashe May 13, 2026
be7a6c8
Update tests
chris-ashe May 13, 2026
027aa18
Rename croco superconductor
chris-ashe May 13, 2026
43fda6c
Pass out function terms
chris-ashe May 13, 2026
593a759
Add CroCoCableSpaceGeometry class and refactor cable space calculatio…
chris-ashe May 14, 2026
9ed0673
Add TFSuperconductorLimits dataclass and refactor superconductor prop…
chris-ashe May 14, 2026
37f2d0e
Refactor CroCo cable geometry calculations and remove deprecated croc…
chris-ashe May 14, 2026
4087e66
Refactor jcrit_rebco function to return additional critical propertie…
chris-ashe May 14, 2026
bd4eaef
Refactor CroCo copper bar area variable and update related calculatio…
chris-ashe May 14, 2026
0440e2b
Refactor CroCo strand critical current variable and update related ca…
chris-ashe May 14, 2026
48c3019
Refactor CroCo copper area variables and update related calculations …
chris-ashe May 14, 2026
5590aad
Rename `conductor_hastelloy_area` to `a_tf_turn_croco_hastelloy`
chris-ashe May 14, 2026
915049d
Refactor superconductor classes to add type hints and clean up unused…
chris-ashe May 14, 2026
77bb095
Update tests
chris-ashe May 14, 2026
ac0129f
Refactor output methods in TFCoil classes to use output_general_tf_in…
chris-ashe May 15, 2026
0282963
Move `e_tf_magnetic_stored_total` variable from superconducting to n…
chris-ashe May 15, 2026
c004cdf
Rename `oacdcp` to `j_tf_coil_full_area` across multiple files for cl…
chris-ashe May 15, 2026
0c06129
Update TF coil variable descriptions for clarity and consistency
chris-ashe May 15, 2026
a74ba42
Refactor TFCoil output methods to use instance outfile and add genera…
chris-ashe May 15, 2026
6d384f8
Post rebase changes
chris-ashe May 15, 2026
1087377
Enhance output methods for resistive and superconducting TF coils, ad…
chris-ashe May 18, 2026
b56b932
Enhance SuperconductingTFTurnType enum to include full names and impr…
chris-ashe May 18, 2026
607322b
Refactor radial build output methods for resistive and superconductin…
chris-ashe May 18, 2026
a49c400
Add detailed resistive loss parameters output for ResistiveTFCoil class
chris-ashe May 18, 2026
f469850
Enhance output structure and clarity for SuperconductingTFCoil class
chris-ashe May 18, 2026
01e504c
Refactor output methods for CroCo superconducting TF coil, enhancing …
chris-ashe May 18, 2026
07fe58b
Add dx_tf_hts_tape_total to CroCoCableGeometry and update CROCOSuperc…
chris-ashe May 18, 2026
1b22ae4
Fix calculation of internal diameter in CroCo cable geometry by adjus…
chris-ashe May 18, 2026
ebe9e99
Post rebase fixes
chris-ashe May 18, 2026
02e8492
Update process/core/input.py
chris-ashe May 20, 2026
41ba685
Update obsoelete vars
chris-ashe May 20, 2026
3f1c312
Requested changes
chris-ashe May 20, 2026
436f46f
Refactor stress calculation in SuperconductingTFCoil class and stream…
chris-ashe May 20, 2026
06804f0
Post rebase changes
chris-ashe May 27, 2026
913930a
Fix rebco_variables attribute name for copper current density in quen…
chris-ashe May 27, 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 @@ -357,7 +357,7 @@ def check_process(inputs, data): # noqa: ARG001
data.impurity_radiation.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 @@ -251,7 +251,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 @@ -282,7 +282,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 @@ -540,7 +540,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 @@ -639,7 +639,7 @@ def __post_init__(self):
"nd_plasma_pedestal_electron": InputVariable("physics", float, range=(0.0, 1e21)),
"nd_plasma_separatrix_electron": InputVariable("physics", 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 @@ -733,7 +733,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 @@ -858,10 +858,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("physics", float, range=(0.0, 100.0)),
Expand Down Expand Up @@ -1072,8 +1072,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