fiqus 2025.12.0__tar.gz → 2026.1.1__tar.gz

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 (117) hide show
  1. {fiqus-2025.12.0 → fiqus-2026.1.1}/PKG-INFO +61 -57
  2. {fiqus-2025.12.0 → fiqus-2026.1.1}/README.md +4 -8
  3. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/MainFiQuS.py +4 -8
  4. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataConductor.py +108 -11
  5. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuS.py +2 -1
  6. fiqus-2026.1.1/fiqus/data/DataFiQuSConductorAC_CC.py +345 -0
  7. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuSConductorAC_Strand.py +3 -3
  8. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuSMultipole.py +363 -165
  9. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataModelCommon.py +30 -15
  10. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataMultipole.py +33 -10
  11. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataWindingsCCT.py +37 -37
  12. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/RegionsModelFiQuS.py +1 -1
  13. fiqus-2026.1.1/fiqus/geom_generators/GeometryConductorAC_CC.py +1906 -0
  14. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryMultipole.py +751 -54
  15. fiqus-2026.1.1/fiqus/getdp_runners/RunGetdpConductorAC_CC.py +123 -0
  16. fiqus-2026.1.1/fiqus/getdp_runners/RunGetdpMultipole.py +320 -0
  17. fiqus-2026.1.1/fiqus/mains/MainConductorAC_CC.py +148 -0
  18. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mains/MainMultipole.py +109 -17
  19. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/MeshCCT.py +209 -209
  20. fiqus-2026.1.1/fiqus/mesh_generators/MeshConductorAC_CC.py +1305 -0
  21. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/MeshMultipole.py +938 -263
  22. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/ParserCOND.py +2 -1
  23. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/ParserDAT.py +16 -16
  24. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/ParserGetDPOnSection.py +212 -212
  25. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/ParserGetDPTimeTable.py +134 -134
  26. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/ParserMSH.py +53 -53
  27. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/ParserRES.py +142 -142
  28. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/plotters/PlotPythonCCT.py +133 -133
  29. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/plotters/PlotPythonMultipole.py +18 -18
  30. fiqus-2026.1.1/fiqus/post_processors/PostProcessAC_CC.py +65 -0
  31. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/post_processors/PostProcessMultipole.py +16 -6
  32. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pre_processors/PreProcessCCT.py +175 -175
  33. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_assemblers/ProAssembler.py +3 -3
  34. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_material_functions/ironBHcurves.pro +246 -246
  35. fiqus-2026.1.1/fiqus/pro_templates/combined/CAC_CC_template.pro +542 -0
  36. fiqus-2026.1.1/fiqus/pro_templates/combined/CC_Module.pro +1213 -0
  37. fiqus-2026.1.1/fiqus/pro_templates/combined/Multipole_template.pro +3216 -0
  38. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/combined/TSA_materials.pro +102 -2
  39. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/combined/materials.pro +54 -3
  40. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/utils/Utils.py +18 -25
  41. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/utils/update_data_settings.py +1 -1
  42. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus.egg-info/PKG-INFO +61 -57
  43. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus.egg-info/SOURCES.txt +10 -2
  44. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus.egg-info/requires.txt +22 -26
  45. {fiqus-2025.12.0 → fiqus-2026.1.1}/setup.py +26 -17
  46. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/test_geometry_generators.py +47 -30
  47. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/test_mesh_generators.py +69 -30
  48. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/test_solvers.py +67 -29
  49. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/utils/fiqus_test_classes.py +396 -147
  50. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/utils/generate_reference_files_ConductorAC.py +57 -57
  51. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/utils/helpers.py +76 -1
  52. fiqus-2025.12.0/fiqus/getdp_runners/RunGetdpMultipole.py +0 -170
  53. fiqus-2025.12.0/fiqus/pro_templates/combined/Multipole_template.pro +0 -1816
  54. {fiqus-2025.12.0 → fiqus-2026.1.1}/LICENSE.txt +0 -0
  55. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/__init__.py +0 -0
  56. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuSCCT.py +0 -0
  57. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuSConductor.py +0 -0
  58. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuSConductorAC_Rutherford.py +0 -0
  59. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuSHomogenizedConductor.py +0 -0
  60. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataFiQuSPancake3D.py +0 -0
  61. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataRoxieParser.py +0 -0
  62. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/DataSettings.py +0 -0
  63. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/data/__init__.py +0 -0
  64. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryCCT.py +0 -0
  65. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryConductorAC_Rutherford.py +0 -0
  66. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryConductorAC_Strand.py +0 -0
  67. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryConductorAC_Strand_RutherfordCopy.py +0 -0
  68. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryHomogenizedConductor.py +0 -0
  69. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryPancake3D.py +0 -0
  70. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/GeometryPancake3DUtils.py +0 -0
  71. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/geom_generators/__init__.py +0 -0
  72. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/getdp_runners/RunGetdpCCT.py +0 -0
  73. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/getdp_runners/RunGetdpConductorAC_Rutherford.py +0 -0
  74. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/getdp_runners/RunGetdpConductorAC_Strand.py +0 -0
  75. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/getdp_runners/RunGetdpHomogenizedConductor.py +0 -0
  76. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/getdp_runners/RunGetdpPancake3D.py +0 -0
  77. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/getdp_runners/__init__.py +0 -0
  78. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mains/MainCCT.py +0 -0
  79. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mains/MainConductorAC_Rutherford.py +0 -0
  80. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mains/MainConductorAC_Strand.py +0 -0
  81. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mains/MainHomogenizedConductor.py +0 -0
  82. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mains/MainPancake3D.py +0 -0
  83. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mains/__init__.py +0 -0
  84. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/MeshConductorAC_Rutherford.py +0 -0
  85. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/MeshConductorAC_Strand.py +0 -0
  86. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/MeshConductorAC_Strand_RutherfordCopy.py +0 -0
  87. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/MeshHomogenizedConductor.py +0 -0
  88. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/MeshPancake3D.py +0 -0
  89. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/mesh_generators/__init__.py +0 -0
  90. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/ParserPOS.py +0 -0
  91. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/parsers/__init__.py +0 -0
  92. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/plotters/PlotPythonConductorAC.py +0 -0
  93. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/plotters/__init__.py +0 -0
  94. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/post_processors/PostProcessAC_Rutherford.py +0 -0
  95. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/post_processors/PostProcessCCT.py +0 -0
  96. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/post_processors/PostProcessConductorAC.py +0 -0
  97. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/post_processors/PostProcessHomogenizedConductor.py +0 -0
  98. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/post_processors/PostProcessPancake3D.py +0 -0
  99. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/post_processors/__init__.py +0 -0
  100. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pre_processors/__init__.py +0 -0
  101. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_assemblers/__init__.py +0 -0
  102. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/__init__.py +0 -0
  103. /fiqus-2025.12.0/fiqus/pro_templates/combined/ConductorACRutherford_template.pro → /fiqus-2026.1.1/fiqus/pro_templates/combined/CAC_Rutherford_template.pro +0 -0
  104. /fiqus-2025.12.0/fiqus/pro_templates/combined/ConductorAC_template.pro → /fiqus-2026.1.1/fiqus/pro_templates/combined/CAC_Strand_template.pro +0 -0
  105. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/combined/CCT_template.pro +0 -0
  106. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/combined/HomogenizedConductor_template.pro +0 -0
  107. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/combined/Pancake3D_template.pro +0 -0
  108. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/combined/__init__.py +0 -0
  109. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/pro_templates/separated/__init__.py +0 -0
  110. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus/utils/__init__.py +0 -0
  111. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus.egg-info/dependency_links.txt +0 -0
  112. {fiqus-2025.12.0 → fiqus-2026.1.1}/fiqus.egg-info/top_level.txt +0 -0
  113. {fiqus-2025.12.0 → fiqus-2026.1.1}/setup.cfg +0 -0
  114. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/__init__.py +0 -0
  115. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/test_FiQuS.py +0 -0
  116. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/utils/__init__.py +0 -0
  117. {fiqus-2025.12.0 → fiqus-2026.1.1}/tests/utils/generate_reference_files_Pancake3D.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: fiqus
