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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. fiqus/MainFiQuS.py +1 -8
  2. fiqus/data/DataConductor.py +4 -8
  3. fiqus/data/DataFiQuSMultipole.py +358 -167
  4. fiqus/data/DataModelCommon.py +30 -15
  5. fiqus/data/DataMultipole.py +33 -10
  6. fiqus/data/DataWindingsCCT.py +37 -37
  7. fiqus/data/RegionsModelFiQuS.py +1 -1
  8. fiqus/geom_generators/GeometryMultipole.py +751 -54
  9. fiqus/getdp_runners/RunGetdpMultipole.py +181 -31
  10. fiqus/mains/MainMultipole.py +109 -17
  11. fiqus/mesh_generators/MeshCCT.py +209 -209
  12. fiqus/mesh_generators/MeshMultipole.py +938 -263
  13. fiqus/parsers/ParserCOND.py +2 -1
  14. fiqus/parsers/ParserDAT.py +16 -16
  15. fiqus/parsers/ParserGetDPOnSection.py +212 -212
  16. fiqus/parsers/ParserGetDPTimeTable.py +134 -134
  17. fiqus/parsers/ParserMSH.py +53 -53
  18. fiqus/parsers/ParserRES.py +142 -142
  19. fiqus/plotters/PlotPythonCCT.py +133 -133
  20. fiqus/plotters/PlotPythonMultipole.py +18 -18
  21. fiqus/post_processors/PostProcessMultipole.py +16 -6
  22. fiqus/pre_processors/PreProcessCCT.py +175 -175
  23. fiqus/pro_assemblers/ProAssembler.py +3 -3
  24. fiqus/pro_material_functions/ironBHcurves.pro +246 -246
  25. fiqus/pro_templates/combined/CC_Module.pro +1213 -0
  26. fiqus/pro_templates/combined/ConductorAC_template.pro +1025 -0
  27. fiqus/pro_templates/combined/Multipole_template.pro +2738 -1338
  28. fiqus/pro_templates/combined/TSA_materials.pro +102 -2
  29. fiqus/pro_templates/combined/materials.pro +54 -3
  30. fiqus/utils/Utils.py +18 -25
  31. fiqus/utils/update_data_settings.py +1 -1
  32. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/METADATA +64 -68
  33. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/RECORD +42 -40
  34. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/WHEEL +1 -1
  35. tests/test_geometry_generators.py +29 -32
  36. tests/test_mesh_generators.py +35 -34
  37. tests/test_solvers.py +32 -31
  38. tests/utils/fiqus_test_classes.py +396 -147
  39. tests/utils/generate_reference_files_ConductorAC.py +57 -57
  40. tests/utils/helpers.py +76 -1
  41. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/LICENSE.txt +0 -0
  42. {fiqus-2026.1.0.dist-info → fiqus-2026.1.2.dist-info}/top_level.txt +0 -0
tests/test_solvers.py CHANGED
@@ -85,12 +85,12 @@ class TestSolvers(FiQuSSolverTests):
85
85
  # Compare the pro files:
86
86
  pro_file = self.get_path_to_generated_file(
87
87
  data_model=data_model,
88
- file_name=model_name,
88
+ model_name=model_name,
89
89
  file_extension="pro",
90
90
  )
91
91
  reference_pro_file = self.get_path_to_reference_file(
92
92
  data_model=data_model,
93
- file_name=model_name,
93
+ model_name=model_name,
94
94
  file_extension="pro",
95
95
  )
96
96
  self.compare_text_files(pro_file, reference_pro_file)
@@ -99,12 +99,12 @@ class TestSolvers(FiQuSSolverTests):
99
99
  if solve_type in ["electromagnetic", "weaklyCoupled", "stronglyCoupled"]:
100
100
  pos_file = self.get_path_to_generated_file(
101
101
  data_model=data_model,
102
- file_name="MagneticField-DefaultFormat",
102
+ model_name="MagneticField-DefaultFormat",
103
103
  file_extension="pos",
104
104
  )
105
105
  reference_pos_file = self.get_path_to_reference_file(
106
106
  data_model=data_model,
107
- file_name="MagneticField-DefaultFormat",
107
+ model_name="MagneticField-DefaultFormat",
108
108
  file_extension="pos",
109
109
  )
110
110
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-3)
@@ -112,12 +112,12 @@ class TestSolvers(FiQuSSolverTests):
112
112
  if solve_type in ["weaklyCoupled", "stronglyCoupled", "thermal"]:
