fiqus 2026.1.0__py3-none-any.whl → 2026.1.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. fiqus/MainFiQuS.py +1 -8
  2. fiqus/data/DataConductor.py +4 -8
  3. fiqus/data/DataFiQuSMultipole.py +358 -167
  4. fiqus/data/DataModelCommon.py +30 -15
  5. fiqus/data/DataMultipole.py +33 -10
  6. fiqus/data/DataWindingsCCT.py +37 -37
  7. fiqus/data/RegionsModelFiQuS.py +1 -1
  8. fiqus/geom_generators/GeometryMultipole.py +751 -54
  9. fiqus/getdp_runners/RunGetdpMultipole.py +181 -31
  10. fiqus/mains/MainMultipole.py +109 -17
  11. fiqus/mesh_generators/MeshCCT.py +209 -209
  12. fiqus/mesh_generators/MeshMultipole.py +938 -263
  13. fiqus/parsers/ParserCOND.py +2 -1
  14. fiqus/parsers/ParserDAT.py +16 -16
  15. fiqus/parsers/ParserGetDPOnSection.py +212 -212
  16. fiqus/parsers/ParserGetDPTimeTable.py +134 -134
  17. fiqus/parsers/ParserMSH.py +53 -53
  18. fiqus/parsers/ParserRES.py +142 -142
  19. fiqus/plotters/PlotPythonCCT.py +133 -133
  20. fiqus/plotters/PlotPythonMultipole.py +18 -18
  21. fiqus/post_processors/PostProcessMultipole.py +16 -6
  22. fiqus/pre_processors/PreProcessCCT.py +175 -175
  23. fiqus/pro_assemblers/ProAssembler.py +3 -3
  24. fiqus/pro_material_functions/ironBHcurves.pro +246 -246
  25. fiqus/pro_templates/combined/CC_Module.pro +1213 -0
  26. fiqus/pro_templates/combined/ConductorAC_template.pro +1025 -0
  27. fiqus/pro_templates/combined/Multipole_template.pro +2738 -1338
  28. fiqus/pro_templates/combined/TSA_materials.pro +102 -2
  29. fiqus/pro_templates/combined/materials.pro +54 -3
  30. fiqus/utils/Utils.py +18 -25
  31. fiqus/utils/update_data_settings.py +1 -1
  32. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/METADATA +64 -68
  33. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/RECORD +42 -40
  34. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/WHEEL +1 -1
  35. tests/test_geometry_generators.py +29 -32
  36. tests/test_mesh_generators.py +35 -34
  37. tests/test_solvers.py +32 -31
  38. tests/utils/fiqus_test_classes.py +396 -147
  39. tests/utils/generate_reference_files_ConductorAC.py +57 -57
  40. tests/utils/helpers.py +76 -1
  41. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/LICENSE.txt +0 -0
  42. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,10 @@
1
1
  // Quench Heater Circuits:
2
- {% macro MATERIAL_QuenchHeater_SSteel_t_T(t_on="None", U_0="None", C="None", R_warm="None", w_SS="None", h_SS="None", l_SS="None", mode="None", time="$Time", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None") -%}
3
- TSA_CFUN_QHCircuit_t_T_rhs[<<time>>, <<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<t_on>>, <<U_0>>, <<C>>, <<R_warm>>, <<w_SS>>, <<h_SS>>, <<l_SS>>, <<mode>>, <<k>>, <<GaussianPoints>>}
2
+ {% macro MATERIAL_QuenchHeater_SSteel_t_T(t_on="None", U_0="None", C="None", R_warm="None", w_SS="None", h_SS="None", l_SS="None", mode="None", time="$Time", T_i="None", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None") -%}
3
+ TSA_CFUN_QHCircuitRLC_t_T_rhs[<<time>>, <<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<t_on>>, <<U_0>>, <<C>>, <<R_warm>>, <<w_SS>>, <<h_SS>>, <<l_SS>>,0.0, <<mode>>, <<k>>, <<GaussianPoints>>}
4
+ {%- endmacro %} // mode: 1 -> Power, 2 -> Current, 3 -> Resistance
5
+
6
+ {% macro MATERIAL_QuenchHeater_SSteel_t_T_k(t_on="None", U_0="None", C="None", R_warm="None", w_SS="None", h_SS="None", l_SS="None", mode="None", time="$Time", T_i="None", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None") -%}
7
+ TSA_CFUN_QHCircuitRLC_t_T_k_rhs[<<time>>, <<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>]{<<t_on>>, <<U_0>>, <<C>>, <<R_warm>>, <<w_SS>>, <<h_SS>>, <<l_SS>>,0.0, <<mode>>, <<GaussianPoints>>}
4
8
  {%- endmacro %} // mode: 1 -> Power, 2 -> Current, 3 -> Resistance
5
9
 
6
10
  // Thermal Conductivities Stiffness:
@@ -12,6 +16,14 @@ TSA_CFUN_kCu_T_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<BMagnitud
12
16
  {%- endif %}
13
17
  {%- endmacro %}
14
18
 
19
+ {% macro MATERIAL_ThermalConductivity_Copper_TSAStiffness_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
20
+ {%- if constantThickness %}
21
+ TSA_CFUN_kCu_T_k_l_constantThickness_stiffness[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<BMagnitude>>, <<RRR>>, <<GaussianPoints>>, <<thickness_TSA>>}
22
+ {%- else %}
23
+ TSA_CFUN_kCu_T_k_l_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<BMagnitude>>, <<RRR>>, <<GaussianPoints>>}
24
+ {%- endif %}
25
+ {%- endmacro %}
26
+
15
27
  {% macro MATERIAL_ThermalConductivity_Kapton_TSAStiffness_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
16
28
  {%- if constantThickness %}
17
29
  TSA_CFUN_kKapton_T_constantThickness_stiffness[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -20,6 +32,14 @@ TSA_CFUN_kKapton_T_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>,
20
32
  {%- endif %}
21
33
  {%- endmacro %}
22
34
 
35
+ {% macro MATERIAL_ThermalConductivity_Kapton_TSAStiffness_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
36
+ {%- if constantThickness %}
37
+ TSA_CFUN_kKapton_T_k_l_constantThickness_stiffness[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
38
+ {%- else %}
39
+ TSA_CFUN_kKapton_T_k_l_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
40
+ {%- endif %}
41
+ {%- endmacro %}
42
+
23
43
  {% macro MATERIAL_ThermalConductivity_Stycast_TSAStiffness_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
24
44
  {%- if constantThickness %}
25
45
  TSA_CFUN_kStycast_T_constantThickness_stiffness[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -36,6 +56,14 @@ TSA_CFUN_kG10_T_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l
36
56
  {%- endif %}
37
57
  {%- endmacro %}
38
58
 
59
+ {% macro MATERIAL_ThermalConductivity_G10_TSAStiffness_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
60
+ {%- if constantThickness %}
61
+ TSA_CFUN_kG10_T_k_l_constantThickness_stiffness[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
62
+ {%- else %}
63
+ TSA_CFUN_kG10_T_k_l_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
64
+ {%- endif %}
65
+ {%- endmacro %}
66
+
39
67
  {% macro MATERIAL_ThermalConductivity_SSteel_TSAStiffness_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
40
68
  {%- if constantThickness %}
41
69
  TSA_CFUN_kSteel_T_constantThickness_stiffness[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -44,6 +72,14 @@ TSA_CFUN_kSteel_T_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <
44
72
  {%- endif %}
45
73
  {%- endmacro %}
46
74
 
75
+ {% macro MATERIAL_ThermalConductivity_SSteel_TSAStiffness_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
76
+ {%- if constantThickness %}
77
+ TSA_CFUN_kSteel_T_k_l_constantThickness_stiffness[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
78
+ {%- else %}
79
+ TSA_CFUN_kSteel_T_k_l_stiffness[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
80
+ {%- endif %}
81
+ {%- endmacro %}
82
+
47
83
  {% macro MATERIAL_ThermalConductivity_Indium_TSAStiffness_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
48
84
  {%- if constantThickness %}
49
85
  TSA_CFUN_kIn_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -61,6 +97,14 @@ TSA_CFUN_kCu_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<BMagnitude>>,
61
97
  {%- endif %}
62
98
  {%- endmacro %}
63
99
 
100
+ /*{% macro MATERIAL_ThermalConductivity_Copper_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
101
+ {%- if constantThickness %}
102
+ TSA_CFUN_kCu_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<BMagnitude>>, <<RRR>>, <<GaussianPoints>>, <<thickness_TSA>>}
103
+ {%- else %}
104
+ TSA_CFUN_kCu_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<BMagnitude>>, <<RRR>>, <<GaussianPoints>>}
105
+ {%- endif %}
106
+ {%- endmacro %}*/
107
+
64
108
  {% macro MATERIAL_ThermalConductivity_Kapton_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
65
109
  {%- if constantThickness %}
66
110
  TSA_CFUN_kKapton_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -69,6 +113,14 @@ TSA_CFUN_kKapton_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l>>
69
113
  {%- endif %}
70
114
  {%- endmacro %}
71
115
 
116
+ {% macro MATERIAL_ThermalConductivity_Kapton_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
117
+ {%- if constantThickness %}
118
+ TSA_CFUN_kKapton_T_k_l_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
119
+ {%- else %}
120
+ TSA_CFUN_kKapton_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
121
+ {%- endif %}
122
+ {%- endmacro %}
123
+
72
124
  {% macro MATERIAL_ThermalConductivity_Stycast_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
73
125
  {%- if constantThickness %}
74
126
  TSA_CFUN_kStycast_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -85,6 +137,14 @@ TSA_CFUN_kG10_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l>>, <
85
137
  {%- endif %}
86
138
  {%- endmacro %}
87
139
 
140
+ {% macro MATERIAL_ThermalConductivity_G10_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
141
+ {%- if constantThickness %}
142
+ TSA_CFUN_kG10_T_k_l_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
143
+ {%- else %}
144
+ TSA_CFUN_kG10_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
145
+ {%- endif %}
146
+ {%- endmacro %}
147
+
88
148
  {% macro MATERIAL_ThermalConductivity_SSteel_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
89
149
  {%- if constantThickness %}
90
150
  TSA_CFUN_kSteel_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -93,6 +153,14 @@ TSA_CFUN_kSteel_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l>>,
93
153
  {%- endif %}
94
154
  {%- endmacro %}
95
155
 
156
+ {% macro MATERIAL_ThermalConductivity_SSteel_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
157
+ {%- if constantThickness %}
158
+ TSA_CFUN_kSteel_T_k_l_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
159
+ {%- else %}
160
+ TSA_CFUN_kSteel_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
161
+ {%- endif %}
162
+ {%- endmacro %}
163
+
96
164
  {% macro MATERIAL_ThermalConductivity_Indium_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
97
165
  {%- if constantThickness %}
98
166
  TSA_CFUN_kIn_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -110,6 +178,14 @@ TSA_CFUN_CvCu_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l>>, <
110
178
  {%- endif %}
111
179
  {%- endmacro %}
112
180
 
181
+ /*{% macro MATERIAL_SpecificHeatCapacity_Copper_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
182
+ {%- if constantThickness %}
183
+ TSA_CFUN_CvCu_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>,<<k>>, <<l>>]{ <<GaussianPoints>>, <<thickness_TSA>>}
184
+ {%- else %}
185
+ TSA_CFUN_CvCu_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>,<<k>>, <<l>>]{ <<GaussianPoints>>}
186
+ {%- endif %}
187
+ {%- endmacro %}*/
188
+
113
189
  {% macro MATERIAL_SpecificHeatCapacity_Kapton_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
114
190
  {%- if constantThickness %}
115
191
  TSA_CFUN_CvKapton_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -118,6 +194,14 @@ TSA_CFUN_CvKapton_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l>
118
194
  {%- endif %}
119
195
  {%- endmacro %}
120
196
 
197
+ {% macro MATERIAL_SpecificHeatCapacity_Kapton_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
198
+ {%- if constantThickness %}
199
+ TSA_CFUN_CvKapton_T_k_l_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
200
+ {%- else %}
201
+ TSA_CFUN_CvKapton_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
202
+ {%- endif %}
203
+ {%- endmacro %}
204
+
121
205
  {# no data in SMALI, constant value for now #}
122
206
  {% macro MATERIAL_SpecificHeatCapacity_Stycast_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
123
207
  {# from rough calculations from www.sciencedirect.com/science/article/pii/S0011227521000874 #}
@@ -136,6 +220,14 @@ TSA_CFUN_CvG10_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l>>,
136
220
  {%- endif %}
137
221
  {%- endmacro %}
138
222
 
223
+ {% macro MATERIAL_SpecificHeatCapacity_G10_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
224
+ {%- if constantThickness %}
225
+ TSA_CFUN_CvG10_T_k_l_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
226
+ {%- else %}
227
+ TSA_CFUN_CvG10_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
228
+ {%- endif %}
229
+ {%- endmacro %}
230
+
139
231
  {% macro MATERIAL_SpecificHeatCapacity_SSteel_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
140
232
  {%- if constantThickness %}
141
233
  TSA_CFUN_CvSteel_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -144,6 +236,14 @@ TSA_CFUN_CvSteel_T_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>]{<<k>>, <<l>>
144
236
  {%- endif %}
145
237
  {%- endmacro %}
146
238
 
239
+ {% macro MATERIAL_SpecificHeatCapacity_SSteel_TSAMass_T_k_l(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
240
+ {%- if constantThickness %}
241
+ TSA_CFUN_CvSteel_T_k_l_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>, <<k>>, <<l>>]{<<GaussianPoints>>, <<thickness_TSA>>}
242
+ {%- else %}
243
+ TSA_CFUN_CvSteel_T_k_l_mass[<<T_i>>, <<T_iPlusOne>>, <<thickness_TSA>>, <<k>>, <<l>>]{<<GaussianPoints>>}
244
+ {%- endif %}
245
+ {%- endmacro %}
246
+
147
247
  {% macro MATERIAL_SpecificHeatCapacity_Indium_TSAMass_T(RRR="5", RRRRefTemp="5", BMagnitude="5", T_i="", T_iPlusOne="", thickness_TSA="None", k="None", l="None", GaussianPoints="None", constantThickness=False) -%}
148
248
  {%- if constantThickness %}
149
249
  TSA_CFUN_CvIn_T_constantThickness_mass[<<T_i>>, <<T_iPlusOne>>]{<<k>>, <<l>>, <<GaussianPoints>>, <<thickness_TSA>>}
@@ -1,7 +1,35 @@
1
1
  // Quench Heater Circuits:
2
- {% macro MATERIAL_QuenchHeater_SSteel_t_T(t_on="None", U_0="None", C="None", R_warm="None", w_SS="None", h_SS="None", l_SS="None", mode="None", time="$Time", T="$1") -%}
3
- CFUN_QHCircuit_t_rhoSS[<<time>>, CFUN_rhoSS_T[<<T>>]]{<<t_on>>, <<U_0>>, <<C>>, <<R_warm>>, <<w_SS>>, <<h_SS>>, <<l_SS>>, <<mode>>}
4
- {%- endmacro %} // mode: 1 -> Power, 2 -> Current, 3 -> Resistance
2
+ {% macro MATERIAL_QuenchHeater_SSteel_t_T(t_on="None", U_0="None", C="None", R_warm="None", w_SS="None", h_SS="None", l_SS="None", mode="None", time="$Time", T="None") -%}
3
+ CFUN_QHCircuitRLC_t_rhoSS[<<time>>, CFUN_rhoSS_T[<<T>>]]{<<t_on>>, <<U_0>>, <<C>>, <<R_warm>>, <<w_SS>>, <<h_SS>>, <<l_SS>>,0.0, <<mode>>}
4
+ {%- endmacro %}
5
+ {% macro MATERIAL_QuenchProp_NbTi(J="1",T_bath="2",cv="3",B="4",I="5") -%}
6
+ CFUN_NZPV_T[<<J>>,CFUN_TcsNbTi_B_I[<<B>>,<<I>>],CFUN_TcNbTi[<<B>>,<<I>>],<<cv>>]{<<T_bath>>}
7
+ {%- endmacro %}
8
+
9
+ {% macro MATERIAL_QuenchProp_Nb3Sn(J="1",T_bath="2",cv="3",B="4",I="5",cond={},specificHeatCapacityMacroName="None") -%}
10
+ CFUN_NZPV_T[<<J>>,CFUN_TcsNbTi_B_I[<<B>>,<<I>>],CFUN_TcNbTi[<<B>>,<<I>>],
11
+ RuleOfMixtures[
12
+ <<specificHeatCapacityMacroName[cond.strand.material_stabilizer]()>>,
13
+ <<specificHeatCapacityMacroName[cond.strand.material_superconductor](C1=cond.Jc_fit.C1_CUDI1, C2=cond.Jc_fit.C2_CUDI1, current="I2TH_fct[]")>>,
14
+ <<specificHeatCapacityMacroName[cond.cable.material_inner_voids]()>>,
15
+ <<specificHeatCapacityMacroName[cond.cable.material_outer_voids]()>>
16
+ ]
17
+ {
18
+ f_stabilizer_<<name>>,
19
+ f_sc_<<name>>,
20
+ f_inner_voids_<<name>>,
21
+ f_outer_voids_<<name>>
22
+ };
23
+ ]{<<T_bath>>};
24
+ {%- endmacro %}
25
+
26
+ // Current sharing temperatures:
27
+ {% macro MATERIAL_CurrentShareTemp_NbTi(B="None",I="None") %}
28
+ // CFUN_TcsNbTi_B_I[<<B>>,<<I>>]
29
+ {% endmacro %}
30
+ {% macro MATERIAL_CurrentShareTemp_Nb3Sn() %}
31
+ // CFUN_Tcs[]
32
+ {% endmacro %}
5
33
 
6
34
  // Critical Currents:
7
35
  {% macro MATERIAL_CriticalCurrent_NiobiumTitanium_T_B_a(area="SurfaceArea[]", T="$1", BMagnitude="Norm[$2]") -%}
@@ -91,6 +119,7 @@ CFUN_kIn_T[<<T>>]
91
119
  CFUN_kSteel_T[<<T>>]
92
120
  {%- endmacro %}
93
121
 
122
+
94
123
  {% macro MATERIAL_ThermalConductivity_Kapton_T(RRR="None", RRRRefTemp="None", T="$1", BMagnitude="5") -%}
95
124
  CFUN_kKapton_T[<<T>>]
96
125
  {%- endmacro %}
@@ -103,6 +132,9 @@ CFUN_kG10_T[<<T>>]
103
132
  {% macro MATERIAL_SpecificHeatCapacity_NiobiumTitanium_T_B(C1="None", C2="None", current="None", T="$1", BMagnitude="Norm[$2]") -%}
104
133
  CFUN_CvNbTi_T_B[<<T>>, <<BMagnitude>>]{<<current>>, <<C1>>, <<C2>>}
105
134
  {%- endmacro %}
135
+ {% macro MATERIAL_SpecificHeatCapacity_NiobiumTitanium_T_B_I(C1="None", C2="None", current="None", T="$1", BMagnitude="Norm[$2]") -%}
136
+ CFUN_CvNbTi_T_B_I[<<T>>, <<BMagnitude>>,<<current>>]{<<C1>>, <<C2>>}
137
+ {%- endmacro %}
106
138
  {% macro MATERIAL_SpecificHeatCapacity_NiobiumTitanium_T(C1="None", C2="None", current="None", T="$1", BMagnitude="5") -%}
107
139
  CFUN_CvNbTi_T[<<T>>]{<<BMagnitude>>, <<current>>, <<C1>>, <<C2>>}
108
140
  {%- endmacro %}
@@ -148,4 +180,23 @@ CFUN_CvG10_T[<<T>>]
148
180
 
149
181
  {% macro MATERIAL_SpecificHeatCapacity_Helium_T(T="$1") -%}
150
182
  CFUN_CvHe_T[<<T>>]
183
+ {%- endmacro %}
184
+
185
+
186
+ // NEWLY ADDED MATERIALS
187
+ // Heat transfer coefficient
188
+ {% macro MATERIAL_HeatTransferCoefficient_Helium_T(T="$1", T_inf="$2") -%}
189
+ CFUN_hHe_T_THe[<<T>>, <<T_inf>>]
190
+ {%- endmacro %}
191
+ // Aluminum properties for collar
192
+ {% macro MATERIAL_SpecificHeatCapacity_Aluminum_T(T="$1") -%}
193
+ //CFUN_CvAl5083_T[<<T>>]
194
+ CFUN_CvAl_T[<<T>>]
195
+ {%- endmacro %}
196
+ {% macro MATERIAL_ThermalConductivity_Aluminum_T(T="$1", RRR="$2") -%}
197
+ //CFUN_kAl5083_T[<<T>>]
198
+ CFUN_kAl_T[<<T>>]{<<RRR>>}
199
+ {%- endmacro %}
200
+ {% macro MATERIAL_Resistivity_Aluminum_T(T="$1",RRR="$2", RRRRefTemp="None", BMagnitude="5") -%}
201
+ CFUN_rhoAl_T[<<T>>]{<<RRR>>}
151
202
  {%- endmacro %}
fiqus/utils/Utils.py CHANGED
@@ -13,13 +13,14 @@ import multiprocessing
13
13
 
14
14
  import pandas as pd
15
15
  import ruamel.yaml
16
- import gmsh
17
16
  import json
17
+ import gmsh
18
+ from pydantic import BaseModel
18
19
 
19
20
  from fiqus.data.DataSettings import DataSettings
20
21
  from fiqus.data.DataFiQuS import FDM
21
22
 
22
- logger = logging.getLogger(__name__)
23
+ logger = logging.getLogger('FiQuS')
23
24
 
24
25
 
25
26
  class LoggingFormatter(logging.Formatter):
@@ -104,7 +105,7 @@ class FilesAndFolders:
104
105
 
105
106
  @staticmethod
106
107
  def write_data_model_to_yaml(full_file_path, data_model, with_comments=True, by_alias=True):
107
- if data_model:
108
+ if isinstance(data_model, BaseModel):
108
109
  # Set up YAML instance settings:
109
110
  yamlInstance = ruamel.yaml.YAML()
110
111
 
@@ -116,7 +117,7 @@ class FilesAndFolders:
116
117
  path_object.resolve().parent.joinpath("dummy.yaml")
117
118
  )
118
119
  with open(dummy_yaml_file_to_create_ruamel_object, "w") as stream:
119
- yamlInstance.dump(data_model.dict(by_alias=by_alias), stream)
120
+ yamlInstance.dump(data_model.model_dump(by_alias=by_alias), stream)
120
121
 
121
122
  # Read the file:
122
123
  with open(dummy_yaml_file_to_create_ruamel_object, "r") as stream:
@@ -179,7 +180,7 @@ class FilesAndFolders:
179
180
  data_dict = ruamel_yaml_object
180
181
 
181
182
  else:
182
- data_dict = data_model.dict(by_alias=by_alias)
183
+ data_dict = data_model.model_dump(by_alias=by_alias)
183
184
 
184
185
  yamlInstance.indent(sequence=4, offset=2)
185
186
  with open(full_file_path, 'w') as yaml_file:
@@ -539,6 +540,8 @@ class GeometricFunctions:
539
540
  c, d, e = arc
540
541
  r = GeometricFunctions.points_distance(c, d)
541
542
  angle_d = GeometricFunctions.arc_angle_between_point_and_abscissa(d, c)
543
+ if angle_d == 0:
544
+ angle_d = 2 * np.pi # if the 'high-angle' angle is 0, set it to 2*pi to avoid issues with the arc
542
545
  angle_e = GeometricFunctions.arc_angle_between_point_and_abscissa(e, c)
543
546
  intersect = []
544
547
  if vertical:
@@ -594,7 +597,7 @@ class GmshUtils:
594
597
  :type verbosity_Gmsh: int
595
598
  """
596
599
  if not gmsh.is_initialized():
597
- gmsh.initialize(sys.argv)
600
+ gmsh.initialize(sys.argv, interruptible=False, readConfigFiles=False)
598
601
  gmsh.model.add(str(self.model_name))
599
602
  num_threads = multiprocessing.cpu_count()
600
603
  gmsh.option.setNumber('General.NumThreads', num_threads) # enable multithreading (this seems to be only for meshing)
@@ -711,7 +714,7 @@ class RoxieParsers:
711
714
 
712
715
  def initialize_logger(work_folder: str = None, time_stamp: str = None, verbose: bool = True, ):
713
716
  """
714
- THis is logger function to write FiQuS log files.
717
+ This is logger function to write FiQuS log files.
715
718
 
716
719
  :param work_folder: Folder where the log file is written to
717
720
  :type work_folder: str
@@ -723,12 +726,12 @@ def initialize_logger(work_folder: str = None, time_stamp: str = None, verbose:
723
726
  :rtype: object
724
727
  """
725
728
 
726
- logger = logging.getLogger()
729
+ logger = logging.getLogger('FiQuS')
727
730
 
728
- while logger.hasHandlers():
729
- handler = logger.handlers[0]
730
- logger.removeHandler(handler)
731
- handler.close()
731
+ for handler in logger.handlers:
732
+ if isinstance(handler, logging.FileHandler):
733
+ handler.close()
734
+ logger.removeHandler(handler)
732
735
 
733
736
  if verbose:
734
737
  logger.setLevel(logging.INFO)
@@ -786,6 +789,7 @@ def create_json_schema(data_model: FDM):
786
789
  with open(json_schema_file_path, "w", encoding="utf-8") as file:
787
790
  file.write(pretty_json_schema)
788
791
 
792
+
789
793
  def get_data_settings(GetDP_path=None, settings=None):
790
794
  user_name = getpass.getuser()
791
795
 
@@ -803,18 +807,7 @@ def get_data_settings(GetDP_path=None, settings=None):
803
807
  file.write(f'Could not find: {path_to_settings_file}' + '\n')
804
808
  raise ValueError(f'File: {path_to_settings_file} does not exist.')
805
809
 
806
- if platform.system() == 'Windows':
807
- if GetDP_path:
808
- settings.GetDP_path = GetDP_path
809
- elif platform.system() == 'Linux':
810
- if GetDP_path:
811
- settings.GetDP_path = GetDP_path
812
- else:
813
- settings.GetDP_path = 'getdp'
814
- elif platform.system() == 'Darwin':
815
- if GetDP_path:
816
- settings.GetDP_path = GetDP_path
817
- else:
818
- raise ValueError(f'Python claims that you are running on operating system: {platform.system()} and it is not supported by FiQuS!')
810
+ if GetDP_path:
811
+ settings.GetDP_path = GetDP_path
819
812
 
820
813
  return settings
@@ -15,7 +15,7 @@ def update_data_settings_getdp_path(file_path, env_variable):
15
15
  raise ValueError(f"Environment variable '{env_variable}' is not set.")
16
16
 
17
17
  # Update the GetDP_path with the expanded value
18
- config['GetDP_path'] = "C:/cerngetdp/getdp_" + env_value + ".exe"
18
+ config['GetDP_path'] = "C:/cerngetdp/cws/getdp_" + env_value + ".exe"
19
19
  # Save the updated YAML file, preserving formatting
20
20
  with open(file_path, 'w') as file:
21
21
  yaml.dump(config, file)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiqus
3
- Version: 2026.1.0
3
+ Version: 2026.1.2
4
4
  Summary: Source code for STEAM FiQuS tool
5
5
  Home-page: https://gitlab.cern.ch/steam/fiqus
6
6
  Author: STEAM Team
@@ -10,74 +10,70 @@ Classifier: Programming Language :: Python :: 3.11
10
10
  Requires-Python: >=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE.txt
13
- Requires-Dist: gmsh ==4.13.1
14
- Requires-Dist: h5py ==3.10.0
15
- Requires-Dist: Jinja2 ==3.1.3
16
- Requires-Dist: matplotlib ==3.8.3
17
- Requires-Dist: mplcursors ==0.5.3
18
- Requires-Dist: numpy ==1.26.4
19
- Requires-Dist: pandas ==2.2.1
20
- Requires-Dist: pydantic ==2.6.4
21
- Requires-Dist: ruamel.yaml ==0.18.6
22
- Requires-Dist: ruamel.yaml.clib ==0.2.8
23
- Requires-Dist: scipy ==1.14.1
24
- Requires-Dist: tqdm ==4.66.2
25
- Requires-Dist: typing-extensions ==4.10.0
13
+ Requires-Dist: gmsh==4.15.0
14
+ Requires-Dist: h5py<4,>=3.10
15
+ Requires-Dist: Jinja2<4,>=3.1
16
+ Requires-Dist: matplotlib<4,>=3.8
17
+ Requires-Dist: mplcursors<1,>=0.5
18
+ Requires-Dist: numpy<2,>=1.26
19
+ Requires-Dist: pandas<3,>=2.2
20
+ Requires-Dist: pydantic<3,>=2.6
21
+ Requires-Dist: ruamel.yaml<1,>=0.18
22
+ Requires-Dist: scipy<2,>=1.14
23
+ Requires-Dist: tqdm<5,>=4.66
26
24
  Provides-Extra: all
27
- Requires-Dist: gmsh ==4.13.1 ; extra == 'all'
28
- Requires-Dist: h5py ==3.10.0 ; extra == 'all'
29
- Requires-Dist: Jinja2 ==3.1.3 ; extra == 'all'
30
- Requires-Dist: matplotlib ==3.8.3 ; extra == 'all'
31
- Requires-Dist: mplcursors ==0.5.3 ; extra == 'all'
32
- Requires-Dist: numpy ==1.26.4 ; extra == 'all'
33
- Requires-Dist: pandas ==2.2.1 ; extra == 'all'
34
- Requires-Dist: pydantic ==2.6.4 ; extra == 'all'
35
- Requires-Dist: ruamel.yaml ==0.18.6 ; extra == 'all'
36
- Requires-Dist: ruamel.yaml.clib ==0.2.8 ; extra == 'all'
37
- Requires-Dist: scipy ==1.14.1 ; extra == 'all'
38
- Requires-Dist: tqdm ==4.66.2 ; extra == 'all'
39
- Requires-Dist: typing-extensions ==4.10.0 ; extra == 'all'
40
- Requires-Dist: griffe ==0.42.0 ; extra == 'all'
41
- Requires-Dist: markdown ==3.5.2 ; extra == 'all'
42
- Requires-Dist: markdown-include ==0.8.1 ; extra == 'all'
43
- Requires-Dist: mkdocs-git-revision-date-localized-plugin ==1.2.4 ; extra == 'all'
44
- Requires-Dist: mkdocs-include-markdown-plugin ==6.0.4 ; extra == 'all'
45
- Requires-Dist: mkdocs-material ==9.5.13 ; extra == 'all'
46
- Requires-Dist: mkdocstrings-python ==1.9.0 ; extra == 'all'
47
- Requires-Dist: mkdocs-autorefs ==1.3.1 ; extra == 'all'
48
- Requires-Dist: coverage ==7.4.4 ; extra == 'all'
49
- Requires-Dist: coverage-badge ==1.1.0 ; extra == 'all'
50
- Requires-Dist: flake8 ==7.0.0 ; extra == 'all'
51
- Requires-Dist: mypy ==1.9.0 ; extra == 'all'
52
- Requires-Dist: pylint ==3.1.0 ; extra == 'all'
53
- Requires-Dist: pytest ==8.1.1 ; extra == 'all'
54
- Requires-Dist: pytest-cov ==4.1.0 ; extra == 'all'
55
- Requires-Dist: pytest-subtests ==0.12.1 ; extra == 'all'
56
- Requires-Dist: setuptools ==69.2.0 ; extra == 'all'
57
- Requires-Dist: wheel ==0.45.1 ; extra == 'all'
58
- Requires-Dist: twine ==6.0.1 ; extra == 'all'
25
+ Requires-Dist: gmsh==4.15.0; extra == "all"
26
+ Requires-Dist: h5py<4,>=3.10; extra == "all"
27
+ Requires-Dist: Jinja2<4,>=3.1; extra == "all"
28
+ Requires-Dist: matplotlib<4,>=3.8; extra == "all"
29
+ Requires-Dist: mplcursors<1,>=0.5; extra == "all"
30
+ Requires-Dist: numpy<2,>=1.26; extra == "all"
31
+ Requires-Dist: pandas<3,>=2.2; extra == "all"
32
+ Requires-Dist: pydantic<3,>=2.6; extra == "all"
33
+ Requires-Dist: ruamel.yaml<1,>=0.18; extra == "all"
34
+ Requires-Dist: scipy<2,>=1.14; extra == "all"
35
+ Requires-Dist: tqdm<5,>=4.66; extra == "all"
36
+ Requires-Dist: griffe==0.42.0; extra == "all"
37
+ Requires-Dist: markdown==3.5.2; extra == "all"
38
+ Requires-Dist: markdown-include==0.8.1; extra == "all"
39
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin==1.2.4; extra == "all"
40
+ Requires-Dist: mkdocs-include-markdown-plugin==6.0.4; extra == "all"
41
+ Requires-Dist: mkdocs-material==9.5.13; extra == "all"
42
+ Requires-Dist: mkdocstrings-python==1.9.0; extra == "all"
43
+ Requires-Dist: mkdocs-autorefs==1.3.1; extra == "all"
44
+ Requires-Dist: coverage==7.4.4; extra == "all"
45
+ Requires-Dist: coverage-badge==1.1.0; extra == "all"
46
+ Requires-Dist: flake8==7.0.0; extra == "all"
47
+ Requires-Dist: mypy==1.9.0; extra == "all"
48
+ Requires-Dist: pylint==3.1.0; extra == "all"
49
+ Requires-Dist: pytest==8.1.1; extra == "all"
50
+ Requires-Dist: pytest-cov==4.1.0; extra == "all"
51
+ Requires-Dist: pytest-subtests==0.12.1; extra == "all"
52
+ Requires-Dist: setuptools==69.2.0; extra == "all"
53
+ Requires-Dist: wheel==0.45.1; extra == "all"
54
+ Requires-Dist: twine==6.0.1; extra == "all"
59
55
  Provides-Extra: build
60
- Requires-Dist: setuptools ==69.2.0 ; extra == 'build'
61
- Requires-Dist: wheel ==0.45.1 ; extra == 'build'
62
- Requires-Dist: twine ==6.0.1 ; extra == 'build'
56
+ Requires-Dist: setuptools==69.2.0; extra == "build"
57
+ Requires-Dist: wheel==0.45.1; extra == "build"
58
+ Requires-Dist: twine==6.0.1; extra == "build"
63
59
  Provides-Extra: docs
64
- Requires-Dist: griffe ==0.42.0 ; extra == 'docs'
65
- Requires-Dist: markdown ==3.5.2 ; extra == 'docs'
66
- Requires-Dist: markdown-include ==0.8.1 ; extra == 'docs'
67
- Requires-Dist: mkdocs-git-revision-date-localized-plugin ==1.2.4 ; extra == 'docs'
68
- Requires-Dist: mkdocs-include-markdown-plugin ==6.0.4 ; extra == 'docs'
69
- Requires-Dist: mkdocs-material ==9.5.13 ; extra == 'docs'
70
- Requires-Dist: mkdocstrings-python ==1.9.0 ; extra == 'docs'
71
- Requires-Dist: mkdocs-autorefs ==1.3.1 ; extra == 'docs'
60
+ Requires-Dist: griffe==0.42.0; extra == "docs"
61
+ Requires-Dist: markdown==3.5.2; extra == "docs"
62
+ Requires-Dist: markdown-include==0.8.1; extra == "docs"
63
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin==1.2.4; extra == "docs"
64
+ Requires-Dist: mkdocs-include-markdown-plugin==6.0.4; extra == "docs"
65
+ Requires-Dist: mkdocs-material==9.5.13; extra == "docs"
66
+ Requires-Dist: mkdocstrings-python==1.9.0; extra == "docs"
67
+ Requires-Dist: mkdocs-autorefs==1.3.1; extra == "docs"
72
68
  Provides-Extra: tests
73
- Requires-Dist: coverage ==7.4.4 ; extra == 'tests'
74
- Requires-Dist: coverage-badge ==1.1.0 ; extra == 'tests'
75
- Requires-Dist: flake8 ==7.0.0 ; extra == 'tests'
76
- Requires-Dist: mypy ==1.9.0 ; extra == 'tests'
77
- Requires-Dist: pylint ==3.1.0 ; extra == 'tests'
78
- Requires-Dist: pytest ==8.1.1 ; extra == 'tests'
79
- Requires-Dist: pytest-cov ==4.1.0 ; extra == 'tests'
80
- Requires-Dist: pytest-subtests ==0.12.1 ; extra == 'tests'
69
+ Requires-Dist: coverage==7.4.4; extra == "tests"
70
+ Requires-Dist: coverage-badge==1.1.0; extra == "tests"
71
+ Requires-Dist: flake8==7.0.0; extra == "tests"
72
+ Requires-Dist: mypy==1.9.0; extra == "tests"
73
+ Requires-Dist: pylint==3.1.0; extra == "tests"
74
+ Requires-Dist: pytest==8.1.1; extra == "tests"
75
+ Requires-Dist: pytest-cov==4.1.0; extra == "tests"
76
+ Requires-Dist: pytest-subtests==0.12.1; extra == "tests"
81
77
 
82
78
  ![FiQuS logo](https://gitlab.cern.ch/steam/fiqus/-/raw/master/docs/images/FiQuS_name_logo.svg)
83
79
 
@@ -96,7 +92,7 @@ Source code for STEAM **FiQuS** (**Fi**nite Element **Qu**ench **S**imulator).
96
92
 
97
93
  ## Using FiQuS
98
94
  - M. Wozniak et al, "Influence of Critical Current Distribution on Operation, Quench Detection and Protection of HTS Pancake Coils, in IEEE Transactions on Applied Superconductivity, [10.1109/TASC.2025.3532246](https://doi.org/10.1109/TASC.2025.3532246).
99
- - Laura AM D’Angelo et al, "Efficient Reduced Magnetic Vector Potential Formulation for the Magnetic Field Simulation of Accelerator Magnets", in IEEE Transactions on Magnetics, vol. 60, no. 3, pp. 1-8, Jan. 2024, Art no. 7000808, doi: [10.1109/TMAG.2024.3352113](https://ieeexplore.ieee.org/abstract/document/10387412).
95
+ - Laura AM DAngelo et al, "Efficient Reduced Magnetic Vector Potential Formulation for the Magnetic Field Simulation of Accelerator Magnets", in IEEE Transactions on Magnetics, vol. 60, no. 3, pp. 1-8, Jan. 2024, Art no. 7000808, doi: [10.1109/TMAG.2024.3352113](https://ieeexplore.ieee.org/abstract/document/10387412).
100
96
  - M. Wozniak et al, "Quench Co-Simulation of Canted Cos-Theta Magnets," in IEEE Transactions on Applied Superconductivity, vol. 34, no. 3, pp. 1-5, Dec. 2023, Art no. 4900105, doi: [10.1109/TASC.2023.3338142](https://ieeexplore.ieee.org/document/10337614).
101
97
  - M. Wozniak et al, "Fast Quench Propagation Conductor for Protecting Canted Cos-Theta Magnets," in IEEE Transactions on Applied Superconductivity, vol. 33, no. 5, pp. 1-5, Aug. 2023, Art no. 4701705, doi: [10.1109/TASC.2023.3247997](https://ieeexplore.ieee.org/document/10050158).
102
98
  - E. Schnaubelt et al, "Parallel-in-Time Integration of Transient Phenomena in No-Insulation Superconducting Coils Using Parareal", accepted for publication in the proceedings of the
@@ -104,7 +100,7 @@ Scientific Computing in Electrical Engineering (SCEE) 2024 conference, [arXiv:24
104
100
 
105
101
  ## Mathematical Formulations Forming the Basis of Some FiQuS Modules
106
102
  - E. Schnaubelt et al, "Magneto-Thermal Thin Shell Approximation for 3D Finite Element Analysis of No-Insulation Coils", in IEEE Transactions on Applied Superconductivity, vol. 34, no. 3, pp. 1-6, Dec. 2023, Art no. 4700406, doi: [10.1109/TASC.2023.3340648](https://ieeexplore.ieee.org/document/10349801).
107
- - E. Schnaubelt et al, "Electromagnetic Simulation of No-Insulation Coils Using H−φ Thin Shell Approximation", in IEEE Transactions on Applied Superconductivity, vol. 33, no. 5, pp. 1-6, Mar. 2023, Art no. 4900906, doi: [10.1109/TASC.2023.3258905](https://ieeexplore.ieee.org/document/10076826).
103
+ - E. Schnaubelt et al, "Electromagnetic Simulation of No-Insulation Coils Using H−φ Thin Shell Approximation", in IEEE Transactions on Applied Superconductivity, vol. 33, no. 5, pp. 1-6, Mar. 2023, Art no. 4900906, doi: [10.1109/TASC.2023.3258905](https://ieeexplore.ieee.org/document/10076826).
108
104
  - E. Schnaubelt et al, "Thermal thin shell approximation towards finite element quench simulation", in Superconductor Science and Technology, vol. 36, no. 4, Art no. 044004, doi: [10.1088/1361-6668/acbeea](https://iopscience.iop.org/article/10.1088/1361-6668/acbeea).
109
105
  - J. Dular et al, "Reduced order hysteretic magnetization model for composite superconductors", in Superconductor Science and Technology, vol. 38, no. 3, Art no. 035017, doi: [10.1088/1361-6668/adb5cc](https://iopscience.iop.org/article/10.1088/1361-6668/adb5cc/meta).
110
106
  - J. Dular et al, "A Finite Element a-h-Formulation for the Reduced Order Hysteretic Magnetization Model for Composite Superconductors", in IEEE Transactions on Applied Superconductivity, vol. 35, no. 5, Art no. 8200205, doi: [10.1109/TASC.2025.3528310](https://ieeexplore.ieee.org/abstract/document/10839043).
@@ -133,4 +129,4 @@ steam-admins@cern.ch
133
129
  # License
134
130
  This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
135
131
 
136
- (Copyright © 2022, CERN, Switzerland. All rights reserved.)
132
+ (Copyright © 2022, CERN, Switzerland. All rights reserved.)