3
- Version: 2025.12.0
3
+ Version: 2026.1.1
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,52 +10,17 @@ 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
26
- 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"
13
+ Requires-Dist: gmsh<5,>=4.13
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
59
24
  Provides-Extra: docs
60
25
  Requires-Dist: griffe==0.42.0; extra == "docs"
61
26
  Requires-Dist: markdown==3.5.2; extra == "docs"
@@ -78,6 +43,49 @@ Provides-Extra: build
78
43
  Requires-Dist: setuptools==69.2.0; extra == "build"
79
44
  Requires-Dist: wheel==0.45.1; extra == "build"
80
45
  Requires-Dist: twine==6.0.1; extra == "build"
46
+ Provides-Extra: all
47
+ Requires-Dist: gmsh<5,>=4.13; extra == "all"
48
+ Requires-Dist: h5py<4,>=3.10; extra == "all"
49
+ Requires-Dist: Jinja2<4,>=3.1; extra == "all"
50
+ Requires-Dist: matplotlib<4,>=3.8; extra == "all"
51
+ Requires-Dist: mplcursors<1,>=0.5; extra == "all"
52
+ Requires-Dist: numpy<2,>=1.26; extra == "all"
53
+ Requires-Dist: pandas<3,>=2.2; extra == "all"
54
+ Requires-Dist: pydantic<3,>=2.6; extra == "all"
55
+ Requires-Dist: ruamel.yaml<1,>=0.18; extra == "all"
56
+ Requires-Dist: scipy<2,>=1.14; extra == "all"
57
+ Requires-Dist: tqdm<5,>=4.66; extra == "all"
58
+ Requires-Dist: griffe==0.42.0; extra == "all"
59
+ Requires-Dist: markdown==3.5.2; extra == "all"
60
+ Requires-Dist: markdown-include==0.8.1; extra == "all"
61
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin==1.2.4; extra == "all"
62
+ Requires-Dist: mkdocs-include-markdown-plugin==6.0.4; extra == "all"
63
+ Requires-Dist: mkdocs-material==9.5.13; extra == "all"
64
+ Requires-Dist: mkdocstrings-python==1.9.0; extra == "all"
65
+ Requires-Dist: mkdocs-autorefs==1.3.1; extra == "all"
66
+ Requires-Dist: coverage==7.4.4; extra == "all"
67
+ Requires-Dist: coverage-badge==1.1.0; extra == "all"
68
+ Requires-Dist: flake8==7.0.0; extra == "all"
69
+ Requires-Dist: mypy==1.9.0; extra == "all"
70
+ Requires-Dist: pylint==3.1.0; extra == "all"
71
+ Requires-Dist: pytest==8.1.1; extra == "all"
72
+ Requires-Dist: pytest-cov==4.1.0; extra == "all"
73
+ Requires-Dist: pytest-subtests==0.12.1; extra == "all"
74
+ Requires-Dist: setuptools==69.2.0; extra == "all"
75
+ Requires-Dist: wheel==0.45.1; extra == "all"
76
+ Requires-Dist: twine==6.0.1; extra == "all"
77
+ Dynamic: author
78
+ Dynamic: author-email
79
+ Dynamic: classifier
80
+ Dynamic: description
81
+ Dynamic: description-content-type
82
+ Dynamic: home-page
83
+ Dynamic: keywords
84
+ Dynamic: license-file
85
+ Dynamic: provides-extra
86
+ Dynamic: requires-dist
87
+ Dynamic: requires-python
88
+ Dynamic: summary
81
89
 
