fiqus 2025.1.1__py3-none-any.whl → 2025.10.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 +4 -9
- fiqus/data/DataConductor.py +350 -301
- fiqus/data/DataFiQuS.py +42 -115
- fiqus/data/DataFiQuSCCT.py +150 -150
- fiqus/data/DataFiQuSConductor.py +97 -84
- fiqus/data/DataFiQuSConductorAC_Strand.py +701 -565
- fiqus/data/DataModelCommon.py +439 -0
- fiqus/data/DataMultipole.py +0 -13
- fiqus/data/DataRoxieParser.py +7 -0
- fiqus/data/DataWindingsCCT.py +37 -37
- fiqus/data/RegionsModelFiQuS.py +61 -104
- fiqus/geom_generators/GeometryCCT.py +904 -905
- fiqus/geom_generators/GeometryConductorAC_Strand.py +1863 -1391
- fiqus/geom_generators/GeometryMultipole.py +5 -4
- fiqus/geom_generators/GeometryPancake3D.py +1 -1
- fiqus/getdp_runners/RunGetdpCCT.py +13 -4
- fiqus/getdp_runners/RunGetdpConductorAC_Strand.py +341 -201
- fiqus/getdp_runners/RunGetdpPancake3D.py +2 -2
- fiqus/mains/MainConductorAC_Strand.py +141 -133
- fiqus/mains/MainMultipole.py +6 -5
- fiqus/mains/MainPancake3D.py +3 -4
- fiqus/mesh_generators/MeshCCT.py +209 -209
- fiqus/mesh_generators/MeshConductorAC_Strand.py +709 -656
- fiqus/mesh_generators/MeshMultipole.py +43 -46
- fiqus/mesh_generators/MeshPancake3D.py +7 -4
- fiqus/parsers/ParserDAT.py +16 -16
- fiqus/parsers/ParserGetDPOnSection.py +212 -212
- fiqus/parsers/ParserGetDPTimeTable.py +134 -134
- fiqus/parsers/ParserMSH.py +53 -53
- fiqus/parsers/ParserPOS.py +214 -214
- fiqus/parsers/ParserRES.py +142 -142
- fiqus/plotters/PlotPythonCCT.py +133 -133
- fiqus/plotters/PlotPythonConductorAC.py +1079 -855
- fiqus/plotters/PlotPythonMultipole.py +18 -18
- fiqus/post_processors/PostProcessCCT.py +444 -440
- fiqus/post_processors/PostProcessConductorAC.py +997 -49
- fiqus/post_processors/PostProcessMultipole.py +19 -19
- fiqus/pre_processors/PreProcessCCT.py +175 -175
- fiqus/pro_material_functions/ironBHcurves.pro +246 -246
- fiqus/pro_templates/combined/CCT_template.pro +275 -274
- fiqus/pro_templates/combined/ConductorAC_template.pro +1474 -1025
- fiqus/pro_templates/combined/Multipole_template.pro +22 -14
- fiqus/pro_templates/combined/Pancake3D_template.pro +128 -24
- fiqus/utils/Utils.py +12 -7
- {fiqus-2025.1.1.dist-info → fiqus-2025.10.0.dist-info}/METADATA +69 -66
- fiqus-2025.10.0.dist-info/RECORD +86 -0
- {fiqus-2025.1.1.dist-info → fiqus-2025.10.0.dist-info}/WHEEL +1 -1
- tests/test_geometry_generators.py +4 -0
- tests/test_mesh_generators.py +5 -0
- tests/test_solvers.py +41 -4
- tests/utils/fiqus_test_classes.py +15 -6
- tests/utils/generate_reference_files_ConductorAC.py +57 -57
- tests/utils/helpers.py +97 -97
- fiqus-2025.1.1.dist-info/RECORD +0 -85
- {fiqus-2025.1.1.dist-info → fiqus-2025.10.0.dist-info}/LICENSE.txt +0 -0
- {fiqus-2025.1.1.dist-info → fiqus-2025.10.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
fiqus/MainFiQuS.py,sha256=yJS8aeKO8MUu7pTayHSxxJEIX9Knp052xPM0SUvaU8s,21232
|
|
2
|
+
fiqus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
fiqus/data/DataConductor.py,sha256=MUrGvH9I_rs7iHuVNUP-FFrtA7KE7i-Cagocfq7_lQo,17653
|
|
4
|
+
fiqus/data/DataFiQuS.py,sha256=rOxuYzVk1Gsscnrf1hoyQ8RRRhPOAgGG7xjKWlsOLKQ,5728
|
|
5
|
+
fiqus/data/DataFiQuSCCT.py,sha256=__3AEMvalYm_YgCV9RK-hr9T7e_Dvvx3fBcqbToQWUw,7285
|
|
6
|
+
fiqus/data/DataFiQuSConductor.py,sha256=HpPelDwQsGbgNoX3SdwHQYcTMCHq8vMmi0C-EGpxWeA,3392
|
|
7
|
+
fiqus/data/DataFiQuSConductorAC_Strand.py,sha256=SLERW3APmEiwt0U5DQfqneTaktGetzW5eML3pLQWVGE,38184
|
|
8
|
+
fiqus/data/DataFiQuSMultipole.py,sha256=_rX9zP-xNTZioVmu4NCaFVWF66ipesp8cSiB0pmKsG4,32377
|
|
9
|
+
fiqus/data/DataFiQuSPancake3D.py,sha256=czgDU-h_XBq3OLqFOllr8zLx_MxQoCiWo84DsyOhhbo,136611
|
|
10
|
+
fiqus/data/DataModelCommon.py,sha256=UoMdZSaHTghal0X9DeNiGUzMNdjolwMy9IRNaQQh38s,23491
|
|
11
|
+
fiqus/data/DataMultipole.py,sha256=-UUxtgdn32NKxZt3-p-3p5lDcdxlGN9uPlVeLJB9u2E,6323
|
|
12
|
+
fiqus/data/DataRoxieParser.py,sha256=2qlyUmrFOJw7CT2CDs3psv_B7GNtpkTcJoRwpVHr_C0,9277
|
|
13
|
+
fiqus/data/DataSettings.py,sha256=zs5sEYUk4xjeMc_j8gt3PMji7V0yyMYizpXxBKv0aB0,3799
|
|
14
|
+
fiqus/data/DataWindingsCCT.py,sha256=qqqxO4VG6rsKpNEImkA1hjrUMyS4UFNfVG_ioQd4ML8,1709
|
|
15
|
+
fiqus/data/RegionsModelFiQuS.py,sha256=6FTJBE0D4snVivMnKpS4NPJFFrdoZjmpR4KmMNF74R4,6795
|
|
16
|
+
fiqus/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
fiqus/geom_generators/GeometryCCT.py,sha256=t-b4M3XQ7cZlB-_gR59A5sC6qXIldsfBCDqvxSSS9gs,49902
|
|
18
|
+
fiqus/geom_generators/GeometryConductorAC_Strand.py,sha256=0MXKxyodC4Q6Ie4ryiIqgdRmyFsEZrFAc_Tu9yW5wuA,100610
|
|
19
|
+
fiqus/geom_generators/GeometryMultipole.py,sha256=NXJXZY6WCf37kkjUa3mJG85zX5-uDPSz26HM_z7P7Nw,156639
|
|
20
|
+
fiqus/geom_generators/GeometryPancake3D.py,sha256=mefxCg7It69jSMqV4y1-dniy2rwjs0phcXH0Ly-9myQ,180157
|
|
21
|
+
fiqus/geom_generators/GeometryPancake3DUtils.py,sha256=nmOEKtqzUWB5xbITFkIiO38FeLeIydFxtLrRyZXVQPg,23679
|
|
22
|
+
fiqus/geom_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
+
fiqus/getdp_runners/RunGetdpCCT.py,sha256=tZVJYxL6Knx_6JIbJmjibG6MGkAGU3EmzIMu6ekrYnM,3682
|
|
24
|
+
fiqus/getdp_runners/RunGetdpConductorAC_Strand.py,sha256=VUMMu6qmx8zYhRp1tqZac8tjJbsVhrJmW2EvxP9NcHc,23043
|
|
25
|
+
fiqus/getdp_runners/RunGetdpMultipole.py,sha256=mYinMVQDJx2zAZIypFbl7bybu7h3TKjlExZ5evZpqYU,8200
|
|
26
|
+
fiqus/getdp_runners/RunGetdpPancake3D.py,sha256=bXqd8hRbH-XFmZ50i4q9cE7slNAiiNz2zi3hGI1RLYY,10876
|
|
27
|
+
fiqus/getdp_runners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
fiqus/mains/MainCCT.py,sha256=XpDPlj5n8B70ksOF6AHaeTXB752kN7CMLktISoXqirA,4422
|
|
29
|
+
fiqus/mains/MainConductorAC_Strand.py,sha256=taZ10hr-c3Mmn83WwsKtar6Ezm3DvODwvmkem5_XZI4,5511
|
|
30
|
+
fiqus/mains/MainMultipole.py,sha256=2f1AyYjKikxg5vEknHLsDFBhbL1eOhpPx_YO1Rf_2uk,9700
|
|
31
|
+
fiqus/mains/MainPancake3D.py,sha256=JgmKqcjUOGmodxZoWXfLxKpp-w6_bX1r6XIhqNTQduU,23561
|
|
32
|
+
fiqus/mains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
+
fiqus/mesh_generators/MeshCCT.py,sha256=j2Qj69tdFb-weQnNgv5zi6dkL3ZJxGRdzKqzjlYdIy8,11436
|
|
34
|
+
fiqus/mesh_generators/MeshConductorAC_Strand.py,sha256=EvQ_adA1lUEcgfOQ9-m2G6FuWTioFRQrC0en-Nn_ztg,48041
|
|
35
|
+
fiqus/mesh_generators/MeshMultipole.py,sha256=vxFdVphkpqOCWx5725oGmYHrK6RfB8RoW3bWLsALc78,97227
|
|
36
|
+
fiqus/mesh_generators/MeshPancake3D.py,sha256=u31glrOUPGityJ5S0z4n3SvI_Vqqyh62jv7OXIq3-lY,126975
|
|
37
|
+
fiqus/mesh_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
+
fiqus/parsers/ParserCOND.py,sha256=nQyRRZf2Jbvf6ri5rdhq2P6b52Qbp2tTHuDRT4ChxHI,41376
|
|
39
|
+
fiqus/parsers/ParserDAT.py,sha256=eLbpr74BDoSw6UAeP_qkM55ZLRYPdk8t-RhTXU_oHE4,675
|
|
40
|
+
fiqus/parsers/ParserGetDPOnSection.py,sha256=pTk2EqO1sitoNIztekyEtIy5xpFKou_L3KGsIjJV3R0,8408
|
|
41
|
+
fiqus/parsers/ParserGetDPTimeTable.py,sha256=hAITcOQNJdG_bEUQoQ4VJEamc83BT8zCVp98jlhp1Ug,5098
|
|
42
|
+
fiqus/parsers/ParserMSH.py,sha256=ijLmPPsiy2azo9fN9iZ2aSc_MjueXwZG3GMqruYeucc,1912
|
|
43
|
+
fiqus/parsers/ParserPOS.py,sha256=XtUhuOJJC-OSGY12YefJ-eFafhdQpLbPY4mHwGAtb9U,10162
|
|
44
|
+
fiqus/parsers/ParserRES.py,sha256=782GouJaw0j5u1RLGag6FauSUTuKV7gKa1G4EowSKBE,5984
|
|
45
|
+
fiqus/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
+
fiqus/plotters/PlotPythonCCT.py,sha256=YgphOuiTk0klqZh4d4u81hahtiDp-tx149EpBjyKH-Y,6333
|
|
47
|
+
fiqus/plotters/PlotPythonConductorAC.py,sha256=_7ygaz5WVVGuc4RkgOcZ2NUbqWbowtJMmseAeQ49XbQ,59383
|
|
48
|
+
fiqus/plotters/PlotPythonMultipole.py,sha256=SjJQKHX5mUoMW3yli97W6Kja0Hux8C16YE1U22hQRHY,481
|
|
49
|
+
fiqus/plotters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
fiqus/post_processors/PostProcessCCT.py,sha256=C4BU7IHHWm2CbbLunEmHaHN_iW6y9mlisIed3lKfs_A,28633
|
|
51
|
+
fiqus/post_processors/PostProcessConductorAC.py,sha256=qMtxsmBGRMZVKiDynzfzWh4q6ttOAA2bGPmOzciAgXo,58804
|
|
52
|
+
fiqus/post_processors/PostProcessMultipole.py,sha256=ONYqw0mxY0QKXWB51xw-e6_jelzzKD39vMcBR8J4JXs,25512
|
|
53
|
+
fiqus/post_processors/PostProcessPancake3D.py,sha256=PjGaohIj_oWfqyHH-Fr3CgiOitUpjGjYe2Rm3wqtM1g,12940
|
|
54
|
+
fiqus/post_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
+
fiqus/pre_processors/PreProcessCCT.py,sha256=BDRei7uLdOHxNnsg-r17HcjtvvrST8HUj_lQ1GSmVZo,9217
|
|
56
|
+
fiqus/pre_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
+
fiqus/pro_assemblers/ProAssembler.py,sha256=DrVd1wiuv-7PIj3G38crBu07aMPyE3FOapODJN7wl9E,3572
|
|
58
|
+
fiqus/pro_assemblers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
+
fiqus/pro_material_functions/ironBHcurves.pro,sha256=0Tz1KzZ63G_zaS6dYQ5NYwa9EAtJna0jR61OxsM9J_E,17835
|
|
60
|
+
fiqus/pro_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
|
+
fiqus/pro_templates/combined/CCT_template.pro,sha256=gZKoLj6ZefuSzM7dYkEJW49qlzfiUqEwmifaJP4kOzc,13878
|
|
62
|
+
fiqus/pro_templates/combined/ConductorAC_template.pro,sha256=RN69ycY4vGGPp8YmCHICVGRNfvuEHGB50FxmEeEzrXA,94008
|
|
63
|
+
fiqus/pro_templates/combined/Multipole_template.pro,sha256=H0H_R7sa69EL2lHtIQ0kmz-0Ov0MbZZIpnu1L0pAhPM,97994
|
|
64
|
+
fiqus/pro_templates/combined/Pancake3D_template.pro,sha256=OjWWWAZel5Yk_k4FEFFNkkSFkCv1N0rM2-DRvilH6dc,215797
|
|
65
|
+
fiqus/pro_templates/combined/TSA_materials.pro,sha256=I8zVOP2ZEFqR0y3JcpSQJWaE6I4UeeMU22PtSD8ExCc,12244
|
|
66
|
+
fiqus/pro_templates/combined/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
|
+
fiqus/pro_templates/combined/materials.pro,sha256=D-cBOIMaQyYffIfoR4yRiK69Z6sxHu2QtyjhDIKFiXc,7038
|
|
68
|
+
fiqus/pro_templates/separated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
|
+
fiqus/utils/Utils.py,sha256=HPEN92OxtMxk_xrMD4nfvBsA2BuKuk9_x1Yoy2bF2tw,35613
|
|
70
|
+
fiqus/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
+
fiqus/utils/update_data_settings.py,sha256=Cl_vP-7MXFHG3LiDE8nVtL7CwK9DUvDhxXV7sabP9to,1295
|
|
72
|
+
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
tests/test_FiQuS.py,sha256=mlY5eRp-sE_ubaPG7HHAEsC4Q3iQwI76nfOclPg7m-M,15529
|
|
74
|
+
tests/test_geometry_generators.py,sha256=CknRmySOjTbOfmTm4nC_X7K0FJRytjq2HKzQVKTKD2c,9116
|
|
75
|
+
tests/test_mesh_generators.py,sha256=Qa1wJ8-0vCInkt300iM_tGVkioBHi4jVBKid9LAKfAM,10881
|
|
76
|
+
tests/test_solvers.py,sha256=k2VX19GV2yTCec01ieW-6Z2NAMyMqB9rk5CAp9Ye0Ow,12815
|
|
77
|
+
tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
+
tests/utils/fiqus_test_classes.py,sha256=ynCjYknWGI_pa-lRWQ01aL2SjHz0GTrN4bICW5GlR34,30395
|
|
79
|
+
tests/utils/generate_reference_files_ConductorAC.py,sha256=_jEE6xcqiz52bnmY6Is11QmG-bZ2vdH0k99p733t4N4,1676
|
|
80
|
+
tests/utils/generate_reference_files_Pancake3D.py,sha256=9sULcDOmbotrbYHz8DqGv6Km7ThfltnCHFojHUx193U,3126
|
|
81
|
+
tests/utils/helpers.py,sha256=BQxdHr8N4rGXc2C_YNEeOXxTIDJSUeRyyxLkvWfhiJY,4149
|
|
82
|
+
fiqus-2025.10.0.dist-info/LICENSE.txt,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
|
|
83
|
+
fiqus-2025.10.0.dist-info/METADATA,sha256=tkr-2R-VVJFDApZHI-dWXk2ygofsJIoDFeLlwmRtX3s,8370
|
|
84
|
+
fiqus-2025.10.0.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
85
|
+
fiqus-2025.10.0.dist-info/top_level.txt,sha256=oGzSIyoVc1zYg14o67zI3QFwWsJvqNzNT0-te9WbUQc,12
|
|
86
|
+
fiqus-2025.10.0.dist-info/RECORD,,
|
|
@@ -86,6 +86,10 @@ class TestGeometryGenerators(FiQuSGeometryTests):
|
|
|
86
86
|
reference_geometry_yaml_file = self.get_path_to_reference_file(
|
|
87
87
|
data_model=data_model, file_name='GeometryModel', file_extension="yaml"
|
|
88
88
|
)
|
|
89
|
+
print('Comparing:'
|
|
90
|
+
f'{geometry_yaml_file}'
|
|
91
|
+
' with'
|
|
92
|
+
f'{reference_geometry_yaml_file}')
|
|
89
93
|
self.compare_json_or_yaml_files(geometry_yaml_file, reference_geometry_yaml_file, tolerance=1e-9)
|
|
90
94
|
|
|
91
95
|
def test_Multipole(self):
|
tests/test_mesh_generators.py
CHANGED
|
@@ -94,6 +94,11 @@ class TestMeshGenerators(FiQuSMeshTests):
|
|
|
94
94
|
file_name=model_name,
|
|
95
95
|
file_extension="regions",
|
|
96
96
|
)
|
|
97
|
+
print('Comparing'
|
|
98
|
+
f'{regions_file}'
|
|
99
|
+
'with'
|
|
100
|
+
f'{reference_regions_file}'
|
|
101
|
+
)
|
|
97
102
|
self.compare_json_or_yaml_files(regions_file, reference_regions_file)
|
|
98
103
|
|
|
99
104
|
# def test_CCT(self):
|
tests/test_solvers.py
CHANGED
|
@@ -2,6 +2,12 @@ import unittest
|
|
|
2
2
|
from tests.utils.fiqus_test_classes import FiQuSSolverTests
|
|
3
3
|
from fiqus.data.DataFiQuS import FDM
|
|
4
4
|
import fiqus.data.DataFiQuSPancake3D as Pancake3D
|
|
5
|
+
import os
|
|
6
|
+
import platform
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
linux_getdp_prefix_path = Path("/bin/cerngetdp/")
|
|
10
|
+
windows_getdp_prefix_path = Path("C:/cerngetdp/")
|
|
5
11
|
|
|
6
12
|
|
|
7
13
|
class TestSolvers(FiQuSSolverTests):
|
|
@@ -10,6 +16,16 @@ class TestSolvers(FiQuSSolverTests):
|
|
|
10
16
|
Checks if Pancake3D solvers work correctly by comparing the results to the
|
|
11
17
|
reference results that were checked manually.
|
|
12
18
|
"""
|
|
19
|
+
if os.getenv("CERNGETDP_VERSION_PANCAKE3D") is not None:
|
|
20
|
+
os_name = platform.system()
|
|
21
|
+
|
|
22
|
+
if os_name == "Linux":
|
|
23
|
+
self.getdp_path = linux_getdp_prefix_path / Path(f"pancake3d/bin/getdp_{os.getenv('CERNGETDP_VERSION_PANCAKE3D')}")
|
|
24
|
+
else:
|
|
25
|
+
self.getdp_path = windows_getdp_prefix_path / Path(f"pancake3d/getdp_{os.getenv('CERNGETDP_VERSION_PANCAKE3D')}.exe")
|
|
26
|
+
else:
|
|
27
|
+
print("CERNGETDP_VERSION_PANCAKE3D is not set. Using default getdp path from data settings.")
|
|
28
|
+
|
|
13
29
|
model_names = [
|
|
14
30
|
"TEST_Pancake3D_REF",
|
|
15
31
|
"TEST_Pancake3D_REFStructured",
|
|
@@ -111,6 +127,17 @@ class TestSolvers(FiQuSSolverTests):
|
|
|
111
127
|
Checks if CACStrand solvers work correctly by comparing the results to the
|
|
112
128
|
reference results that were checked manually.
|
|
113
129
|
"""
|
|
130
|
+
if os.getenv("CERNGETDP_VERSION_CAC_STRAND") is not None:
|
|
131
|
+
os_name = platform.system()
|
|
132
|
+
|
|
133
|
+
if os_name == "Linux":
|
|
134
|
+
self.getdp_path = linux_getdp_prefix_path / Path(f"cac_strand/bin/getdp_{os.getenv('CERNGETDP_VERSION_CAC_STRAND')}")
|
|
135
|
+
else:
|
|
136
|
+
self.getdp_path = windows_getdp_prefix_path / Path(f"cac_strand/getdp_{os.getenv('CERNGETDP_VERSION_CAC_STRAND')}.exe")
|
|
137
|
+
else:
|
|
138
|
+
print("CERNGETDP_VERSION_CAC_STRAND is not set. Using default getdp path from data settings.")
|
|
139
|
+
|
|
140
|
+
|
|
114
141
|
model_names = [
|
|
115
142
|
"TEST_CAC_Strand_hexFilaments",
|
|
116
143
|
"TEST_CAC_Strand_adaptiveMesh",
|
|
@@ -140,12 +167,12 @@ class TestSolvers(FiQuSSolverTests):
|
|
|
140
167
|
# Compare the magnetic flux density files:
|
|
141
168
|
pos_file = self.get_path_to_generated_file(
|
|
142
169
|
data_model=data_model,
|
|
143
|
-
file_name="
|
|
170
|
+
file_name="b_Omega",
|
|
144
171
|
file_extension="pos",
|
|
145
172
|
)
|
|
146
173
|
reference_pos_file = self.get_path_to_reference_file(
|
|
147
174
|
data_model=data_model,
|
|
148
|
-
file_name="
|
|
175
|
+
file_name="b_Omega",
|
|
149
176
|
file_extension="pos",
|
|
150
177
|
)
|
|
151
178
|
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-10)
|
|
@@ -153,12 +180,12 @@ class TestSolvers(FiQuSSolverTests):
|
|
|
153
180
|
# Compare the current density files:
|
|
154
181
|
pos_file = self.get_path_to_generated_file(
|
|
155
182
|
data_model=data_model,
|
|
156
|
-
file_name="
|
|
183
|
+
file_name="j_OmegaC",
|
|
157
184
|
file_extension="pos",
|
|
158
185
|
)
|
|
159
186
|
reference_pos_file = self.get_path_to_reference_file(
|
|
160
187
|
data_model=data_model,
|
|
161
|
-
file_name="
|
|
188
|
+
file_name="j_OmegaC",
|
|
162
189
|
file_extension="pos",
|
|
163
190
|
)
|
|
164
191
|
self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-10)
|
|
@@ -169,6 +196,16 @@ class TestSolvers(FiQuSSolverTests):
|
|
|
169
196
|
Checks if Multipole solvers work correctly by comparing the results to the
|
|
170
197
|
reference results that were checked manually.
|
|
171
198
|
"""
|
|
199
|
+
if os.getenv("CERNGETDP_VERSION_MULTIPOLE") is not None:
|
|
200
|
+
os_name = platform.system()
|
|
201
|
+
|
|
202
|
+
if os_name == "Linux":
|
|
203
|
+
self.getdp_path = linux_getdp_prefix_path / Path(f"multipole/bin/getdp_{os.getenv('CERNGETDP_VERSION_MULTIPOLE')}")
|
|
204
|
+
else:
|
|
205
|
+
self.getdp_path = windows_getdp_prefix_path / Path(f"multipole/getdp_{os.getenv('CERNGETDP_VERSION_MULTIPOLE')}.exe")
|
|
206
|
+
else:
|
|
207
|
+
print("CERNGETDP_VERSION_MULTIPOLE is not set. Using default getdp path from data settings.")
|
|
208
|
+
|
|
172
209
|
model_names = [
|
|
173
210
|
"TEST_MULTIPOLE_MBH_1in1_TSA_withQH",
|
|
174
211
|
"TEST_MULTIPOLE_MBH_1in1_TSA",
|
|
@@ -155,12 +155,21 @@ class BaseClassesForTests(unittest.TestCase):
|
|
|
155
155
|
)
|
|
156
156
|
|
|
157
157
|
# Run FiQuS:
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
158
|
+
if hasattr(self, "getdp_path"):
|
|
159
|
+
MainFiQuS(
|
|
160
|
+
model_folder=model_folder,
|
|
161
|
+
input_file_path=self.get_input_file_path(model_name),
|
|
162
|
+
fdm=data_model,
|
|
163
|
+
GetDP_path=self.getdp_path
|
|
164
|
+
# verbose=False,
|
|
165
|
+
)
|
|
166
|
+
else:
|
|
167
|
+
MainFiQuS(
|
|
168
|
+
model_folder=model_folder,
|
|
169
|
+
input_file_path=self.get_input_file_path(model_name),
|
|
170
|
+
fdm=data_model,
|
|
171
|
+
# verbose=False,
|
|
172
|
+
)
|
|
164
173
|
|
|
165
174
|
def get_path_to_generated_file(
|
|
166
175
|
self,
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import shutil
|
|
3
|
-
import sys
|
|
4
|
-
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../../'))) # Add the path to the fiqus package to the system path
|
|
5
|
-
from fiqus.data.DataFiQuS import FDM
|
|
6
|
-
from fiqus.utils.Utils import FilesAndFolders as Util
|
|
7
|
-
from fiqus import MainFiQuS as mf
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# Generate reference files for the models below:
|
|
11
|
-
model_names = [
|
|
12
|
-
"TEST_CAC_Strand_adaptiveMesh",
|
|
13
|
-
"TEST_CAC_Strand_hexFilaments",
|
|
14
|
-
"TEST_CAC_wireInChannel",
|
|
15
|
-
]
|
|
16
|
-
# The run types for the models above:
|
|
17
|
-
run_types = [
|
|
18
|
-
'geometry_and_mesh',
|
|
19
|
-
'start_from_yaml',
|
|
20
|
-
'start_from_yaml',
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
for model_name, run_type in zip(model_names, run_types):
|
|
24
|
-
# get path to the input file:
|
|
25
|
-
input_file = os.path.join(
|
|
26
|
-
os.path.dirname(os.path.dirname(__file__)),
|
|
27
|
-
"_inputs",
|
|
28
|
-
model_name,
|
|
29
|
-
f"{model_name}.yaml",
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
# select _references folder as the output folder:
|
|
33
|
-
output_folder = os.path.join(
|
|
34
|
-
os.path.dirname(os.path.dirname(__file__)), "_references", model_name
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
# if the output folder exists, remove it:
|
|
38
|
-
if os.path.exists(output_folder):
|
|
39
|
-
shutil.rmtree(output_folder)
|
|
40
|
-
|
|
41
|
-
# Create the output folder:
|
|
42
|
-
os.makedirs(output_folder)
|
|
43
|
-
|
|
44
|
-
# Cast input yaml file to FDM
|
|
45
|
-
data_model: FDM = Util.read_data_from_yaml(input_file, FDM)
|
|
46
|
-
|
|
47
|
-
data_model.run.overwrite = True
|
|
48
|
-
|
|
49
|
-
# Make the run type start_from_yaml:
|
|
50
|
-
data_model.run.type = run_type
|
|
51
|
-
|
|
52
|
-
fiqus_instance = mf.MainFiQuS(
|
|
53
|
-
fdm=data_model, model_folder=output_folder, input_file_path=input_file
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
# remove fiqus_instance to avoid memory issues:
|
|
57
|
-
del fiqus_instance
|
|
1
|
+
import os
|
|
2
|
+
import shutil
|
|
3
|
+
import sys
|
|
4
|
+
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../../'))) # Add the path to the fiqus package to the system path
|
|
5
|
+
from fiqus.data.DataFiQuS import FDM
|
|
6
|
+
from fiqus.utils.Utils import FilesAndFolders as Util
|
|
7
|
+
from fiqus import MainFiQuS as mf
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# Generate reference files for the models below:
|
|
11
|
+
model_names = [
|
|
12
|
+
"TEST_CAC_Strand_adaptiveMesh",
|
|
13
|
+
"TEST_CAC_Strand_hexFilaments",
|
|
14
|
+
"TEST_CAC_wireInChannel",
|
|
15
|
+
]
|
|
16
|
+
# The run types for the models above:
|
|
17
|
+
run_types = [
|
|
18
|
+
'geometry_and_mesh',
|
|
19
|
+
'start_from_yaml',
|
|
20
|
+
'start_from_yaml',
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
for model_name, run_type in zip(model_names, run_types):
|
|
24
|
+
# get path to the input file:
|
|
25
|
+
input_file = os.path.join(
|
|
26
|
+
os.path.dirname(os.path.dirname(__file__)),
|
|
27
|
+
"_inputs",
|
|
28
|
+
model_name,
|
|
29
|
+
f"{model_name}.yaml",
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# select _references folder as the output folder:
|
|
33
|
+
output_folder = os.path.join(
|
|
34
|
+
os.path.dirname(os.path.dirname(__file__)), "_references", model_name
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
# if the output folder exists, remove it:
|
|
38
|
+
if os.path.exists(output_folder):
|
|
39
|
+
shutil.rmtree(output_folder)
|
|
40
|
+
|
|
41
|
+
# Create the output folder:
|
|
42
|
+
os.makedirs(output_folder)
|
|
43
|
+
|
|
44
|
+
# Cast input yaml file to FDM
|
|
45
|
+
data_model: FDM = Util.read_data_from_yaml(input_file, FDM)
|
|
46
|
+
|
|
47
|
+
data_model.run.overwrite = True
|
|
48
|
+
|
|
49
|
+
# Make the run type start_from_yaml:
|
|
50
|
+
data_model.run.type = run_type
|
|
51
|
+
|
|
52
|
+
fiqus_instance = mf.MainFiQuS(
|
|
53
|
+
fdm=data_model, model_folder=output_folder, input_file_path=input_file
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
# remove fiqus_instance to avoid memory issues:
|
|
57
|
+
del fiqus_instance
|
tests/utils/helpers.py
CHANGED
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
import functools
|
|
2
|
-
import itertools
|
|
3
|
-
import operator
|
|
4
|
-
import os
|
|
5
|
-
import unittest
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
|
|
8
|
-
import numpy as np
|
|
9
|
-
|
|
10
|
-
from fiqus.data.DataFiQuS import FDM
|
|
11
|
-
from fiqus.utils.Utils import FilesAndFolders as FFs
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class Paths:
|
|
15
|
-
"""
|
|
16
|
-
Helper class used in FiQuS tests to get file and folder paths
|
|
17
|
-
:param model_name: name of yaml input file (without .yaml)
|
|
18
|
-
:param f_extension: file extension to apply to the folders, for example '.brep' or '.msh'
|
|
19
|
-
:return: tuple: fdm, outputs_folder, input_folder, input_file, model_folder, model_file, reference_folder, reference_file
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
def __init__(self, model_name, f_extension=''):
|
|
23
|
-
self.inputs_folder_name = '_inputs'
|
|
24
|
-
self.outputs_folder_name = '_outputs'
|
|
25
|
-
self.references_folder_name = '_references'
|
|
26
|
-
|
|
27
|
-
self.test_outputs_folder = os.path.join(os.getcwd(), self.outputs_folder_name)
|
|
28
|
-
self.inputs_folder = os.path.join(os.getcwd(), self.inputs_folder_name, model_name)
|
|
29
|
-
self.model_folder = os.path.join(os.getcwd(), self.outputs_folder_name, model_name)
|
|
30
|
-
self.references_folder = os.path.join(os.getcwd(), self.references_folder_name, model_name)
|
|
31
|
-
|
|
32
|
-
self.input_file = os.path.join(self.inputs_folder, f'{model_name}.yaml')
|
|
33
|
-
self.model_file = os.path.join(self.model_folder, f'{model_name}.{f_extension}')
|
|
34
|
-
self.reference_file = os.path.join(self.references_folder, f'{model_name}.{f_extension}')
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def filecmp(filename1, filename2):
|
|
38
|
-
"""
|
|
39
|
-
From: https://stackoverflow.com/questions/254350/in-python-is-there-a-concise-way-of-comparing-whether-the-contents-of-two-text
|
|
40
|
-
Do the two files have exactly the same contents?
|
|
41
|
-
"""
|
|
42
|
-
with open(filename1, "rb") as fp1, open(filename2, "rb") as fp2:
|
|
43
|
-
print(f'The {filename1} size is: {os.fstat(fp1.fileno()).st_size} b')
|
|
44
|
-
print(f'The {filename2} size is: {os.fstat(fp2.fileno()).st_size} b')
|
|
45
|
-
if os.fstat(fp1.fileno()).st_size != os.fstat(fp2.fileno()).st_size:
|
|
46
|
-
return False # different sizes ∴ not equal
|
|
47
|
-
|
|
48
|
-
# set up one 4k-reader for each file
|
|
49
|
-
fp1_reader = functools.partial(fp1.read, 4096)
|
|
50
|
-
fp2_reader = functools.partial(fp2.read, 4096)
|
|
51
|
-
|
|
52
|
-
# pair each 4k-chunk from the two readers while they do not return '' (EOF)
|
|
53
|
-
cmp_pairs = zip(iter(fp1_reader, b''), iter(fp2_reader, b''))
|
|
54
|
-
|
|
55
|
-
# return True for all pairs that are not equal
|
|
56
|
-
inequalities = itertools.starmap(operator.ne, cmp_pairs)
|
|
57
|
-
ineqs = []
|
|
58
|
-
for ineq in inequalities:
|
|
59
|
-
ineqs.append(ineq)
|
|
60
|
-
# voila; any() stops at first True value
|
|
61
|
-
print(f'The file comp function gives: {not any(inequalities)}')
|
|
62
|
-
return not any(inequalities)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
def assert_two_parameters(true_value, test_value):
|
|
66
|
-
"""
|
|
67
|
-
Some functions used in multiple test functions
|
|
68
|
-
**Assert two parameters - accepts multiple types**
|
|
69
|
-
"""
|
|
70
|
-
# TODO: improve robustness and readability
|
|
71
|
-
test_case = unittest.TestCase()
|
|
72
|
-
|
|
73
|
-
if isinstance(true_value, np.ndarray) or isinstance(true_value, list):
|
|
74
|
-
if len(true_value) == 1:
|
|
75
|
-
true_value = float(true_value)
|
|
76
|
-
|
|
77
|
-
if isinstance(test_value, np.ndarray) or isinstance(test_value, list):
|
|
78
|
-
if len(test_value) == 1:
|
|
79
|
-
test_value = float(test_value)
|
|
80
|
-
|
|
81
|
-
# Comparison
|
|
82
|
-
if isinstance(test_value, np.ndarray) or isinstance(test_value, list):
|
|
83
|
-
if np.array(true_value).ndim == 2:
|
|
84
|
-
for i, test_row in enumerate(test_value):
|
|
85
|
-
if isinstance(test_row[0], np.floating):
|
|
86
|
-
test_row = np.array(test_row).round(10)
|
|
87
|
-
true_value[i] = np.array(true_value[i]).round(10)
|
|
88
|
-
|
|
89
|
-
test_case.assertListEqual(list(test_row), list(true_value[i]))
|
|
90
|
-
else:
|
|
91
|
-
if isinstance(test_value[0], np.floating):
|
|
92
|
-
test_value = np.array(test_value).round(10)
|
|
93
|
-
true_value = np.array(true_value).round(10)
|
|
94
|
-
|
|
95
|
-
test_case.assertListEqual(list(test_value), list(true_value))
|
|
96
|
-
else:
|
|
97
|
-
test_case.assertEqual(test_value, true_value)
|
|
1
|
+
import functools
|
|
2
|
+
import itertools
|
|
3
|
+
import operator
|
|
4
|
+
import os
|
|
5
|
+
import unittest
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
import numpy as np
|
|
9
|
+
|
|
10
|
+
from fiqus.data.DataFiQuS import FDM
|
|
11
|
+
from fiqus.utils.Utils import FilesAndFolders as FFs
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Paths:
|
|
15
|
+
"""
|
|
16
|
+
Helper class used in FiQuS tests to get file and folder paths
|
|
17
|
+
:param model_name: name of yaml input file (without .yaml)
|
|
18
|
+
:param f_extension: file extension to apply to the folders, for example '.brep' or '.msh'
|
|
19
|
+
:return: tuple: fdm, outputs_folder, input_folder, input_file, model_folder, model_file, reference_folder, reference_file
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
def __init__(self, model_name, f_extension=''):
|
|
23
|
+
self.inputs_folder_name = '_inputs'
|
|
24
|
+
self.outputs_folder_name = '_outputs'
|
|
25
|
+
self.references_folder_name = '_references'
|
|
26
|
+
|
|
27
|
+
self.test_outputs_folder = os.path.join(os.getcwd(), self.outputs_folder_name)
|
|
28
|
+
self.inputs_folder = os.path.join(os.getcwd(), self.inputs_folder_name, model_name)
|
|
29
|
+
self.model_folder = os.path.join(os.getcwd(), self.outputs_folder_name, model_name)
|
|
30
|
+
self.references_folder = os.path.join(os.getcwd(), self.references_folder_name, model_name)
|
|
31
|
+
|
|
32
|
+
self.input_file = os.path.join(self.inputs_folder, f'{model_name}.yaml')
|
|
33
|
+
self.model_file = os.path.join(self.model_folder, f'{model_name}.{f_extension}')
|
|
34
|
+
self.reference_file = os.path.join(self.references_folder, f'{model_name}.{f_extension}')
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def filecmp(filename1, filename2):
|
|
38
|
+
"""
|
|
39
|
+
From: https://stackoverflow.com/questions/254350/in-python-is-there-a-concise-way-of-comparing-whether-the-contents-of-two-text
|
|
40
|
+
Do the two files have exactly the same contents?
|
|
41
|
+
"""
|
|
42
|
+
with open(filename1, "rb") as fp1, open(filename2, "rb") as fp2:
|
|
43
|
+
print(f'The {filename1} size is: {os.fstat(fp1.fileno()).st_size} b')
|
|
44
|
+
print(f'The {filename2} size is: {os.fstat(fp2.fileno()).st_size} b')
|
|
45
|
+
if os.fstat(fp1.fileno()).st_size != os.fstat(fp2.fileno()).st_size:
|
|
46
|
+
return False # different sizes ∴ not equal
|
|
47
|
+
|
|
48
|
+
# set up one 4k-reader for each file
|
|
49
|
+
fp1_reader = functools.partial(fp1.read, 4096)
|
|
50
|
+
fp2_reader = functools.partial(fp2.read, 4096)
|
|
51
|
+
|
|
52
|
+
# pair each 4k-chunk from the two readers while they do not return '' (EOF)
|
|
53
|
+
cmp_pairs = zip(iter(fp1_reader, b''), iter(fp2_reader, b''))
|
|
54
|
+
|
|
55
|
+
# return True for all pairs that are not equal
|
|
56
|
+
inequalities = itertools.starmap(operator.ne, cmp_pairs)
|
|
57
|
+
ineqs = []
|
|
58
|
+
for ineq in inequalities:
|
|
59
|
+
ineqs.append(ineq)
|
|
60
|
+
# voila; any() stops at first True value
|
|
61
|
+
print(f'The file comp function gives: {not any(inequalities)}')
|
|
62
|
+
return not any(inequalities)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def assert_two_parameters(true_value, test_value):
|
|
66
|
+
"""
|
|
67
|
+
Some functions used in multiple test functions
|
|
68
|
+
**Assert two parameters - accepts multiple types**
|
|
69
|
+
"""
|
|
70
|
+
# TODO: improve robustness and readability
|
|
71
|
+
test_case = unittest.TestCase()
|
|
72
|
+
|
|
73
|
+
if isinstance(true_value, np.ndarray) or isinstance(true_value, list):
|
|
74
|
+
if len(true_value) == 1:
|
|
75
|
+
true_value = float(true_value)
|
|
76
|
+
|
|
77
|
+
if isinstance(test_value, np.ndarray) or isinstance(test_value, list):
|
|
78
|
+
if len(test_value) == 1:
|
|
79
|
+
test_value = float(test_value)
|
|
80
|
+
|
|
81
|
+
# Comparison
|
|
82
|
+
if isinstance(test_value, np.ndarray) or isinstance(test_value, list):
|
|
83
|
+
if np.array(true_value).ndim == 2:
|
|
84
|
+
for i, test_row in enumerate(test_value):
|
|
85
|
+
if isinstance(test_row[0], np.floating):
|
|
86
|
+
test_row = np.array(test_row).round(10)
|
|
87
|
+
true_value[i] = np.array(true_value[i]).round(10)
|
|
88
|
+
|
|
89
|
+
test_case.assertListEqual(list(test_row), list(true_value[i]))
|
|
90
|
+
else:
|
|
91
|
+
if isinstance(test_value[0], np.floating):
|
|
92
|
+
test_value = np.array(test_value).round(10)
|
|
93
|
+
true_value = np.array(true_value).round(10)
|
|
94
|
+
|
|
95
|
+
test_case.assertListEqual(list(test_value), list(true_value))
|
|
96
|
+
else:
|
|
97
|
+
test_case.assertEqual(test_value, true_value)
|
fiqus-2025.1.1.dist-info/RECORD
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
fiqus/MainFiQuS.py,sha256=k1dPUJMXQs-OHc_CbwuyCH1qMxV_7LnRpy5RKbMlRm8,22011
|
|
2
|
-
fiqus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
fiqus/data/DataConductor.py,sha256=wthDctDDa81GO9TNTHwTTuQ9WK8fmyDmwqeEja8gFFM,13618
|
|
4
|
-
fiqus/data/DataFiQuS.py,sha256=8gT8xGA_kUrOiuAyUbSSc08ECK8tIcBlmVvGF-zWCH4,7808
|
|
5
|
-
fiqus/data/DataFiQuSCCT.py,sha256=pXBYgeuAb10H46nB1oRJjz4uZDMzkgCgjotXc8phfHs,7137
|
|
6
|
-
fiqus/data/DataFiQuSConductor.py,sha256=sa_enAWP3yW0sJwpfmad173ewIv4eFC8G75UPnKnB5w,2626
|
|
7
|
-
fiqus/data/DataFiQuSConductorAC_Strand.py,sha256=kkzcXLHKFScePjJ9tffAjBDbsV1RoCTVodZ-HBTdiO8,27909
|
|
8
|
-
fiqus/data/DataFiQuSMultipole.py,sha256=_rX9zP-xNTZioVmu4NCaFVWF66ipesp8cSiB0pmKsG4,32377
|
|
9
|
-
fiqus/data/DataFiQuSPancake3D.py,sha256=czgDU-h_XBq3OLqFOllr8zLx_MxQoCiWo84DsyOhhbo,136611
|
|
10
|
-
fiqus/data/DataMultipole.py,sha256=RObn5MGoe_Xtk-8mhB1eoil1Jd5DS6BhiLUuNmLbb-E,6793
|
|
11
|
-
fiqus/data/DataRoxieParser.py,sha256=v2F8ytjNnKLrVFizeBELb2dXu-78NH44CDLXO3CAP3I,9157
|
|
12
|
-
fiqus/data/DataSettings.py,sha256=zs5sEYUk4xjeMc_j8gt3PMji7V0yyMYizpXxBKv0aB0,3799
|
|
13
|
-
fiqus/data/DataWindingsCCT.py,sha256=45af8J8iAAiRlhO1eIjHsngNUWgpZAZ_UGL3aF8AJCI,1672
|
|
14
|
-
fiqus/data/RegionsModelFiQuS.py,sha256=xS4GONADNJuy-Vm81bR-RcMa-8m3aMH_WjOXtbDRlsQ,7778
|
|
15
|
-
fiqus/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
fiqus/geom_generators/GeometryCCT.py,sha256=W30vm8qmi_xe6Mkxqj8z3Wjs8nn0C9e2GnghsOxE9Tk,49067
|
|
17
|
-
fiqus/geom_generators/GeometryConductorAC_Strand.py,sha256=SKjzJ5I7D1Fc2UJSaHy_QS1TxHho5pk95v0kgxV7fyk,74625
|
|
18
|
-
fiqus/geom_generators/GeometryMultipole.py,sha256=eaxvzuayuUPc0TWFxScpImIpEze6KWfJ74KvvteldfQ,156572
|
|
19
|
-
fiqus/geom_generators/GeometryPancake3D.py,sha256=8SAWnJfqL888SOEaMV1f_-02iDR6O8-GKrklfQ5g-mM,180145
|
|
20
|
-
fiqus/geom_generators/GeometryPancake3DUtils.py,sha256=nmOEKtqzUWB5xbITFkIiO38FeLeIydFxtLrRyZXVQPg,23679
|
|
21
|
-
fiqus/geom_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
fiqus/getdp_runners/RunGetdpCCT.py,sha256=hXRy90LAFMFl52gV6SrEwW5KYyvF3D0fqTFoN0P017U,3043
|
|
23
|
-
fiqus/getdp_runners/RunGetdpConductorAC_Strand.py,sha256=SjaRNxGs7J1RQWVS_zocHF0rtxtD6UcOf28kxWDHKNo,9997
|
|
24
|
-
fiqus/getdp_runners/RunGetdpMultipole.py,sha256=mYinMVQDJx2zAZIypFbl7bybu7h3TKjlExZ5evZpqYU,8200
|
|
25
|
-
fiqus/getdp_runners/RunGetdpPancake3D.py,sha256=RLQbuYKdrelYgKBFcZ8-lZVSJLQ8gmNI0sXbJlrkYZk,10852
|
|
26
|
-
fiqus/getdp_runners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
fiqus/mains/MainCCT.py,sha256=XpDPlj5n8B70ksOF6AHaeTXB752kN7CMLktISoXqirA,4422
|
|
28
|
-
fiqus/mains/MainConductorAC_Strand.py,sha256=UsZV7t6hRSkwUMwsoWn2m7x-PuVM6yABqBjgLpC_9Qg,5015
|
|
29
|
-
fiqus/mains/MainMultipole.py,sha256=2a6f1q6w4eBK7iME6FSPGc0zX2DEX5aU2y1YehTIXlk,9634
|
|
30
|
-
fiqus/mains/MainPancake3D.py,sha256=FjMltWLzZN0-VqieexqhWMunMujTepM7BbAjlw6ULEg,23589
|
|
31
|
-
fiqus/mains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
fiqus/mesh_generators/MeshCCT.py,sha256=e2oERrb2Vp7W8eAptijFq1vi-cUbYS_T3jCDqH3foIg,11227
|
|
33
|
-
fiqus/mesh_generators/MeshConductorAC_Strand.py,sha256=bz8kzFDd_XnRA892ifuCp11zMTZMQ5NdsNKSslP7gZc,42466
|
|
34
|
-
fiqus/mesh_generators/MeshMultipole.py,sha256=mjdjzw5RGlggoXAVvUqFM43yGXSwDNbta0z1l76c7uc,97181
|
|
35
|
-
fiqus/mesh_generators/MeshPancake3D.py,sha256=dIL-F070C5xlSK6m4kSA8D3OeKuVRoy0Ptz-4KHz4CI,126821
|
|
36
|
-
fiqus/mesh_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
fiqus/parsers/ParserCOND.py,sha256=nQyRRZf2Jbvf6ri5rdhq2P6b52Qbp2tTHuDRT4ChxHI,41376
|
|
38
|
-
fiqus/parsers/ParserDAT.py,sha256=SPJHDbPuk1e7F9FZ3i7oRvOvYGO4LIkpy-ROGJBUEQ0,659
|
|
39
|
-
fiqus/parsers/ParserGetDPOnSection.py,sha256=fKDiGJfsVHceZ4ZPnQo3ue2COd7AlbnrkGsX5pXaYqA,8196
|
|
40
|
-
fiqus/parsers/ParserGetDPTimeTable.py,sha256=-OBbvt89lbxkUy8pzOciq9qPs47d_dK_vuMXndfvMmE,4964
|
|
41
|
-
fiqus/parsers/ParserMSH.py,sha256=ZgLQQhEukhvxp2-ccbIQu4uWlSOp3yCa-8thEKi61H8,1859
|
|
42
|
-
fiqus/parsers/ParserPOS.py,sha256=tihug_0UnCP7ELJK0Tl2gGrHxvCC5V4Q7tpv4zd-cVY,9907
|
|
43
|
-
fiqus/parsers/ParserRES.py,sha256=e8M8bsIgkAzr0tDcQSeEgsLVLGOmE_j6ju3fPTPQEU4,5842
|
|
44
|
-
fiqus/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
fiqus/plotters/PlotPythonCCT.py,sha256=WITIiKSfHSvGVL52PiMWxo6ydeswe-PBE9Ta-QnMJ9E,6200
|
|
46
|
-
fiqus/plotters/PlotPythonConductorAC.py,sha256=rugT6Czctk4lrZ0NBt23ZFBVZlkZD-zihHcbgoiwP9c,45465
|
|
47
|
-
fiqus/plotters/PlotPythonMultipole.py,sha256=BYbdeEDgB3sqeRR7_uHb2CVm2SQ3pAbvhkLJBcuS-Yg,463
|
|
48
|
-
fiqus/plotters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
fiqus/post_processors/PostProcessCCT.py,sha256=csozi3iyW5cRoT97em0F0s_Egd-DG8wRAiWfLnNl6Sk,28003
|
|
50
|
-
fiqus/post_processors/PostProcessConductorAC.py,sha256=Mv3CalGj2_pF383nZHZ-uv1j-3nz8HUjsd1jSd6AY8M,2135
|
|
51
|
-
fiqus/post_processors/PostProcessMultipole.py,sha256=y7WbdDMJx68DVXeokD0chuJitU5j39FWGOIlqKsxELA,25398
|
|
52
|
-
fiqus/post_processors/PostProcessPancake3D.py,sha256=PjGaohIj_oWfqyHH-Fr3CgiOitUpjGjYe2Rm3wqtM1g,12940
|
|
53
|
-
fiqus/post_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
-
fiqus/pre_processors/PreProcessCCT.py,sha256=z1TWuXNnSK2Jz93P-73XRZZO7GAlyLLEiIYnS39byCE,9042
|
|
55
|
-
fiqus/pre_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
fiqus/pro_assemblers/ProAssembler.py,sha256=DrVd1wiuv-7PIj3G38crBu07aMPyE3FOapODJN7wl9E,3572
|
|
57
|
-
fiqus/pro_assemblers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
-
fiqus/pro_material_functions/ironBHcurves.pro,sha256=-4xfRg4BYefTEoNawPo3nbsrJJmiSxdOTQG4aAzbvLI,17589
|
|
59
|
-
fiqus/pro_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
|
-
fiqus/pro_templates/combined/CCT_template.pro,sha256=6r_fz9bH7AReCfDn33lyu472kjB0rkTma9_r4vBqV0U,13558
|
|
61
|
-
fiqus/pro_templates/combined/ConductorAC_template.pro,sha256=8aZwuRveHY2R0bEvC9Ysz_SISPLU7eNvi5szO_RUEtA,60694
|
|
62
|
-
fiqus/pro_templates/combined/Multipole_template.pro,sha256=5FOXwPpxQKpGYFEswrFj5lL9t652i6mWz4PYDp5q4mg,97396
|
|
63
|
-
fiqus/pro_templates/combined/Pancake3D_template.pro,sha256=CAmIVgzygFJSXDozuNeCL8eyId1HnMjVeyQOl-O4Suk,211330
|
|
64
|
-
fiqus/pro_templates/combined/TSA_materials.pro,sha256=I8zVOP2ZEFqR0y3JcpSQJWaE6I4UeeMU22PtSD8ExCc,12244
|
|
65
|
-
fiqus/pro_templates/combined/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
-
fiqus/pro_templates/combined/materials.pro,sha256=D-cBOIMaQyYffIfoR4yRiK69Z6sxHu2QtyjhDIKFiXc,7038
|
|
67
|
-
fiqus/pro_templates/separated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
|
-
fiqus/utils/Utils.py,sha256=J8HECe0Yz50nTWtpUb8PGJGrX75wgvUkD30LopHTScw,35462
|
|
69
|
-
fiqus/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
-
fiqus/utils/update_data_settings.py,sha256=Cl_vP-7MXFHG3LiDE8nVtL7CwK9DUvDhxXV7sabP9to,1295
|
|
71
|
-
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
-
tests/test_FiQuS.py,sha256=mlY5eRp-sE_ubaPG7HHAEsC4Q3iQwI76nfOclPg7m-M,15529
|
|
73
|
-
tests/test_geometry_generators.py,sha256=1bk3yYaVIQ_XabaIrqIrwjOSvC0eCtBz7NeIEDlPCq8,8944
|
|
74
|
-
tests/test_mesh_generators.py,sha256=vGFP6AoMpMcpBDXqTS4323RuGhJIJ_xKu39Z7mWnm9I,10699
|
|
75
|
-
tests/test_solvers.py,sha256=-P8Q_HIX3s02e23bk9_SW672v7Vwgs1-e503tenFWoc,10955
|
|
76
|
-
tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
|
-
tests/utils/fiqus_test_classes.py,sha256=i7G0wWA7MNdj-pAnXnGrpnv3KXx9JMDRUbKwFMRgJLQ,30050
|
|
78
|
-
tests/utils/generate_reference_files_ConductorAC.py,sha256=F5KK1AmHg1AmjZL6wRoR4R4kPpQu5KyLZtk1EnDsS1I,1619
|
|
79
|
-
tests/utils/generate_reference_files_Pancake3D.py,sha256=9sULcDOmbotrbYHz8DqGv6Km7ThfltnCHFojHUx193U,3126
|
|
80
|
-
tests/utils/helpers.py,sha256=bX3jz6Cux175TVWMpeaMo1SspQAewCSzKsC4ZwRBRR4,4052
|
|
81
|
-
fiqus-2025.1.1.dist-info/LICENSE.txt,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
|
|
82
|
-
fiqus-2025.1.1.dist-info/METADATA,sha256=j8fv8nUs6lZnzXzRd1TQvnsCuQMXcvlgdd8uAnCW7oU,7915
|
|
83
|
-
fiqus-2025.1.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
84
|
-
fiqus-2025.1.1.dist-info/top_level.txt,sha256=oGzSIyoVc1zYg14o67zI3QFwWsJvqNzNT0-te9WbUQc,12
|
|
85
|
-
fiqus-2025.1.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|