113
113
  pos_file = self.get_path_to_generated_file(
114
114
  data_model=data_model,
115
- file_name="Temperature-DefaultFormat",
115
+ model_name="Temperature-DefaultFormat",
116
116
  file_extension="pos",
117
117
  )
118
118
  reference_pos_file = self.get_path_to_reference_file(
119
119
  data_model=data_model,
120
- file_name="Temperature-DefaultFormat",
120
+ model_name="Temperature-DefaultFormat",
121
121
  file_extension="pos",
122
122
  )
123
123
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-3)
@@ -152,12 +152,12 @@ class TestSolvers(FiQuSSolverTests):
152
152
  # Compare the pro files:
153
153
  pro_file = self.get_path_to_generated_file(
154
154
  data_model=data_model,
155
- file_name=model_name,
155
+ model_name=model_name,
156
156
  file_extension="pro",
157
157
  )
158
158
  reference_pro_file = self.get_path_to_reference_file(
159
159
  data_model=data_model,
160
- file_name=model_name,
160
+ model_name=model_name,
161
161
  file_extension="pro",
162
162
  )
163
163
  # This makes no sense as long as the development on the Strand model pro-template is ongoing ...
@@ -167,12 +167,12 @@ class TestSolvers(FiQuSSolverTests):
167
167
  # Compare the magnetic flux density files:
168
168
  pos_file = self.get_path_to_generated_file(
169
169
  data_model=data_model,
170
- file_name="b_Omega",
170
+ model_name="b_Omega",
171
171
  file_extension="pos",
172
172
  )
173
173
  reference_pos_file = self.get_path_to_reference_file(
174
174
  data_model=data_model,
175
- file_name="b_Omega",
175
+ model_name="b_Omega",
176
176
  file_extension="pos",
177
177
  )
178
178
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-10)
@@ -180,12 +180,12 @@ class TestSolvers(FiQuSSolverTests):
180
180
  # Compare the current density files:
181
181
  pos_file = self.get_path_to_generated_file(
182
182
  data_model=data_model,
183
- file_name="j_OmegaC",
183
+ model_name="j_OmegaC",
184
184
  file_extension="pos",
185
185
  )
186
186
  reference_pos_file = self.get_path_to_reference_file(
187
187
  data_model=data_model,
188
- file_name="j_OmegaC",
188
+ model_name="j_OmegaC",
189
189
  file_extension="pos",
190
190
  )
191
191
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-10)
@@ -218,12 +218,12 @@ class TestSolvers(FiQuSSolverTests):
218
218
  # Compare the current density files:
219
219
  pos_file = self.get_path_to_generated_file(
220
220
  data_model=data_model,
221
- file_name="jz",
221
+ model_name="jz",
222
222
  file_extension="pos",
223
223
  )
224
224
  reference_pos_file = self.get_path_to_reference_file(
225
225
  data_model=data_model,
226
- file_name="jz",
226
+ model_name="jz",
227
227
  file_extension="pos",
228
228
  )
229
229
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
@@ -231,12 +231,12 @@ class TestSolvers(FiQuSSolverTests):
231
231
  # Compare the power loss files:
232
232
  pos_file = self.get_path_to_generated_file(
233
233
  data_model=data_model,
234
- file_name="m",
234
+ model_name="m",
235
235
  file_extension="pos",
236
236
  )
237
237
  reference_pos_file = self.get_path_to_reference_file(
238
238
  data_model=data_model,
239
- file_name="m",
239
+ model_name="m",
240
240
  file_extension="pos",
241
241
  )
242
242
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
@@ -268,12 +268,12 @@ class TestSolvers(FiQuSSolverTests):
268
268
  # Compare the current density files:
269
269
  pos_file = self.get_path_to_generated_file(
270
270
  data_model=data_model,
271
- file_name="last_magnetic_field",
271
+ model_name="last_magnetic_field",
272
272
  file_extension="pos",
273
273
  )
274
274
  reference_pos_file = self.get_path_to_reference_file(
275
275
  data_model=data_model,
276
- file_name="last_magnetic_field",
276
+ model_name="last_magnetic_field",
277
277
  file_extension="pos",
278
278
  )
279
279
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-2, abs_tolerance=1E-10)
@@ -305,12 +305,12 @@ class TestSolvers(FiQuSSolverTests):
305
305
  # Compare the current density files:
306
306
  pos_file = self.get_path_to_generated_file(
307
307
  data_model=data_model,
308
- file_name="js",
308
+ model_name="js",
309
309
  file_extension="pos",
310
310
  )
311
311
  reference_pos_file = self.get_path_to_reference_file(
312
312
  data_model=data_model,
313
- file_name="js",
313
+ model_name="js",
314
314
  file_extension="pos",
315
315
  )
316
316
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
@@ -318,12 +318,12 @@ class TestSolvers(FiQuSSolverTests):
318
318
  # Compare the power loss files:
319
319
  pos_file = self.get_path_to_generated_file(
320
320
  data_model=data_model,
321
- file_name="p_tot",
321
+ model_name="p_tot",
322
322
  file_extension="pos",
323
323
  )
324
324
  reference_pos_file = self.get_path_to_reference_file(
325
325
  data_model=data_model,
326
- file_name="p_tot",
326
+ model_name="p_tot",
327
327
  file_extension="pos",
328
328
  )
329
329
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1E-10)
@@ -351,6 +351,7 @@ class TestSolvers(FiQuSSolverTests):
351
351
  "TEST_MULTIPOLE_SMC_TSA",
352
352
  "TEST_MULTIPOLE_SMC_REF",
353
353
  "TEST_MULTIPOLE_4COND_TSA",
354
+ "TEST_MULTIPOLE_FALCOND_C_TSA_COLLAR_POLE"
354
355
  ]
355
356
  for model_name in model_names:
356
357
  with self.subTest(model_name=model_name):
@@ -361,26 +362,26 @@ class TestSolvers(FiQuSSolverTests):
361
362
  # Compare the pro files:
362
363
  pro_file = self.get_path_to_generated_file(
363
364
  data_model=data_model,
364
- file_name=model_name,
365
+ model_name=model_name,
365
366
  file_extension="pro",
366
367
  )
367
368
  reference_pro_file = self.get_path_to_reference_file(
368
369
  data_model=data_model,
369
- file_name=model_name,
370
+ model_name=model_name,
370
371
  file_extension="pro",
371
372
  )
372
373
 
373
- self.compare_text_files(pro_file, reference_pro_file, exclude_lines_keywords=["NameOfMesh"], exclude_first_n_lines=1)
374
+ self.compare_text_files(pro_file, reference_pro_file, exclude_lines_keywords=["NameOfMesh", "Include"], exclude_first_n_lines=1)
374
375
 
375
376
  # Compare the magnetic flux density files:
376
377
  pos_file = self.get_path_to_generated_file(
377
378
  data_model=data_model,
378
- file_name="b_Omega",
379
+ model_name="b_Omega",
379
380
  file_extension="pos",
380
381
  )
381
382
  reference_pos_file = self.get_path_to_reference_file(
382
383
  data_model=data_model,
383
- file_name="b_Omega",
384
+ model_name="b_Omega",
384
385
  file_extension="pos",
385
386
  )
386
387
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-2)
@@ -388,12 +389,12 @@ class TestSolvers(FiQuSSolverTests):
388
389
  # Compare the temperature files:
389
390
  pos_file = self.get_path_to_generated_file(
390
391
  data_model=data_model,
391
- file_name="T_Omega_c",
392
+ model_name="T_Omega_c",
392
393
  file_extension="pos",
393
394
  )
394
395
  reference_pos_file = self.get_path_to_reference_file(
395
396
  data_model=data_model,
396
- file_name="T_Omega_c",
397
+ model_name="T_Omega_c",
397
398
  file_extension="pos",
398
399
  )
399
400
  self.compare_pos_files(pos_file, reference_pos_file, rel_tolerance=1e-3, abs_tolerance=1e-2)
@@ -401,12 +402,12 @@ class TestSolvers(FiQuSSolverTests):
401
402
  # Compare the solve yaml files
402
403
  solve_file = self.get_path_to_generated_file(
403
404
  data_model=data_model,
404
- file_name="solve",
405
+ model_name="solve",
405
406
  file_extension="yaml",
406
407
  )
407
408
  reference_solve_file = self.get_path_to_reference_file(
408
409
  data_model=data_model,
409
- file_name="solve",
410
+ model_name="solve",
410
411
  file_extension="yaml",
411
412
  )
412
413
  self.compare_json_or_yaml_files(solve_file, reference_solve_file)