82
90
  ![FiQuS logo](https://gitlab.cern.ch/steam/fiqus/-/raw/master/docs/images/FiQuS_name_logo.svg)
83
91
 
@@ -96,7 +104,7 @@ Source code for STEAM **FiQuS** (**Fi**nite Element **Qu**ench **S**imulator).
96
104
 
97
105
  ## Using FiQuS
98
106
  - 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).
107
+ - 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
108
  - 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
109
  - 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
110
  - 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 +112,7 @@ Scientific Computing in Electrical Engineering (SCEE) 2024 conference, [arXiv:24
104
112
 
105
113
  ## Mathematical Formulations Forming the Basis of Some FiQuS Modules
106
114
  - 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).
115
+ - 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
116
  - 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
117
  - 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
118
  - 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).
@@ -128,13 +136,9 @@ STEAM-FiQuS documentation: https://steam-fiqus.docs.cern.ch/
128
136
  Coverage report: https://steam-fiqus.docs.cern.ch/htmlcov/
129
137
 
130
138
  # Contact
131
- steam-team@cern.ch
132
-
133
- # STEAM User Agreement
134
- By using any software of the STEAM framework, users agree with this document:
135
- https://edms.cern.ch/document/2024516
136
-
137
- (Copyright © 2022, CERN, Switzerland. All rights reserved.)
139
+ steam-admins@cern.ch
138
140
 
