From bf2ede32777e3188c4f875058d2da9f3d8b30dc6 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 30 Mar 2026 14:46:13 +0100 Subject: [PATCH 1/7] Add enumerations for superconductor types and models --- process/models/superconductors.py | 64 +++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/process/models/superconductors.py b/process/models/superconductors.py index c6f96b44da..533a21a666 100644 --- a/process/models/superconductors.py +++ b/process/models/superconductors.py @@ -1,4 +1,6 @@ import logging +from enum import IntEnum +from types import DynamicClassAttribute import numpy as np from scipy import optimize @@ -9,6 +11,68 @@ logger = logging.getLogger(__name__) +class SuperconductorType(IntEnum): + """Enumeration of superconductor types.""" + + LOW_TEMPERATURE = (1, "LTS") + HIGH_TEMPERATURE = (2, "HTS") + + def __new__(cls, value, abbreviation): + obj = int.__new__(cls, value) + obj._value_ = value + obj._abbreviation_ = abbreviation + return obj + + @DynamicClassAttribute + def abbreviation(self): + return self._abbreviation_ + + +class SuperconductorModel(IntEnum): + """Enumeration of superconductor models.""" + + ITER_NB3SN = ( + 1, + SuperconductorType.LOW_TEMPERATURE, + "ITER Nb3Sn critical surface model", + ) + BI2212 = (2, SuperconductorType.HIGH_TEMPERATURE, "Bi-2212") + OLD_LUBELL_NBTI = (3, SuperconductorType.LOW_TEMPERATURE, "Old Lubell NbTi") + USER_DEFINED_NB3SN = ( + 4, + SuperconductorType.LOW_TEMPERATURE, + "User-defined ITER Nb₃Sn", + ) + WST_NB3SN = (5, SuperconductorType.LOW_TEMPERATURE, "Western Superconducting Nb₃Sn") + CROCO_REBCO = (6, SuperconductorType.HIGH_TEMPERATURE, "CROCO REBCO") + DURHAM_NBTI = (7, SuperconductorType.LOW_TEMPERATURE, "Durham Ginzburg-Landau NbTi") + DURHAM_REBCO = ( + 8, + SuperconductorType.HIGH_TEMPERATURE, + "Durham Ginzburg-Landau REBCO", + ) + HAZELTON_ZHAI_REBCO = (9, SuperconductorType.HIGH_TEMPERATURE, "Hazelton-Zhai REBCO") + + def __new__(cls, value, method, full_name): + obj = int.__new__(cls, value) + obj._value_ = value + obj._method_ = method + obj._full_name_ = full_name + return obj + + @DynamicClassAttribute + def method(self): + return self._method_ + + @DynamicClassAttribute + def abbreviation(self): + return self.method.abbreviation + + @DynamicClassAttribute + def full_name(self): + return self._full_name_ + + def jcrit_rebco(temp_conductor: float, b_conductor: float) -> tuple[float, bool]: """Calculate the critical current density for a "REBCO" 2nd generation HTS superconductor. From c7a6ac2f53103f5b7ebcffdee31936a88084a76a Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 30 Mar 2026 14:58:46 +0100 Subject: [PATCH 2/7] Add enumeration for superconductor materials and update models to use new enum --- process/models/superconductors.py | 60 ++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/process/models/superconductors.py b/process/models/superconductors.py index 533a21a666..b4fdff3823 100644 --- a/process/models/superconductors.py +++ b/process/models/superconductors.py @@ -28,45 +28,73 @@ def abbreviation(self): return self._abbreviation_ +class SuperconductorMaterial(IntEnum): + """Enumeration of superconductor materials.""" + + NB3SN = (1, SuperconductorType.LOW_TEMPERATURE, "Nb₃Sn") + NBTI = (2, SuperconductorType.LOW_TEMPERATURE, "NbTi") + BI2212 = (3, SuperconductorType.HIGH_TEMPERATURE, "Bi-2212") + REBCO = (4, SuperconductorType.HIGH_TEMPERATURE, "REBCO") + + def __new__(cls, value, sc_type, material_name): + obj = int.__new__(cls, value) + obj._value_ = value + obj._sc_type_ = sc_type + obj._material_name_ = material_name + return obj + + @DynamicClassAttribute + def sc_type(self): + return self._sc_type_.abbreviation + + @DynamicClassAttribute + def material_name(self): + return self._material_name_ + + class SuperconductorModel(IntEnum): """Enumeration of superconductor models.""" ITER_NB3SN = ( 1, - SuperconductorType.LOW_TEMPERATURE, - "ITER Nb3Sn critical surface model", + SuperconductorMaterial.NB3SN, + "ITER Nb₃Sn critical surface model", ) - BI2212 = (2, SuperconductorType.HIGH_TEMPERATURE, "Bi-2212") - OLD_LUBELL_NBTI = (3, SuperconductorType.LOW_TEMPERATURE, "Old Lubell NbTi") + BI2212 = (2, SuperconductorMaterial.BI2212, "Bi-2212") + OLD_LUBELL_NBTI = (3, SuperconductorMaterial.NBTI, "Old Lubell NbTi") USER_DEFINED_NB3SN = ( 4, - SuperconductorType.LOW_TEMPERATURE, + SuperconductorMaterial.NB3SN, "User-defined ITER Nb₃Sn", ) - WST_NB3SN = (5, SuperconductorType.LOW_TEMPERATURE, "Western Superconducting Nb₃Sn") - CROCO_REBCO = (6, SuperconductorType.HIGH_TEMPERATURE, "CROCO REBCO") - DURHAM_NBTI = (7, SuperconductorType.LOW_TEMPERATURE, "Durham Ginzburg-Landau NbTi") + WST_NB3SN = (5, SuperconductorMaterial.NB3SN, "Western Superconducting Nb₃Sn") + CROCO_REBCO = (6, SuperconductorMaterial.REBCO, "CROCO REBCO") + DURHAM_NBTI = (7, SuperconductorMaterial.NBTI, "Durham Ginzburg-Landau NbTi") DURHAM_REBCO = ( 8, - SuperconductorType.HIGH_TEMPERATURE, + SuperconductorMaterial.REBCO, "Durham Ginzburg-Landau REBCO", ) - HAZELTON_ZHAI_REBCO = (9, SuperconductorType.HIGH_TEMPERATURE, "Hazelton-Zhai REBCO") + HAZELTON_ZHAI_REBCO = (9, SuperconductorMaterial.REBCO, "Hazelton-Zhai REBCO") - def __new__(cls, value, method, full_name): + def __new__(cls, value, material, full_name): obj = int.__new__(cls, value) obj._value_ = value - obj._method_ = method + obj._material_ = material obj._full_name_ = full_name return obj @DynamicClassAttribute - def method(self): - return self._method_ + def material(self): + return self._material_ @DynamicClassAttribute - def abbreviation(self): - return self.method.abbreviation + def material_name(self): + return self._material_.material_name + + @DynamicClassAttribute + def sc_type(self): + return self._material_.sc_type @DynamicClassAttribute def full_name(self): From ae6381c2d166a5c98ecdc042b8ecd389df355d96 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 30 Mar 2026 15:14:29 +0100 Subject: [PATCH 3/7] Refactor superconductor model and material classes to include descriptive methods --- process/core/init.py | 34 +++++++++++++++++++++++-------- process/models/superconductors.py | 7 +++++++ 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/process/core/init.py b/process/core/init.py index 78e1bc47b9..a4dac5ce35 100644 --- a/process/core/init.py +++ b/process/core/init.py @@ -60,6 +60,11 @@ from process.data_structure.times_variables import init_times_variables from process.data_structure.vacuum_variables import init_vacuum_variables from process.models.stellarator.initialization import st_init +from process.models.superconductors import ( + SuperconductorMaterial, + SuperconductorModel, + SuperconductorType, +) from process.models.tfcoil.base import TFCoilShapeModel @@ -955,7 +960,7 @@ def check_process(inputs): # noqa: ARG001 # Integer turns option not yet available for REBCO taped turns if ( - data_structure.tfcoil_variables.i_tf_sc_mat == 6 + data_structure.tfcoil_variables.i_tf_sc_mat == SuperconductorModel.CROCO_REBCO and data_structure.tfcoil_variables.i_tf_turns_integer == 1 ): raise ProcessValidationError( @@ -995,16 +1000,28 @@ def check_process(inputs): # noqa: ARG001 data_structure.tfcoil_variables.eyoung_cond_trans = 0 elif data_structure.tfcoil_variables.i_tf_cond_eyoung_axial == 2: # Select sensible defaults from the literature - if data_structure.tfcoil_variables.i_tf_sc_mat in [1, 4, 5]: + if ( + SuperconductorModel(data_structure.tfcoil_variables.i_tf_sc_mat).material + == SuperconductorMaterial.NB3SN + ): # Nb3Sn: Nyilas, A et. al, Superconductor Science and Technology 16, no. 9 (2003): 1036-42. https://doi.org/10.1088/0953-2048/16/9/313. data_structure.tfcoil_variables.eyoung_cond_axial = 32e9 - elif data_structure.tfcoil_variables.i_tf_sc_mat == 2: + elif ( + SuperconductorModel(data_structure.tfcoil_variables.i_tf_sc_mat).material + == SuperconductorMaterial.BI2212 + ): # Bi-2212: Brown, M. et al, IOP Conference Series: Materials Science and Engineering 279 (2017): 012022. https://doi.org/10.1088/1757-899X/279/1/012022. data_structure.tfcoil_variables.eyoung_cond_axial = 80e9 - elif data_structure.tfcoil_variables.i_tf_sc_mat in [3, 7]: + elif ( + SuperconductorModel(data_structure.tfcoil_variables.i_tf_sc_mat).material + == SuperconductorMaterial.NBTI + ): # NbTi: Vedrine, P. et. al, IEEE Transactions on Applied Superconductivity 9, no. 2 (1999): 236-39. https://doi.org/10.1109/77.783280. data_structure.tfcoil_variables.eyoung_cond_axial = 6.8e9 - elif data_structure.tfcoil_variables.i_tf_sc_mat in [6, 8, 9]: + elif ( + SuperconductorModel(data_structure.tfcoil_variables.i_tf_sc_mat).material + == SuperconductorMaterial.REBCO + ): # REBCO: Fujishiro, H. et. al, Physica C: Superconductivity, 426-431 (2005): 699-704. https://doi.org/10.1016/j.physc.2005.01.045. data_structure.tfcoil_variables.eyoung_cond_axial = 145e9 @@ -1113,7 +1130,8 @@ def check_process(inputs): # noqa: ARG001 # Checking the SC temperature for LTS if ( - data_structure.tfcoil_variables.i_tf_sc_mat in [1, 3, 4, 5] + SuperconductorModel(data_structure.tfcoil_variables.i_tf_sc_mat).sc_type + == SuperconductorType.LOW_TEMPERATURE and data_structure.tfcoil_variables.tftmp > 10.0 ): raise ProcessValidationError( @@ -1213,8 +1231,8 @@ def check_process(inputs): # noqa: ARG001 ] == 36 ).any() and ( - data_structure.tfcoil_variables.i_tf_sc_mat == 8 - or data_structure.tfcoil_variables.i_tf_sc_mat == 9 + SuperconductorModel(data_structure.tfcoil_variables.i_tf_sc_mat).sc_type + == SuperconductorMaterial.REBCO ): raise ProcessValidationError( "turn off TF temperature margin constraint icc = 36 when using REBCO" diff --git a/process/models/superconductors.py b/process/models/superconductors.py index b4fdff3823..1749e4296f 100644 --- a/process/models/superconductors.py +++ b/process/models/superconductors.py @@ -25,6 +25,7 @@ def __new__(cls, value, abbreviation): @DynamicClassAttribute def abbreviation(self): + """Return the abbreviation for this superconductor type.""" return self._abbreviation_ @@ -45,10 +46,12 @@ def __new__(cls, value, sc_type, material_name): @DynamicClassAttribute def sc_type(self): + """Return the superconductor type (LTS or HTS) for this material.""" return self._sc_type_.abbreviation @DynamicClassAttribute def material_name(self): + """Return the name of the superconductor material.""" return self._material_name_ @@ -86,18 +89,22 @@ def __new__(cls, value, material, full_name): @DynamicClassAttribute def material(self): + """Return the superconductor material associated with this model.""" return self._material_ @DynamicClassAttribute def material_name(self): + """Return the name of the superconductor material associated with this model.""" return self._material_.material_name @DynamicClassAttribute def sc_type(self): + """Return the superconductor type (LTS or HTS) associated with this model.""" return self._material_.sc_type @DynamicClassAttribute def full_name(self): + """Return the full name of this superconductor model.""" return self._full_name_ From 25f303bb5ab473955be6b9f895233cb7ffa567b9 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 30 Mar 2026 15:23:14 +0100 Subject: [PATCH 4/7] Refactor TFCoil to use SuperconductorModel for material comments --- process/models/tfcoil/base.py | 38 +++++------------------------------ 1 file changed, 5 insertions(+), 33 deletions(-) diff --git a/process/models/tfcoil/base.py b/process/models/tfcoil/base.py index 258f243d47..09dca08bbc 100644 --- a/process/models/tfcoil/base.py +++ b/process/models/tfcoil/base.py @@ -23,6 +23,7 @@ tfcoil_variables, ) from process.data_structure import build_variables as bv +from process.models.superconductors import SuperconductorModel if TYPE_CHECKING: from process.models.build import Build @@ -571,39 +572,10 @@ def outtf(self): tfcoil_variables.i_tf_sc_mat, ) - if tfcoil_variables.i_tf_sc_mat == 1: - po.ocmmnt(self.outfile, " -> ITER Nb3Sn critical surface model") - elif tfcoil_variables.i_tf_sc_mat == 2: - po.ocmmnt(self.outfile, " -> Bi-2212 high temperature superconductor") - elif tfcoil_variables.i_tf_sc_mat == 3: - po.ocmmnt(self.outfile, " -> NbTi") - elif tfcoil_variables.i_tf_sc_mat == 4: - po.ocmmnt( - self.outfile, - " -> ITER Nb3Sn critical surface model, user-defined parameters", - ) - elif tfcoil_variables.i_tf_sc_mat == 5: - po.ocmmnt(self.outfile, " -> WST Nb3Sn") - elif tfcoil_variables.i_tf_sc_mat == 6: - po.ocmmnt( - self.outfile, - " -> High temperature superconductor: REBCO HTS tape in CroCo strand", - ) - elif tfcoil_variables.i_tf_sc_mat == 7: - po.ocmmnt( - self.outfile, - " -> Durham Ginzburg-Landau critical surface model for Nb-Ti", - ) - elif tfcoil_variables.i_tf_sc_mat == 8: - po.ocmmnt( - self.outfile, - " -> Durham Ginzburg-Landau critical surface model for REBCO", - ) - elif tfcoil_variables.i_tf_sc_mat == 9: - po.ocmmnt( - self.outfile, - " -> Hazelton experimental data + Zhai conceptual model for REBCO", - ) + po.ocmmnt( + self.outfile, + f" -> {SuperconductorModel(tfcoil_variables.i_tf_sc_mat).full_name}", + ) # Joints strategy po.ovarin( From 0cf0b4a03cf43937ad6a7897ffd845012593297f Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 30 Mar 2026 15:30:34 +0100 Subject: [PATCH 5/7] Refactor SuperconductingTFCoil to utilize SuperconductorModel for material checks --- process/models/tfcoil/superconducting.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/process/models/tfcoil/superconducting.py b/process/models/tfcoil/superconducting.py index 9732174f13..168113b8b0 100644 --- a/process/models/tfcoil/superconducting.py +++ b/process/models/tfcoil/superconducting.py @@ -21,6 +21,7 @@ superconducting_tf_coil_variables, tfcoil_variables, ) +from process.models.superconductors import SuperconductorMaterial, SuperconductorModel from process.models.tfcoil.base import TFCoil logger = logging.getLogger(__name__) @@ -308,7 +309,10 @@ def run(self, output: bool): * tfcoil_variables.n_tf_coil_turns ) - if tfcoil_variables.i_tf_sc_mat == 6: + if ( + SuperconductorModel(tfcoil_variables.i_tf_sc_mat) + == SuperconductorModel.CROCO_REBCO + ): ( tfcoil_variables.j_tf_wp_critical, tfcoil_variables.temp_tf_superconductor_margin, @@ -368,7 +372,10 @@ def run(self, output: bool): # Do current density protection calculation # Only setup for Nb3Sn at present. - if tfcoil_variables.i_tf_sc_mat not in {1, 4, 5}: + if ( + SuperconductorModel(tfcoil_variables.i_tf_sc_mat).material + != SuperconductorMaterial.NB3SN + ): logger.warning( "Calculating current density protection limit for Nb3Sn TF coil (LTS windings only)" ) @@ -2080,7 +2087,10 @@ def sc_tf_internal_geom(self, i_tf_wp_geom, i_tf_case_geom, i_tf_turns_integer): # Calculate number of cables in turn if CICC conductor # --------------------------------------------------- - if tfcoil_variables.i_tf_sc_mat != 6: + if ( + SuperconductorModel(tfcoil_variables.i_tf_sc_mat) + != SuperconductorModel.CROCO_REBCO + ): superconducting_tf_coil_variables.n_tf_turn_superconducting_cables = self.calculate_cable_in_conduit_strand_count( a_cable_space=superconducting_tf_coil_variables.a_tf_turn_cable_space_effective, dia_superconductor_strand=superconducting_tf_coil_variables.dia_tf_turn_superconducting_cable, From 065ee10114e395bb92b5866707482f7bc1be3672 Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 30 Mar 2026 15:40:15 +0100 Subject: [PATCH 6/7] Refactor PFCoil to utilize SuperconductorModel for strain checks and comments --- process/models/pfcoil.py | 51 +++++++++------------------------------- 1 file changed, 11 insertions(+), 40 deletions(-) diff --git a/process/models/pfcoil.py b/process/models/pfcoil.py index eefcbd1df2..c2d71855f3 100644 --- a/process/models/pfcoil.py +++ b/process/models/pfcoil.py @@ -23,6 +23,7 @@ from process.data_structure import rebco_variables as rcv from process.data_structure import tfcoil_variables as tfv from process.data_structure import times_variables as tv +from process.models.superconductors import SuperconductorMaterial, SuperconductorModel from process.models.tfcoil.base import TFCoilShapeModel logger = logging.getLogger(__name__) @@ -2397,19 +2398,18 @@ def outpf(self): # REBCO fractures in strains above ~+/- 0.7% if ( - pfcoil_variables.i_cs_superconductor == 6 - or pfcoil_variables.i_cs_superconductor == 8 - or pfcoil_variables.i_cs_superconductor == 9 + SuperconductorModel(pfcoil_variables.i_pf_superconductor).material + == SuperconductorMaterial.REBCO ) and abs(tfv.str_cs_con_res) > 0.7e-2: logger.error( "Non physical strain used in CS. Use superconductor strain < +/- 0.7%" ) if ( - pfcoil_variables.i_pf_superconductor == 6 - or pfcoil_variables.i_pf_superconductor == 8 - or pfcoil_variables.i_pf_superconductor == 9 - ) and abs(tfv.str_pf_con_res) > 0.7e-2: + SuperconductorModel(pfcoil_variables.i_pf_superconductor).material + == SuperconductorMaterial.REBCO + and abs(tfv.str_pf_con_res) > 0.7e-2 + ): logger.error( "Non physical strain used in PF. Use superconductor strain < +/- 0.7%" ) @@ -2428,39 +2428,10 @@ def outpf(self): pfcoil_variables.i_pf_superconductor, ) - if pfcoil_variables.i_pf_superconductor == 1: - op.ocmmnt(self.outfile, " (ITER Nb3Sn critical surface model)") - elif pfcoil_variables.i_pf_superconductor == 2: - op.ocmmnt(self.outfile, " (Bi-2212 high temperature superconductor)") - elif pfcoil_variables.i_pf_superconductor == 3: - op.ocmmnt(self.outfile, " (NbTi)") - elif pfcoil_variables.i_pf_superconductor == 4: - op.ocmmnt( - self.outfile, - " (ITER Nb3Sn critical surface model, user-defined parameters)", - ) - elif pfcoil_variables.i_pf_superconductor == 5: - op.ocmmnt(self.outfile, " (WST Nb3Sn critical surface model)") - elif pfcoil_variables.i_pf_superconductor == 6: - op.ocmmnt( - self.outfile, - " (REBCO 2nd generation HTS superconductor in CrCo strand)", - ) - elif pfcoil_variables.i_pf_superconductor == 7: - op.ocmmnt( - self.outfile, - " (Durham Ginzburg-Landau critical surface model for Nb-Ti)", - ) - elif pfcoil_variables.i_pf_superconductor == 8: - op.ocmmnt( - self.outfile, - " (Durham Ginzburg-Landau critical surface model for REBCO)", - ) - elif pfcoil_variables.i_pf_superconductor == 9: - op.ocmmnt( - self.outfile, - " (Hazelton experimental data + Zhai conceptual model for REBCO)", - ) + op.ocmmnt( + self.outfile, + f" -> {SuperconductorModel(pfcoil_variables.i_pf_superconductor).full_name}", + ) op.ovarre( self.outfile, From 8e6ed774a943d56b6102b215b42a058e46b7fc8c Mon Sep 17 00:00:00 2001 From: mn3981 Date: Mon, 30 Mar 2026 15:59:13 +0100 Subject: [PATCH 7/7] Refactor superconductor references to utilize SuperconductorModel for improved clarity and maintainability --- process/core/io/plot_proc.py | 7 +++---- process/models/tfcoil/superconducting.py | 14 +------------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/process/core/io/plot_proc.py b/process/core/io/plot_proc.py index 79bc79024e..9165eb4840 100644 --- a/process/core/io/plot_proc.py +++ b/process/core/io/plot_proc.py @@ -31,7 +31,6 @@ import process.core.constants as constants import process.core.io.mfile as mf import process.data_structure.pfcoil_variables as pfcoil_variables -import process.models.tfcoil.superconducting as sctf from process.core.io.mfile import MFileErrorClass from process.core.solver.objectives import OBJECTIVE_NAMES from process.data_structure import impurity_radiation_module @@ -71,8 +70,8 @@ from process.models.physics.impurity_radiation import read_impurity_file from process.models.physics.l_h_transition import PlasmaConfinementTransitionModel from process.models.physics.plasma_current import PlasmaCurrent, PlasmaCurrentModel +from process.models.superconductors import SuperconductorModel from process.models.tfcoil.base import TFCoilShapeModel -from process.models.tfcoil.superconducting import SUPERCONDUCTING_TF_TYPES mpl.rcParams["figure.max_open_warning"] = 40 @@ -7448,7 +7447,7 @@ def _pack_strands_rectangular_with_obstacles( textstr_superconductor = ( f"$\\mathbf{{Superconductor:}}$\n \n" - f"Superconductor used: {sctf.SUPERCONDUCTING_TF_TYPES[mfile.get('i_tf_sc_mat', scan=scan)]}\n" + f"Superconductor used: {SuperconductorModel(mfile.get('i_tf_sc_mat', scan=scan)).full_name}\n" f"Critical field at zero \ntemperature and strain: {mfile.get('b_tf_superconductor_critical_zero_temp_strain', scan=scan):.4f} T\n" f"Critical temperature at \nzero field and strain: {mfile.get('temp_tf_superconductor_critical_zero_field_strain', scan=scan):.4f} K\n" f"Temperature at conductor: {mfile.get('tftmp', scan=scan):.4f} K\n" @@ -8077,7 +8076,7 @@ def plot_magnetics_info(axis: plt.Axes, mfile: mf.MFile, scan: int): i_tf_sc_mat = 0 if i_tf_sc_mat > 0: - tftype = SUPERCONDUCTING_TF_TYPES[int(mfile.get("i_tf_sc_mat", scan=scan))] + tftype = SuperconductorModel(int(mfile.get("i_tf_sc_mat", scan=scan))).full_name else: tftype = "Resistive Copper" diff --git a/process/models/tfcoil/superconducting.py b/process/models/tfcoil/superconducting.py index 168113b8b0..2b74963937 100644 --- a/process/models/tfcoil/superconducting.py +++ b/process/models/tfcoil/superconducting.py @@ -26,18 +26,6 @@ logger = logging.getLogger(__name__) -SUPERCONDUCTING_TF_TYPES = { - 1: "Nb3Sn ITER", - 2: "Bi-2212", - 3: "NbTi", - 4: "Nb3Sn user", - 5: "Nb3Sn WST", - 6: "REBCO Croco", - 7: "NbTi Ginzburg-Landau", - 8: "REBCO Ginzburg-Landau", - 9: "REBCO Hazelton-Zhai", -} - class SuperconductingTFCoil(TFCoil): def __init__(self): @@ -1413,7 +1401,7 @@ def output_tf_superconductor_info(self): po.ocmmnt( self.outfile, - f"Superconductor used: {SUPERCONDUCTING_TF_TYPES[tfcoil_variables.i_tf_sc_mat]}", + f"Superconductor used: {SuperconductorModel(tfcoil_variables.i_tf_sc_mat).full_name}", ) po.ovarre(