fiqus 2025.11.0__py3-none-any.whl → 2026.1.0__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.
- fiqus/MainFiQuS.py +9 -0
- fiqus/data/DataConductor.py +112 -3
- fiqus/data/DataFiQuS.py +4 -3
- fiqus/data/DataFiQuSConductorAC_CC.py +345 -0
- fiqus/data/DataFiQuSConductorAC_Rutherford.py +569 -0
- fiqus/data/DataFiQuSConductorAC_Strand.py +3 -3
- fiqus/data/DataFiQuSHomogenizedConductor.py +478 -0
- fiqus/geom_generators/GeometryConductorAC_CC.py +1906 -0
- fiqus/geom_generators/GeometryConductorAC_Rutherford.py +706 -0
- fiqus/geom_generators/GeometryConductorAC_Strand_RutherfordCopy.py +1848 -0
- fiqus/geom_generators/GeometryHomogenizedConductor.py +183 -0
- fiqus/getdp_runners/RunGetdpConductorAC_CC.py +123 -0
- fiqus/getdp_runners/RunGetdpConductorAC_Rutherford.py +200 -0
- fiqus/getdp_runners/RunGetdpHomogenizedConductor.py +178 -0
- fiqus/mains/MainConductorAC_CC.py +148 -0
- fiqus/mains/MainConductorAC_Rutherford.py +76 -0
- fiqus/mains/MainHomogenizedConductor.py +112 -0
- fiqus/mesh_generators/MeshConductorAC_CC.py +1305 -0
- fiqus/mesh_generators/MeshConductorAC_Rutherford.py +235 -0
- fiqus/mesh_generators/MeshConductorAC_Strand_RutherfordCopy.py +718 -0
- fiqus/mesh_generators/MeshHomogenizedConductor.py +229 -0
- fiqus/post_processors/PostProcessAC_CC.py +65 -0
- fiqus/post_processors/PostProcessAC_Rutherford.py +142 -0
- fiqus/post_processors/PostProcessHomogenizedConductor.py +114 -0
- fiqus/pro_templates/combined/CAC_CC_template.pro +542 -0
- fiqus/pro_templates/combined/CAC_Rutherford_template.pro +1742 -0
- fiqus/pro_templates/combined/HomogenizedConductor_template.pro +1663 -0
- {fiqus-2025.11.0.dist-info → fiqus-2026.1.0.dist-info}/METADATA +9 -12
- {fiqus-2025.11.0.dist-info → fiqus-2026.1.0.dist-info}/RECORD +36 -13
- tests/test_geometry_generators.py +40 -0
- tests/test_mesh_generators.py +76 -0
- tests/test_solvers.py +137 -0
- /fiqus/pro_templates/combined/{ConductorAC_template.pro → CAC_Strand_template.pro} +0 -0
- {fiqus-2025.11.0.dist-info → fiqus-2026.1.0.dist-info}/LICENSE.txt +0 -0
- {fiqus-2025.11.0.dist-info → fiqus-2026.1.0.dist-info}/WHEEL +0 -0
- {fiqus-2025.11.0.dist-info → fiqus-2026.1.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fiqus
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2026.1.0
|
|
4
4
|
Summary: Source code for STEAM FiQuS tool
|
|
5
5
|
Home-page: https://gitlab.cern.ch/steam/fiqus
|
|
6
6
|
Author: STEAM Team
|
|
@@ -91,10 +91,10 @@ Source code for STEAM **FiQuS** (**Fi**nite Element **Qu**ench **S**imulator).
|
|
|
91
91
|
- J. Dular et al, "Coupled Axial and Transverse Currents Method for Finite Element Modelling of Periodic Superconductors", in Superconductor Science and Technology, doi: [10.1088/1361-6668/ad650d](https://doi.org/10.1088/1361-6668/ad650d).
|
|
92
92
|
- E. Schnaubelt et al, "Transient Finite Element Simulation of Accelerator Magnets Using Thermal Thin Shell Approximation", arXiV preprint, doi: [10.48550/arXiv.2501.15871](https://doi.org/10.48550/arXiv.2501.15871).
|
|
93
93
|
- A. Vitrano et al, "An Open-Source Finite Element Quench Simulation Tool for Superconducting Magnets," in IEEE Transactions on Applied Superconductivity, vol. 33, no. 5, pp. 1-6, Aug. 2023, Art no. 4702006, doi: [10.1109/TASC.2023.3259332](https://ieeexplore.ieee.org/abstract/document/10077402).
|
|
94
|
+
- J. Dular et al, "Simulation of Rutherford Cable AC Loss and Magnetization with the Coupled Axial and Transverse Currents Method", in IEEE Transactions on Applied Superconductivity, [10.1109/TASC.2024.3520941](https://doi.org/10.1109/TASC.2024.3520941).
|
|
95
|
+
- J. Dular et al, "Distributed Inter-Strand Coupling Current Model for Finite Element Simulations of Rutherford Cables", arXiv preprint, doi: [arXiv:2510.24618](https://arxiv.org/abs/2510.24618).
|
|
94
96
|
|
|
95
97
|
## Using FiQuS
|
|
96
|
-
|
|
97
|
-
- J. Dular et al, "Simulation of Rutherford Cable AC Loss and Magnetization with the Coupled Axial and Transverse Currents Method", in IEEE Transactions on Applied Superconductivity, [10.1109/TASC.2024.3520941](https://doi.org/10.1109/TASC.2024.3520941).
|
|
98
98
|
- 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
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).
|
|
100
100
|
- 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).
|
|
@@ -103,11 +103,12 @@ Source code for STEAM **FiQuS** (**Fi**nite Element **Qu**ench **S**imulator).
|
|
|
103
103
|
Scientific Computing in Electrical Engineering (SCEE) 2024 conference, [arXiv:2404.13333](https://arxiv.org/abs/2404.13333).
|
|
104
104
|
|
|
105
105
|
## Mathematical Formulations Forming the Basis of Some FiQuS Modules
|
|
106
|
-
|
|
107
106
|
- 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).
|
|
108
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).
|
|
109
108
|
- 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).
|
|
110
|
-
|
|
109
|
+
- 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
|
+
- 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).
|
|
111
|
+
- A. Glock et al, "Reduced Order Hysteretic Flux Model for Transport Current Homogenization in Composite Superconductors", in IEEE Transactions on Magnetics, doi: [10.1109/TMAG.2025.3613877](https://ieeexplore.ieee.org/abstract/document/11177605).
|
|
111
112
|
|
|
112
113
|
# Folder Structure
|
|
113
114
|

|
|
@@ -127,13 +128,9 @@ STEAM-FiQuS documentation: https://steam-fiqus.docs.cern.ch/
|
|
|
127
128
|
Coverage report: https://steam-fiqus.docs.cern.ch/htmlcov/
|
|
128
129
|
|
|
129
130
|
# Contact
|
|
130
|
-
steam-
|
|
131
|
-
|
|
132
|
-
# STEAM User Agreement
|
|
133
|
-
By using any software of the STEAM framework, users agree with this document:
|
|
134
|
-
https://edms.cern.ch/document/2024516
|
|
135
|
-
|
|
136
|
-
(Copyright © 2022, CERN, Switzerland. All rights reserved.)
|
|
131
|
+
steam-admins@cern.ch
|
|
137
132
|
|
|
138
133
|
# License
|
|
139
134
|
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
|
|
135
|
+
|
|
136
|
+
(Copyright © 2022, CERN, Switzerland. All rights reserved.)
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
fiqus/MainFiQuS.py,sha256=
|
|
1
|
+
fiqus/MainFiQuS.py,sha256=edv6-4VzlBVUCo35eqmnAVrh7f1daLGEpJhJmVsD9Mw,21915
|
|
2
2
|
fiqus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
fiqus/data/DataConductor.py,sha256=
|
|
4
|
-
fiqus/data/DataFiQuS.py,sha256=
|
|
3
|
+
fiqus/data/DataConductor.py,sha256=srdHdqqxfANeQYbfQB2jl1UllVhHwoPv3vrQ7ZhNbRk,27823
|
|
4
|
+
fiqus/data/DataFiQuS.py,sha256=xsGhww-q7zW15-9C2wlMR8pspEfafOvaENOzhwR8yi0,5967
|
|
5
5
|
fiqus/data/DataFiQuSCCT.py,sha256=__3AEMvalYm_YgCV9RK-hr9T7e_Dvvx3fBcqbToQWUw,7285
|
|
6
6
|
fiqus/data/DataFiQuSConductor.py,sha256=HpPelDwQsGbgNoX3SdwHQYcTMCHq8vMmi0C-EGpxWeA,3392
|
|
7
|
-
fiqus/data/
|
|
7
|
+
fiqus/data/DataFiQuSConductorAC_CC.py,sha256=fF_g2Ao5Q_vy2g5EcxSGbstHETYP2YKJH2BU_O9kpPo,13903
|
|
8
|
+
fiqus/data/DataFiQuSConductorAC_Rutherford.py,sha256=mEZYPqIMzovyt-7vwD16dMScwwrX2ZTkmn1MmZI4rNM,30037
|
|
9
|
+
fiqus/data/DataFiQuSConductorAC_Strand.py,sha256=vyVcY9IIVbTvOVP1AkbTLafcv2TSM02BHQ6Fxy3ZDbY,38089
|
|
10
|
+
fiqus/data/DataFiQuSHomogenizedConductor.py,sha256=2MIJHJ51nB3_7Gx4St0tFfKh07vFhVu3DzXVNvntsMY,22854
|
|
8
11
|
fiqus/data/DataFiQuSMultipole.py,sha256=_rX9zP-xNTZioVmu4NCaFVWF66ipesp8cSiB0pmKsG4,32377
|
|
9
12
|
fiqus/data/DataFiQuSPancake3D.py,sha256=czgDU-h_XBq3OLqFOllr8zLx_MxQoCiWo84DsyOhhbo,136611
|
|
10
13
|
fiqus/data/DataModelCommon.py,sha256=UoMdZSaHTghal0X9DeNiGUzMNdjolwMy9IRNaQQh38s,23491
|
|
@@ -15,23 +18,37 @@ fiqus/data/DataWindingsCCT.py,sha256=qqqxO4VG6rsKpNEImkA1hjrUMyS4UFNfVG_ioQd4ML8
|
|
|
15
18
|
fiqus/data/RegionsModelFiQuS.py,sha256=6FTJBE0D4snVivMnKpS4NPJFFrdoZjmpR4KmMNF74R4,6795
|
|
16
19
|
fiqus/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
20
|
fiqus/geom_generators/GeometryCCT.py,sha256=t-b4M3XQ7cZlB-_gR59A5sC6qXIldsfBCDqvxSSS9gs,49902
|
|
21
|
+
fiqus/geom_generators/GeometryConductorAC_CC.py,sha256=B98dl6rlOOZBUX1qw1MVxOq5I3UwkkAUtAnAROry4D8,69785
|
|
22
|
+
fiqus/geom_generators/GeometryConductorAC_Rutherford.py,sha256=8_-YkhpqElDrMl27siJIlFPyJ0T6JrPUUQrfUi44ez0,45614
|
|
18
23
|
fiqus/geom_generators/GeometryConductorAC_Strand.py,sha256=0MXKxyodC4Q6Ie4ryiIqgdRmyFsEZrFAc_Tu9yW5wuA,100610
|
|
24
|
+
fiqus/geom_generators/GeometryConductorAC_Strand_RutherfordCopy.py,sha256=TME2ZKV7f_UClhr_8E_ss7hWBom-0MDpQVr__nF05wY,100975
|
|
25
|
+
fiqus/geom_generators/GeometryHomogenizedConductor.py,sha256=vaJu5374gFHzWiCjMbRglSqbdE46qDRkZ4Gt6exCvH0,7616
|
|
19
26
|
fiqus/geom_generators/GeometryMultipole.py,sha256=NXJXZY6WCf37kkjUa3mJG85zX5-uDPSz26HM_z7P7Nw,156639
|
|
20
27
|
fiqus/geom_generators/GeometryPancake3D.py,sha256=mefxCg7It69jSMqV4y1-dniy2rwjs0phcXH0Ly-9myQ,180157
|
|
21
28
|
fiqus/geom_generators/GeometryPancake3DUtils.py,sha256=nmOEKtqzUWB5xbITFkIiO38FeLeIydFxtLrRyZXVQPg,23679
|
|
22
29
|
fiqus/geom_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
30
|
fiqus/getdp_runners/RunGetdpCCT.py,sha256=tZVJYxL6Knx_6JIbJmjibG6MGkAGU3EmzIMu6ekrYnM,3682
|
|
31
|
+
fiqus/getdp_runners/RunGetdpConductorAC_CC.py,sha256=KlxIBc8iCRfjoGH-wqwq7DHqz16TH_Lurai2V9xhp8M,5635
|
|
32
|
+
fiqus/getdp_runners/RunGetdpConductorAC_Rutherford.py,sha256=v3SPfTBZCK24qKF_IoS_drqfxWWWWMXfiG4E-g1ijAY,9869
|
|
24
33
|
fiqus/getdp_runners/RunGetdpConductorAC_Strand.py,sha256=VUMMu6qmx8zYhRp1tqZac8tjJbsVhrJmW2EvxP9NcHc,23043
|
|
34
|
+
fiqus/getdp_runners/RunGetdpHomogenizedConductor.py,sha256=tzWZKqguyE7vdW1LNm4QKRG7AftdmXfPOZ36Ku6pQGU,8871
|
|
25
35
|
fiqus/getdp_runners/RunGetdpMultipole.py,sha256=mYinMVQDJx2zAZIypFbl7bybu7h3TKjlExZ5evZpqYU,8200
|
|
26
36
|
fiqus/getdp_runners/RunGetdpPancake3D.py,sha256=bXqd8hRbH-XFmZ50i4q9cE7slNAiiNz2zi3hGI1RLYY,10876
|
|
27
37
|
fiqus/getdp_runners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
38
|
fiqus/mains/MainCCT.py,sha256=XpDPlj5n8B70ksOF6AHaeTXB752kN7CMLktISoXqirA,4422
|
|
39
|
+
fiqus/mains/MainConductorAC_CC.py,sha256=R4hwF7uLScZDs6vUlt63JxPTEpcAkiCmpP_m5nvtXA8,5569
|
|
40
|
+
fiqus/mains/MainConductorAC_Rutherford.py,sha256=nmV5pAiMbypFQ-sRts5iAgEPOOsZyJNRTnKNvFQWdxQ,3084
|
|
29
41
|
fiqus/mains/MainConductorAC_Strand.py,sha256=taZ10hr-c3Mmn83WwsKtar6Ezm3DvODwvmkem5_XZI4,5511
|
|
42
|
+
fiqus/mains/MainHomogenizedConductor.py,sha256=MoxSJq1ypnldsOMyxq8kS-57WTDqCvCl-s6Jo-eqc8E,3962
|
|
30
43
|
fiqus/mains/MainMultipole.py,sha256=2f1AyYjKikxg5vEknHLsDFBhbL1eOhpPx_YO1Rf_2uk,9700
|
|
31
44
|
fiqus/mains/MainPancake3D.py,sha256=JgmKqcjUOGmodxZoWXfLxKpp-w6_bX1r6XIhqNTQduU,23561
|
|
32
45
|
fiqus/mains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
46
|
fiqus/mesh_generators/MeshCCT.py,sha256=j2Qj69tdFb-weQnNgv5zi6dkL3ZJxGRdzKqzjlYdIy8,11436
|
|
47
|
+
fiqus/mesh_generators/MeshConductorAC_CC.py,sha256=zj79ciB2MT3V0Y4wyoMb5ZLsrHAa-dm4cfJnO8aipZQ,54503
|
|
48
|
+
fiqus/mesh_generators/MeshConductorAC_Rutherford.py,sha256=xFrBLFInqrzZ-eTvHOv3732spMVxDC3gZHbX1x_SDjQ,14789
|
|
34
49
|
fiqus/mesh_generators/MeshConductorAC_Strand.py,sha256=EvQ_adA1lUEcgfOQ9-m2G6FuWTioFRQrC0en-Nn_ztg,48041
|
|
50
|
+
fiqus/mesh_generators/MeshConductorAC_Strand_RutherfordCopy.py,sha256=LundceEIHHgL3MDIVAk1pU1gyrEBtj2A43Jh7UoOdWE,48153
|
|
51
|
+
fiqus/mesh_generators/MeshHomogenizedConductor.py,sha256=gkwBRssdV3IvCZybdbwKrOuOsp7kUO0yfsvavGGpYmY,13126
|
|
35
52
|
fiqus/mesh_generators/MeshMultipole.py,sha256=vxFdVphkpqOCWx5725oGmYHrK6RfB8RoW3bWLsALc78,97227
|
|
36
53
|
fiqus/mesh_generators/MeshPancake3D.py,sha256=u31glrOUPGityJ5S0z4n3SvI_Vqqyh62jv7OXIq3-lY,126975
|
|
37
54
|
fiqus/mesh_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -47,8 +64,11 @@ fiqus/plotters/PlotPythonCCT.py,sha256=YgphOuiTk0klqZh4d4u81hahtiDp-tx149EpBjyKH
|
|
|
47
64
|
fiqus/plotters/PlotPythonConductorAC.py,sha256=_7ygaz5WVVGuc4RkgOcZ2NUbqWbowtJMmseAeQ49XbQ,59383
|
|
48
65
|
fiqus/plotters/PlotPythonMultipole.py,sha256=SjJQKHX5mUoMW3yli97W6Kja0Hux8C16YE1U22hQRHY,481
|
|
49
66
|
fiqus/plotters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
|
+
fiqus/post_processors/PostProcessAC_CC.py,sha256=-J6lhiOMGlOhauwJ_WOBoDtOWk5poJfZJuxmh2ABSwQ,2236
|
|
68
|
+
fiqus/post_processors/PostProcessAC_Rutherford.py,sha256=2n_SYfpYDJ6olnTHKAT3Vw1q6RFAQBRX4PZypcbEIEI,6769
|
|
50
69
|
fiqus/post_processors/PostProcessCCT.py,sha256=C4BU7IHHWm2CbbLunEmHaHN_iW6y9mlisIed3lKfs_A,28633
|
|
51
70
|
fiqus/post_processors/PostProcessConductorAC.py,sha256=qMtxsmBGRMZVKiDynzfzWh4q6ttOAA2bGPmOzciAgXo,58804
|
|
71
|
+
fiqus/post_processors/PostProcessHomogenizedConductor.py,sha256=absLWaskvfptOAQnL2zLF_tdf1Jmrk3duxsAlbuYTV8,4836
|
|
52
72
|
fiqus/post_processors/PostProcessMultipole.py,sha256=ONYqw0mxY0QKXWB51xw-e6_jelzzKD39vMcBR8J4JXs,25512
|
|
53
73
|
fiqus/post_processors/PostProcessPancake3D.py,sha256=PjGaohIj_oWfqyHH-Fr3CgiOitUpjGjYe2Rm3wqtM1g,12940
|
|
54
74
|
fiqus/post_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -58,8 +78,11 @@ fiqus/pro_assemblers/ProAssembler.py,sha256=DrVd1wiuv-7PIj3G38crBu07aMPyE3FOapOD
|
|
|
58
78
|
fiqus/pro_assemblers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
79
|
fiqus/pro_material_functions/ironBHcurves.pro,sha256=0Tz1KzZ63G_zaS6dYQ5NYwa9EAtJna0jR61OxsM9J_E,17835
|
|
60
80
|
fiqus/pro_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
+
fiqus/pro_templates/combined/CAC_CC_template.pro,sha256=q7ZvZOYJTqx--yKrR6ZSQxWvn2r0HyZwST5bh__dQ2A,30257
|
|
82
|
+
fiqus/pro_templates/combined/CAC_Rutherford_template.pro,sha256=tgKnqZw6FADj42HcYT2M_bw76J5gspSfRZ_F8oMiRSo,100473
|
|
83
|
+
fiqus/pro_templates/combined/CAC_Strand_template.pro,sha256=RN69ycY4vGGPp8YmCHICVGRNfvuEHGB50FxmEeEzrXA,94008
|
|
61
84
|
fiqus/pro_templates/combined/CCT_template.pro,sha256=gZKoLj6ZefuSzM7dYkEJW49qlzfiUqEwmifaJP4kOzc,13878
|
|
62
|
-
fiqus/pro_templates/combined/
|
|
85
|
+
fiqus/pro_templates/combined/HomogenizedConductor_template.pro,sha256=sq4B6ZZVDfl8T4L0tBaIA9LzisYzrOv8uB7pAa6ZK64,90770
|
|
63
86
|
fiqus/pro_templates/combined/Multipole_template.pro,sha256=H0H_R7sa69EL2lHtIQ0kmz-0Ov0MbZZIpnu1L0pAhPM,97994
|
|
64
87
|
fiqus/pro_templates/combined/Pancake3D_template.pro,sha256=OjWWWAZel5Yk_k4FEFFNkkSFkCv1N0rM2-DRvilH6dc,215797
|
|
65
88
|
fiqus/pro_templates/combined/TSA_materials.pro,sha256=I8zVOP2ZEFqR0y3JcpSQJWaE6I4UeeMU22PtSD8ExCc,12244
|
|
@@ -71,16 +94,16 @@ fiqus/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
71
94
|
fiqus/utils/update_data_settings.py,sha256=Cl_vP-7MXFHG3LiDE8nVtL7CwK9DUvDhxXV7sabP9to,1295
|
|
72
95
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
96
|
tests/test_FiQuS.py,sha256=mlY5eRp-sE_ubaPG7HHAEsC4Q3iQwI76nfOclPg7m-M,15529
|
|
74
|
-
tests/test_geometry_generators.py,sha256=
|
|
75
|
-
tests/test_mesh_generators.py,sha256=
|
|
76
|
-
tests/test_solvers.py,sha256=
|
|
97
|
+
tests/test_geometry_generators.py,sha256=kadOCdjeWIur8rK7J7ULrvM129Okfl0hwuCATXd3ZVg,10854
|
|
98
|
+
tests/test_mesh_generators.py,sha256=NjtVDH6z7iTBe8aUxnMHhMLrzvPpnHmCM-xyleMe2AU,14105
|
|
99
|
+
tests/test_solvers.py,sha256=_Zyv7foSfjs1iS3qcQTE0ryfwiinTbk7ZFzGsEwlRbI,19040
|
|
77
100
|
tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
101
|
tests/utils/fiqus_test_classes.py,sha256=ynCjYknWGI_pa-lRWQ01aL2SjHz0GTrN4bICW5GlR34,30395
|
|
79
102
|
tests/utils/generate_reference_files_ConductorAC.py,sha256=_jEE6xcqiz52bnmY6Is11QmG-bZ2vdH0k99p733t4N4,1676
|
|
80
103
|
tests/utils/generate_reference_files_Pancake3D.py,sha256=9sULcDOmbotrbYHz8DqGv6Km7ThfltnCHFojHUx193U,3126
|
|
81
104
|
tests/utils/helpers.py,sha256=BQxdHr8N4rGXc2C_YNEeOXxTIDJSUeRyyxLkvWfhiJY,4149
|
|
82
|
-
fiqus-
|
|
83
|
-
fiqus-
|
|
84
|
-
fiqus-
|
|
85
|
-
fiqus-
|
|
86
|
-
fiqus-
|
|
105
|
+
fiqus-2026.1.0.dist-info/LICENSE.txt,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
|
|
106
|
+
fiqus-2026.1.0.dist-info/METADATA,sha256=xDXd4lOVoqzi5Ie-vhHOsn4G6DIgneXCfK7p-1nmE1I,9249
|
|
107
|
+
fiqus-2026.1.0.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
108
|
+
fiqus-2026.1.0.dist-info/top_level.txt,sha256=oGzSIyoVc1zYg14o67zI3QFwWsJvqNzNT0-te9WbUQc,12
|
|
109
|
+
fiqus-2026.1.0.dist-info/RECORD,,
|
|
@@ -92,6 +92,46 @@ class TestGeometryGenerators(FiQuSGeometryTests):
|
|
|
92
92
|
f'{reference_geometry_yaml_file}')
|
|
93
93
|
self.compare_json_or_yaml_files(geometry_yaml_file, reference_geometry_yaml_file, tolerance=1e-9)
|
|
94
94
|
|
|
95
|
+
def test_ConductorAC_Rutherford(self):
|
|
96
|
+
model_names = [
|
|
97
|
+
"TEST_CAC_Rutherford",
|
|
98
|
+
]
|
|
99
|
+
|
|
100
|
+
for model_name in model_names:
|
|
101
|
+
with self.subTest(model_name=model_name):
|
|
102
|
+
data_model = self.get_data_model(model_name)
|
|
103
|
+
|
|
104
|
+
self.generate_geometry(data_model, model_name)
|
|
105
|
+
|
|
106
|
+
# Compare the number of entities with the reference file:
|
|
107
|
+
geometry_file = self.get_path_to_generated_file(
|
|
108
|
+
data_model=data_model, file_name=model_name, file_extension="brep"
|
|
109
|
+
)
|
|
110
|
+
reference_file = self.get_path_to_reference_file(
|
|
111
|
+
data_model=data_model, file_name=model_name, file_extension="brep"
|
|
112
|
+
)
|
|
113
|
+
self.compare_number_of_entities(geometry_file, reference_file)
|
|
114
|
+
|
|
115
|
+
def test_ConductorAC_CC(self):
|
|
116
|
+
model_names = [
|
|
117
|
+
"TEST_CAC_CC",
|
|
118
|
+
]
|
|
119
|
+
|
|
120
|
+
for model_name in model_names:
|
|
121
|
+
with self.subTest(model_name=model_name):
|
|
122
|
+
data_model = self.get_data_model(model_name)
|
|
123
|
+
|
|
124
|
+
self.generate_geometry(data_model, model_name)
|
|
125
|
+
|
|
126
|
+
# Compare the number of entities with the reference file:
|
|
127
|
+
geometry_file = self.get_path_to_generated_file(
|
|
128
|
+
data_model=data_model, file_name=model_name, file_extension="brep"
|
|
129
|
+
)
|
|
130
|
+
reference_file = self.get_path_to_reference_file(
|
|
131
|
+
data_model=data_model, file_name=model_name, file_extension="brep"
|
|
132
|
+
)
|
|
133
|
+
self.compare_number_of_entities(geometry_file, reference_file)
|
|
134
|
+
|
|
95
135
|
def test_Multipole(self):
|
|
96
136
|
"""
|
|
97
137
|
Checks if Multipole geometry generators work correctly by comparing generated
|
tests/test_mesh_generators.py
CHANGED
|
@@ -101,6 +101,82 @@ class TestMeshGenerators(FiQuSMeshTests):
|
|
|
101
101
|
)
|
|
102
102
|
self.compare_json_or_yaml_files(regions_file, reference_regions_file)
|
|
103
103
|
|
|
104
|
+
def test_ConductorAC_Rutherford(self):
|
|
105
|
+
"""
|
|
106
|
+
Checks if mesh generators work correctly by comparing the number
|
|
107
|
+
of entities in the generated geometry file to the reference file that was
|
|
108
|
+
checked manually.
|
|
109
|
+
"""
|
|
110
|
+
model_names = [
|
|
111
|
+
"TEST_CAC_Rutherford",
|
|
112
|
+
]
|
|
113
|
+
|
|
114
|
+
for model_name in model_names:
|
|
115
|
+
with self.subTest(model_name=model_name):
|
|
116
|
+
data_model = self.get_data_model(model_name)
|
|
117
|
+
|
|
118
|
+
self.generate_mesh(data_model, model_name)
|
|
119
|
+
|
|
120
|
+
# Compare the number of entities with the reference file:
|
|
121
|
+
mesh_file = self.get_path_to_generated_file(
|
|
122
|
+
data_model=data_model, file_name=model_name, file_extension="msh"
|
|
123
|
+
)
|
|
124
|
+
reference_file = self.get_path_to_reference_file(
|
|
125
|
+
data_model=data_model, file_name=model_name, file_extension="msh"
|
|
126
|
+
)
|
|
127
|
+
self.compare_mesh_qualities(mesh_file, reference_file)
|
|
128
|
+
|
|
129
|
+
# Compare the regions files:
|
|
130
|
+
regions_file = self.get_path_to_generated_file(
|
|
131
|
+
data_model=data_model,
|
|
132
|
+
file_name=model_name,
|
|
133
|
+
file_extension="regions",
|
|
134
|
+
)
|
|
135
|
+
reference_regions_file = self.get_path_to_reference_file(
|
|
136
|
+
data_model=data_model,
|
|
137
|
+
file_name=model_name,
|
|
138
|
+
file_extension="regions",
|
|
139
|
+
)
|
|
140
|
+
self.compare_json_or_yaml_files(regions_file, reference_regions_file)
|
|
141
|
+
|
|
142
|
+
def test_ConductorAC_CC(self):
|
|
143
|
+
"""
|
|
144
|
+
Checks if mesh generators work correctly by comparing the number
|
|
145
|
+
of entities in the generated geometry file to the reference file that was
|
|
146
|
+
checked manually.
|
|
147
|
+
"""
|
|
148
|
+
model_names = [
|
|
149
|
+
"TEST_CAC_CC",
|
|
150
|
+
]
|
|
151
|
+
|
|
152
|
+
for model_name in model_names:
|
|
153
|
+
with self.subTest(model_name=model_name):
|
|
154
|
+
data_model = self.get_data_model(model_name)
|
|
155
|
+
|
|
156
|
+
self.generate_mesh(data_model, model_name)
|
|
157
|
+
|
|
158
|
+
# Compare the number of entities with the reference file:
|
|
159
|
+
mesh_file = self.get_path_to_generated_file(
|
|
160
|
+
data_model=data_model, file_name=model_name, file_extension="msh"
|
|
161
|
+
)
|
|
162
|
+
reference_file = self.get_path_to_reference_file(
|
|
163
|
+
data_model=data_model, file_name=model_name, file_extension="msh"
|
|
164
|
+
)
|
|
165
|
+
self.compare_mesh_qualities(mesh_file, reference_file)
|
|
166
|
+
|
|
167
|
+
# Compare the regions files:
|
|
168
|
+
regions_file = self.get_path_to_generated_file(
|
|
169
|
+
data_model=data_model,
|
|
170
|
+
file_name=model_name,
|
|
171
|
+
file_extension="regions",
|
|
172
|
+
)
|
|
173
|
+
reference_regions_file = self.get_path_to_reference_file(
|
|
174
|
+
data_model=data_model,
|
|
175
|
+
file_name=model_name,
|
|
176
|
+
file_extension="regions",
|
|
177
|
+
)
|
|
178
|
+
self.compare_json_or_yaml_files(regions_file, reference_regions_file)
|
|
179
|
+
|
|
104
180
|
# def test_CCT(self):
|
|
105
181
|
# """
|
|
106
182
|
# Checks if CCT geometry generators work correctly by comparing the number
|
tests/test_solvers.py
CHANGED
|
@@ -190,6 +190,143 @@ class TestSolvers(FiQuSSolverTests):
|
|
|
190
190
|
)
|
|
191
191
|
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-10)
|
|
192
192
|
|
|
193
|
+
def test_ConductorAC_Rutherford(self):
|
|
194
|
+
"""
|
|
195
|
+
Checks if CAC_Rutherford solver works correctly by comparing the results to the
|
|
196
|
+
reference results that were checked manually.
|
|
197
|
+
"""
|
|
198
|
+
if os.getenv("CERNGETDP_VERSION_CAC_RUTHERFORD") is not None:
|
|
199
|
+
os_name = platform.system()
|
|
200
|
+
|
|
201
|
+
if os_name == "Linux":
|
|
202
|
+
self.getdp_path = linux_getdp_prefix_path / Path(f"cac_rutherford/bin/getdp_{os.getenv('CERNGETDP_VERSION_CAC_RUTHERFORD')}")
|
|
203
|
+
else:
|
|
204
|
+
self.getdp_path = windows_getdp_prefix_path / Path(f"cac_rutherford/getdp_{os.getenv('CERNGETDP_VERSION_CAC_RUTHERFORD')}.exe")
|
|
205
|
+
else:
|
|
206
|
+
print("CERNGETDP_VERSION_CAC_RUTHERFORD is not set. Using default getdp path from data settings.")
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
model_names = [
|
|
210
|
+
"TEST_CAC_Rutherford",
|
|
211
|
+
]
|
|
212
|
+
for model_name in model_names:
|
|
213
|
+
with self.subTest(model_name=model_name):
|
|
214
|
+
data_model: FDM = self.get_data_model(model_name)
|
|
215
|
+
|
|
216
|
+
self.solve(data_model, model_name)
|
|
217
|
+
|
|
218
|
+
# Compare the current density files:
|
|
219
|
+
pos_file = self.get_path_to_generated_file(
|
|
220
|
+
data_model=data_model,
|
|
221
|
+
file_name="jz",
|
|
222
|
+
file_extension="pos",
|
|
223
|
+
)
|
|
224
|
+
reference_pos_file = self.get_path_to_reference_file(
|
|
225
|
+
data_model=data_model,
|
|
226
|
+
file_name="jz",
|
|
227
|
+
file_extension="pos",
|
|
228
|
+
)
|
|
229
|
+
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
|
|
230
|
+
|
|
231
|
+
# Compare the power loss files:
|
|
232
|
+
pos_file = self.get_path_to_generated_file(
|
|
233
|
+
data_model=data_model,
|
|
234
|
+
file_name="m",
|
|
235
|
+
file_extension="pos",
|
|
236
|
+
)
|
|
237
|
+
reference_pos_file = self.get_path_to_reference_file(
|
|
238
|
+
data_model=data_model,
|
|
239
|
+
file_name="m",
|
|
240
|
+
file_extension="pos",
|
|
241
|
+
)
|
|
242
|
+
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
|
|
243
|
+
|
|
244
|
+
def test_ConductorAC_CC(self):
|
|
245
|
+
"""
|
|
246
|
+
Checks if ConductorAC Coated Conductor solver works correctly by comparing the results to the
|
|
247
|
+
reference results that were checked manually.
|
|
248
|
+
"""
|
|
249
|
+
if os.getenv("CERNGETDP_VERSION_CAC_CC") is not None:
|
|
250
|
+
os_name = platform.system()
|
|
251
|
+
|
|
252
|
+
if os_name == "Linux":
|
|
253
|
+
self.getdp_path = linux_getdp_prefix_path / Path(f"cac_cc/bin/getdp_{os.getenv('CERNGETDP_VERSION_CAC_CC')}")
|
|
254
|
+
else:
|
|
255
|
+
self.getdp_path = windows_getdp_prefix_path / Path(f"cac_cc/getdp_{os.getenv('CERNGETDP_VERSION_CAC_CC')}.exe")
|
|
256
|
+
else:
|
|
257
|
+
print("CERNGETDP_VERSION_CAC_CC is not set. Using default getdp path from data settings.")
|
|
258
|
+
|
|
259
|
+
model_names = [
|
|
260
|
+
"TEST_CAC_CC",
|
|
261
|
+
]
|
|
262
|
+
for model_name in model_names:
|
|
263
|
+
with self.subTest(model_name=model_name):
|
|
264
|
+
data_model: FDM = self.get_data_model(model_name)
|
|
265
|
+
|
|
266
|
+
self.solve(data_model, model_name)
|
|
267
|
+
|
|
268
|
+
# Compare the current density files:
|
|
269
|
+
pos_file = self.get_path_to_generated_file(
|
|
270
|
+
data_model=data_model,
|
|
271
|
+
file_name="last_magnetic_field",
|
|
272
|
+
file_extension="pos",
|
|
273
|
+
)
|
|
274
|
+
reference_pos_file = self.get_path_to_reference_file(
|
|
275
|
+
data_model=data_model,
|
|
276
|
+
file_name="last_magnetic_field",
|
|
277
|
+
file_extension="pos",
|
|
278
|
+
)
|
|
279
|
+
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-2, abs_tolerance=1E-10)
|
|
280
|
+
|
|
281
|
+
def test_HomogenizedConductor(self):
|
|
282
|
+
"""
|
|
283
|
+
Checks if HomogenizedConductor solver works correctly by comparing the results to the
|
|
284
|
+
reference results that were checked manually.
|
|
285
|
+
"""
|
|
286
|
+
if os.getenv("CERNGETDP_VERSION_HOMOGENIZED_CONDUCTOR") is not None:
|
|
287
|
+
os_name = platform.system()
|
|
288
|
+
|
|
289
|
+
if os_name == "Linux":
|
|
290
|
+
self.getdp_path = linux_getdp_prefix_path / Path(f"homogenized_conductor/bin/getdp_{os.getenv('CERNGETDP_VERSION_HOMOGENIZED_CONDUCTOR')}")
|
|
291
|
+
else:
|
|
292
|
+
self.getdp_path = windows_getdp_prefix_path / Path(f"homogenized_conductor/getdp_{os.getenv('CERNGETDP_VERSION_HOMOGENIZED_CONDUCTOR')}.exe")
|
|
293
|
+
else:
|
|
294
|
+
print("CERNGETDP_VERSION_HOMOGENIZED_CONDUCTOR is not set. Using default getdp path from data settings.")
|
|
295
|
+
|
|
296
|
+
model_names = [
|
|
297
|
+
"TEST_HomogenizedConductor",
|
|
298
|
+
]
|
|
299
|
+
for model_name in model_names:
|
|
300
|
+
with self.subTest(model_name=model_name):
|
|
301
|
+
data_model: FDM = self.get_data_model(model_name)
|
|
302
|
+
|
|
303
|
+
self.solve(data_model, model_name)
|
|
304
|
+
|
|
305
|
+
# Compare the current density files:
|
|
306
|
+
pos_file = self.get_path_to_generated_file(
|
|
307
|
+
data_model=data_model,
|
|
308
|
+
file_name="js",
|
|
309
|
+
file_extension="pos",
|
|
310
|
+
)
|
|
311
|
+
reference_pos_file = self.get_path_to_reference_file(
|
|
312
|
+
data_model=data_model,
|
|
313
|
+
file_name="js",
|
|
314
|
+
file_extension="pos",
|
|
315
|
+
)
|
|
316
|
+
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
|
|
317
|
+
|
|
318
|
+
# Compare the power loss files:
|
|
319
|
+
pos_file = self.get_path_to_generated_file(
|
|
320
|
+
data_model=data_model,
|
|
321
|
+
file_name="p_tot",
|
|
322
|
+
file_extension="pos",
|
|
323
|
+
)
|
|
324
|
+
reference_pos_file = self.get_path_to_reference_file(
|
|
325
|
+
data_model=data_model,
|
|
326
|
+
file_name="p_tot",
|
|
327
|
+
file_extension="pos",
|
|
328
|
+
)
|
|
329
|
+
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
|
|
193
330
|
|
|
194
331
|
def test_Multipole(self):
|
|
195
332
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|