139
141
  # License
140
142
  This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
143
+
144
+ (Copyright © 2022, CERN, Switzerland. All rights reserved.)
@@ -47,13 +47,9 @@ STEAM-FiQuS documentation: https://steam-fiqus.docs.cern.ch/
47
47
  Coverage report: https://steam-fiqus.docs.cern.ch/htmlcov/
48
48
 
49
49
  # Contact
50
- steam-team@cern.ch
51
-
52
- # STEAM User Agreement
53
- By using any software of the STEAM framework, users agree with this document:
54
- https://edms.cern.ch/document/2024516
55
-
56
- (Copyright © 2022, CERN, Switzerland. All rights reserved.)
50
+ steam-admins@cern.ch
57
51
 
58
52
  # License
59
- This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
53
+ This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
54
+
55
+ (Copyright © 2022, CERN, Switzerland. All rights reserved.)
@@ -27,6 +27,7 @@ from fiqus.mains.MainPancake3D import MainPancake3D
27
27
  from fiqus.mains.MainConductorAC_Strand import MainConductorAC_Strand
28
28
  from fiqus.mains.MainHomogenizedConductor import MainHomogenizedConductor
29
29
  from fiqus.mains.MainConductorAC_Rutherford import MainConductorAC_Rutherford
30
+ from fiqus.mains.MainConductorAC_CC import MainConductorAC_CC
30
31
 
31
32
  class MainFiQuS:
32
33
  """
@@ -92,6 +93,8 @@ class MainFiQuS:
92
93
  self.main_magnet = MainPancake3D(fdm=self.fdm, verbose=verbose)
93
94
  elif self.fdm.magnet.type == "CACStrand":
94
95
  self.main_magnet = MainConductorAC_Strand(fdm=self.fdm, inputs_folder_path=pathlib.Path(input_file_path).parent, outputs_folder_path=model_folder, verbose=verbose)
96
+ elif self.fdm.magnet.type == "CACCC":
97
+ self.main_magnet = MainConductorAC_CC(fdm=self.fdm, inputs_folder_path=pathlib.Path(input_file_path).parent, verbose=verbose)
95
98
  elif self.fdm.magnet.type == "HomogenizedConductor":
96
99
  self.main_magnet = MainHomogenizedConductor(fdm=self.fdm, inputs_folder_path=pathlib.Path(input_file_path).parent, outputs_folder_path=model_folder, verbose=verbose)
97
100
  elif self.fdm.magnet.type == "CACRutherford":
@@ -100,12 +103,7 @@ class MainFiQuS:
100
103
  self.file_name = os.path.basename(input_file_path)[:-5]
101
104
  if not self.fdm.magnet.geometry.geom_file_path:
102
105
  self.fdm.magnet.geometry.geom_file_path = f"{input_file_path[:-5]}.geom"
103
- self.main_magnet = MainMultipole(
104
- fdm=self.fdm,
105
- rgd_path=self.fdm.magnet.geometry.geom_file_path,
106
- verbose=verbose,
107
- )
108
-
106
+ self.main_magnet = MainMultipole(fdm=self.fdm,rgd_path=self.fdm.magnet.geometry.geom_file_path,verbose=verbose, inputs_folder_path=pathlib.Path(input_file_path).parent)
109
107
  else:
110
108
  raise ValueError(
111
109
  f"FiQuS does not support magnet type: {self.fdm.magnet.type}!"
@@ -394,8 +392,6 @@ class MainFiQuS:
394
392
  self.summary["solution_time"] = (
395
393
  self.main_magnet.solve_and_postprocess_getdp(gui=self.main_magnet.fdm.run.launch_gui)
396
394
  )
397
- elif self.fdm.run.type == "postprocess_veusz":
398
- self.main_magnet.post_process_veusz(gui=self.main_magnet.fdm.run.launch_gui)
399
395
  elif self.fdm.run.type == "post_process_getdp_only":
400
396
  self.main_magnet.post_process_getdp(gui=self.main_magnet.fdm.run.launch_gui)
401
397
  elif self.fdm.run.type == "post_process_python_only":
@@ -116,6 +116,27 @@ class ProDefined(BaseModel):
116
116
  v: Optional[float] = None # [-]
117
117
  B0: Optional[float] = None # [-]
118
118
 
119
+ class Succi_fixed(BaseModel):
120
+ """
121
+ Level 3: Class for cable Succi's YBCO fit
122
+ """
123
+
124
+ type: Literal["Succi_fixed"]
125
+ Jc_factor: Optional[float] = Field(gt=0.0,
126
+ default = 1.0,
127
+ description = "This factor multiplies the Jc returned by the function."
128
+ )
129
+ # all other parameters of the Succi fit are hardcoded
130
+ class Fujikura(BaseModel):
131
+ """
132
+ Level 3: Class for cable Fujikura's fit
133
+ """
134
+
135
+ type: Literal["Fujikura"]
136
+ Jc_factor: Optional[float] = Field(gt=0.0,
137
+ default = 1.0,
138
+ description = "This factor multiplies the Jc returned by the function."
139
+ )
119
140
 
120
141
  class BSCCO_2212_LBNL(BaseModel):
121
142
  """
@@ -223,6 +244,31 @@ class Ribbon(BaseModel):
223
244
  material_outer_voids: Optional[str] = None
224
245
  material_core: Optional[str] = None
225
246
 
247
+ class TSTC(BaseModel):
248
+ """
249
+ Twisted Stacked-Tape Cable (TSTC) type:
250
+ """
251
+ type: Literal["TSTC"]
252
+ stack_layout: Optional[List[Literal[-1,0,1]]] = Field(default=None,description="2D: Tape stack layout ordered TOP->BOTTOM. The numbers represent: 1 = a CC tape, -1 = a flipped CC tape, 0 = a shunt.")
253
+ nb_tapes: Optional[int] = Field(default=None, description="3D: Number of tapes in the stack")
254
+ tape_width: Optional[float] = Field(default=None, description="3D and 2D: Width of each tape")
255
+ tape_thickness: Optional[float] = Field(default=None, description="3D and 2D: Thickness of each tape")
256
+ twist_pitch: Optional[float] = Field(default=None, description="3D: Length over which tapes are twisted by full rotation")
257
+ pitch_fraction: Optional[float] = Field(default=1.0, description="3D: Fraction of the twist pitch to be modelled (1.0 = full pitch, 0.5 = half pitch, etc.)")
258
+ bare_cable_width: Optional[float] = Field(default=None, description="Cable width, typically the same as CC width")
259
+ bare_cable_height_low: Optional[float] = Field(default=None, description="Narrow end (if applicable) cable height (thickness), typically the same as (CC thickness + Cu stabilizer thickness) * number of tapes.")
260
+ bare_cable_height_high: Optional[float] = Field(default=None, description="Wide end (if applicable) cable height (thickness), typically the same as (CC thickness + Cu stabilizer thickness) * number of tapes.")
261
+ bare_cable_height_mean: Optional[float] = Field(default=None, description="Average (if applicable) cable height (thickness), typically the same as (CC thickness + Cu stabilizer thickness) * number of tapes.")
262
+ th_insulation_along_width: Optional[float] = Field(default=None, description="Insulation thickness along the width ")
263
+ th_insulation_along_height: Optional[float] = Field(default=None, description="Insulation thickness along the height ")
264
+ f_superconductor: Optional[float] = Field(default=None, description="Fraction of superconductor related to the total area of the cable (winding cell)")
265
+ f_stabilizer: Optional[float] = Field(default=None, description="Fraction of stabilizer related to the total area of the cable (winding cell)")
266
+ f_silver: Optional[float] = Field(default=None, description="Fraction of silver related to the total area of the cable (winding cell)")
267
+ f_substrate: Optional[float] = Field(default=None, description="Fraction of substrate (including buffer layers and silver overlay) related to the total area of the cable (winding cell)")
268
+ f_shunt: Optional[float] = Field(default=None, description="Fraction of substrate (including buffer layers and silver overlay) related to the total area of the cable (winding cell)")
269
+ f_insulation: Optional[float] = Field(default=None, description="Fraction of cable insulation related to the total area of the cable (winding cell)")
270
+ f_inner_voids: Optional[float] = Field(default=None, description="Fraction of additional material (typically insulation) related to the total area of the cable (winding cell)")
271
+ f_outer_voids: Optional[float] = Field(default=None, description="Fraction of additional material (typically helium impregnating the windings) related to the total area of the cable (winding cell)")
226
272
 
227
273
  # ------------------- Conductors ---------------------------#
228
274
 
@@ -275,7 +321,7 @@ class Round(BaseModel):
275
321
  k_material_superconductor: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the superconductor.")
276
322
  Cv_material_superconductor: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the superconductor.")
277
323
  # -- Stabilizer parameters -- #
278
- material_stabilizer: Optional[str] = Field(default=None, description="Material of the stabilizer.")
324
+ #material_stabilizer: Optional[str] = Field(default=None, description="Material of the stabilizer.")
279
325
  rho_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Material function for resistivity of the stabilizer. Constant resistivity can be given as float.")
280
326
  rho_material_holes: Optional[Union[str, float]] = Field(default=None, description="Material function for resistivity of the holes in the filaments."
281
327
  "Constant resistivity can be given as float, material name as a string or None or 0.0 to use 'air' in the holes.")
@@ -316,18 +362,69 @@ class Rectangular(BaseModel):
316
362
  k_material_superconductor: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the superconductor.")
317
363
  Cv_material_superconductor: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the superconductor.")
318
364
  # -- Stabilizer parameters -- #
319
- material_stabilizer: Optional[str] = Field(default=None, description="Material of the stabilizer.")
365
+ #material_stabilizer: Optional[str] = Field(default=None, description="Material of the stabilizer.") #TODO this should be removed as is substituted by rho, k and Cv
366
+ k_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the stabilizer.")
367
+ Cv_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the stabilizer.")
320
368
  rho_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Material function for resistivity of the stabilizer. Constant resistivity can be given as float.")
321
369
  RRR: Optional[Union[float, List[float]]] = Field(default=None, description="Residual resistivity ratio of the stabilizer. If a list of RRR is provided it needs to match in length the number of matrix regions in the geometry (typically 3)")
322
370
  T_ref_RRR_high: Optional[float] = Field(default=None, description="Upper reference temperature for RRR measurements.")
323
371
  T_ref_RRR_low: Optional[float] = Field(default=None, description="Lower reference temperature for RRR measurements.")
324
- k_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the stabilizer.")
325
- Cv_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the stabilizer.")
326
- number_of_filaments: Optional[int] = None
327
372
 
328
- # superconductor: MaterialSuperconductor = MaterialSuperconductor()
329
- # stabilizer: MaterialStabilizer = MaterialStabilizer()
330
-
373
+ class Copper_thickness(BaseModel):
374
+ left: Optional[float] = Field(default=None, description="On the left side.")
375
+ right: Optional[float] = Field(default=None, description="On the right side.")
376
+ top: Optional[float] = Field(default=None, description="On the top side.")
377
+ bottom: Optional[float] = Field(default=None, description="On the bottom side.")
378
+
379
+ class Silver_thickness(BaseModel):
380
+ top: Optional[float] = Field(default=None, description="On the top side.")
381
+ bottom: Optional[float] = Field(default=None, description="On the bottom side.")
382
+
383
+ class CC(BaseModel):
384
+ """
385
+ Level 2: Class for coated conductor parameters
386
+ """
387
+ type: Literal["CC"]
388
+
389
+ # Core layer sizes
390
+ HTS_thickness: Optional[float] = Field(default=None, description="HTS thickness in meters.")
391
+ HTS_width: Optional[float] = Field(default=None, description="HTS width in meters.")
392
+ number_of_filaments: Optional[int] = Field(default=1, ge=1, description="Number of HTS filaments. If 1, no striation case")
393
+ gap_between_filaments: Optional[float] = Field(default=None, description="Gap between HTS filaments in meters. Only applies when number_of_filaments > 1.")
394
+ substrate_thickness: Optional[float] = Field(default=None, description="Substrate layer thickness in meters.")
395
+
396
+ # Plating/stabilizer
397
+ copper_thickness: Copper_thickness = Field(default=Copper_thickness(), description="Copper thickness in meters")
398
+ silver_thickness: Silver_thickness = Field(default=Silver_thickness(), description="Silver thickness in meters")
399
+
400
+ # -- Superconductor parameters -- #
401
+ material_superconductor: Optional[str] = Field(default=None, description="Material of the superconductor. E.g. NbTi, Nb3Sn, etc.")
402
+ n_value_superconductor: Optional[float] = Field(default=None, description="n value of the superconductor (for power law fit).")
403
+ ec_superconductor: Optional[float] = Field(default=None, description="Critical electric field of the superconductor.")
404
+ minimum_jc_fraction: Optional[float] = Field(gt=0, le=1, default=None, description="Fraction of Jc(minimum_jc_field, T) to use as minimum Jc for the power law"
405
+ " fit to avoid division by zero when Jc(B_local, T) decreases to zero."
406
+ "Typical value would be 0.001 (so the Jc_minimum is 0.1% of Jc(minimum_jc_field, T))"
407
+ "This fraction is only allowed to be greater than 0.0 and less than or equal to 1.0")
408
+ minimum_jc_field: Optional[float] = Field(default=None, description="Magnetic flux density in tesla used for calculation of Jc(minimum_jc_field, T)."
409
+ "This gets multiplied by minimum_jc_fraction and used as minimum Jc for the power law")
410
+ k_material_superconductor: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the superconductor.")
411
+ Cv_material_superconductor: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the superconductor.")
412
+ k_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the stabilizer, typically copper.")
413
+ Cv_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the stabilizer, typically copper.")
414
+ rho_material_stabilizer: Optional[Union[str, float]] = Field(default=None, description="Material function for resistivity of the stabilizer. Constant resistivity can be given as float.")
415
+ RRR: Optional[Union[float, List[float]]] = Field(default=None, description="Residual resistivity ratio of the stabilizer. If a list of RRR is provided it needs to match in length the number of matrix regions in the geometry (typically 3)")
416
+ T_ref_RRR_high: Optional[float] = Field(default=None, description="Upper reference temperature for RRR measurements.")
417
+ T_ref_RRR_low: Optional[float] = Field(default=None, description="Lower reference temperature for RRR measurements.")
418
+ k_material_silver: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the silver")
419
+ Cv_material_silver: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the silver")
420
+ rho_material_silver: Optional[Union[str, float]] = Field(default=None, description="Material function for resistivity of the silver. Constant resistivity can be given as float.")
421
+ RRR_silver: Optional[Union[float, List[float]]] = Field(default=None, description="Residual resistivity ratio of the silver. If a list of RRR is provided it needs to match in length the number of matrix regions in the geometry (typically 3)")
422
+ T_ref_RRR_high_silver: Optional[float] = Field(default=None, description="Upper reference temperature for RRR measurements for silver.")
423
+ T_ref_RRR_low_silver: Optional[float] = Field(default=None, description="Lower reference temperature for RRR measurements for silver.")
424
+ rho_material_substrate: Optional[Union[str, float]] = Field(default=None, description="Material function for resistivity of the substrate. Constant resistivity can be given as float.")
425
+ k_material_substrate: Optional[Union[str, float]] = Field(default=None, description="Thermal conductivity of the substrate.")
426
+ Cv_material_substrate: Optional[Union[str, float]] = Field(default=None, description="Material function for specific heat of the substrate.")
427
+
331
428
  class Homogenized(BaseModel):
332
429
  """
333
430
  Level 2: Class for homogenized strand parameters, to be used in the Rutherford cable model
@@ -349,10 +446,10 @@ class Conductor(BaseModel):
349
446
  version: Optional[str] = None
350
447
  case: Optional[str] = None
351
448
  state: Optional[str] = None
352
- cable: Union[Rutherford, Mono, Ribbon] = {
449
+ cable: Union[Rutherford, Mono, Ribbon, TSTC] = {
353
450
  "type": "Rutherford"
354
451
  } # TODO: Busbar, Rope, Roebel, CORC, TSTC, CICC
355
- strand: Union[Round, Rectangular, Homogenized] = {"type": "Round"} # TODO: Tape, WIC
356
- Jc_fit: Union[ConstantJc, Bottura, CUDI1, CUDI3, Summers, Bordini, Nb3Sn_HFM, BSCCO_2212_LBNL, Ic_A_NbTi, ProDefined] = {
452
+ strand: Union[Round, Rectangular, CC, Homogenized] = {"type": "Round"} # TODO: Tape, WIC
453
+ Jc_fit: Union[ConstantJc, Bottura, CUDI1, CUDI3, Summers, Bordini, Nb3Sn_HFM, BSCCO_2212_LBNL, Ic_A_NbTi, ProDefined, Succi_fixed, Fujikura] = {
357
454
  "type": "CUDI1"
358
455
  } # TODO: CUDI other numbers? , Roxie?
@@ -9,6 +9,7 @@ from fiqus.data.DataFiQuSPancake3D import Pancake3D
9
9
  from fiqus.data.DataFiQuSConductorAC_Strand import CACStrand
10
10
  from fiqus.data.DataFiQuSHomogenizedConductor import HomogenizedConductor
11
11
  from fiqus.data.DataFiQuSConductorAC_Rutherford import CACRutherford
12
+ from fiqus.data.DataFiQuSConductorAC_CC import CACCC
12
13
 
13
14
  class RunFiQuS(BaseModel):
14
15
  """
@@ -144,7 +145,7 @@ class FDM(BaseModel):
144
145
 
145
146
  general: GeneralFiQuS = GeneralFiQuS()
146
147
  run: RunFiQuS = RunFiQuS()
147
- magnet: Union[Multipole, CCT, Pancake3D, CACStrand, HomogenizedConductor, CACRutherford] = Field(
148
+ magnet: Union[Multipole, CCT, Pancake3D, CACStrand, HomogenizedConductor, CACRutherford, CACCC] = Field(
148
149
  default=Multipole(), discriminator="type"
149
150
  )
150
151
  circuit: Circuit_Class = Circuit_Class()