fiqus 2025.2.0__tar.gz → 2025.11.0__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 (95) hide show
  1. {fiqus-2025.2.0 → fiqus-2025.11.0}/PKG-INFO +66 -2
  2. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/MainFiQuS.py +24 -28
  3. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataConductor.py +350 -301
  4. fiqus-2025.11.0/fiqus/data/DataFiQuS.py +154 -0
  5. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataFiQuSCCT.py +150 -150
  6. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataFiQuSConductor.py +97 -84
  7. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataFiQuSConductorAC_Strand.py +701 -565
  8. fiqus-2025.11.0/fiqus/data/DataModelCommon.py +439 -0
  9. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataMultipole.py +0 -13
  10. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataRoxieParser.py +7 -0
  11. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataWindingsCCT.py +37 -37
  12. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/RegionsModelFiQuS.py +61 -104
  13. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/geom_generators/GeometryCCT.py +904 -905
  14. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/geom_generators/GeometryConductorAC_Strand.py +1863 -1391
  15. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/geom_generators/GeometryMultipole.py +5 -4
  16. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/geom_generators/GeometryPancake3D.py +1 -1
  17. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/getdp_runners/RunGetdpCCT.py +13 -4
  18. fiqus-2025.11.0/fiqus/getdp_runners/RunGetdpConductorAC_Strand.py +342 -0
  19. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/getdp_runners/RunGetdpPancake3D.py +2 -2
  20. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mains/MainConductorAC_Strand.py +141 -133
  21. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mains/MainMultipole.py +6 -5
  22. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mains/MainPancake3D.py +3 -4
  23. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mesh_generators/MeshCCT.py +209 -209
  24. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mesh_generators/MeshConductorAC_Strand.py +709 -656
  25. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mesh_generators/MeshMultipole.py +43 -46
  26. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/ParserDAT.py +16 -16
  27. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/ParserGetDPOnSection.py +212 -212
  28. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/ParserGetDPTimeTable.py +134 -134
  29. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/ParserMSH.py +53 -53
  30. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/ParserPOS.py +214 -214
  31. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/ParserRES.py +142 -142
  32. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/plotters/PlotPythonCCT.py +133 -133
  33. fiqus-2025.11.0/fiqus/plotters/PlotPythonConductorAC.py +1079 -0
  34. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/plotters/PlotPythonMultipole.py +18 -18
  35. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/post_processors/PostProcessCCT.py +444 -440
  36. fiqus-2025.11.0/fiqus/post_processors/PostProcessConductorAC.py +997 -0
  37. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/post_processors/PostProcessMultipole.py +19 -19
  38. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pre_processors/PreProcessCCT.py +175 -175
  39. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_material_functions/ironBHcurves.pro +246 -246
  40. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/combined/CCT_template.pro +275 -274
  41. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/combined/ConductorAC_template.pro +1474 -1025
  42. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/combined/Multipole_template.pro +5 -5
  43. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/utils/Utils.py +12 -7
  44. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus.egg-info/PKG-INFO +66 -2
  45. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus.egg-info/SOURCES.txt +1 -0
  46. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus.egg-info/requires.txt +2 -0
  47. {fiqus-2025.2.0 → fiqus-2025.11.0}/setup.py +2 -1
  48. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/test_geometry_generators.py +4 -0
  49. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/test_mesh_generators.py +5 -0
  50. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/test_solvers.py +41 -4
  51. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/utils/fiqus_test_classes.py +15 -6
  52. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/utils/generate_reference_files_ConductorAC.py +57 -57
  53. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/utils/helpers.py +97 -97
  54. fiqus-2025.2.0/fiqus/data/DataFiQuS.py +0 -227
  55. fiqus-2025.2.0/fiqus/getdp_runners/RunGetdpConductorAC_Strand.py +0 -202
  56. fiqus-2025.2.0/fiqus/plotters/PlotPythonConductorAC.py +0 -855
  57. fiqus-2025.2.0/fiqus/post_processors/PostProcessConductorAC.py +0 -49
  58. {fiqus-2025.2.0 → fiqus-2025.11.0}/LICENSE.txt +0 -0
  59. {fiqus-2025.2.0 → fiqus-2025.11.0}/README.md +0 -0
  60. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/__init__.py +0 -0
  61. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataFiQuSMultipole.py +0 -0
  62. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataFiQuSPancake3D.py +0 -0
  63. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/DataSettings.py +0 -0
  64. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/data/__init__.py +0 -0
  65. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/geom_generators/GeometryPancake3DUtils.py +0 -0
  66. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/geom_generators/__init__.py +0 -0
  67. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/getdp_runners/RunGetdpMultipole.py +0 -0
  68. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/getdp_runners/__init__.py +0 -0
  69. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mains/MainCCT.py +0 -0
  70. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mains/__init__.py +0 -0
  71. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mesh_generators/MeshPancake3D.py +0 -0
  72. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/mesh_generators/__init__.py +0 -0
  73. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/ParserCOND.py +0 -0
  74. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/parsers/__init__.py +0 -0
  75. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/plotters/__init__.py +0 -0
  76. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/post_processors/PostProcessPancake3D.py +0 -0
  77. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/post_processors/__init__.py +0 -0
  78. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pre_processors/__init__.py +0 -0
  79. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_assemblers/ProAssembler.py +0 -0
  80. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_assemblers/__init__.py +0 -0
  81. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/__init__.py +0 -0
  82. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/combined/Pancake3D_template.pro +0 -0
  83. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/combined/TSA_materials.pro +0 -0
  84. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/combined/__init__.py +0 -0
  85. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/combined/materials.pro +0 -0
  86. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/pro_templates/separated/__init__.py +0 -0
  87. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/utils/__init__.py +0 -0
  88. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus/utils/update_data_settings.py +0 -0
  89. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus.egg-info/dependency_links.txt +0 -0
  90. {fiqus-2025.2.0 → fiqus-2025.11.0}/fiqus.egg-info/top_level.txt +0 -0
  91. {fiqus-2025.2.0 → fiqus-2025.11.0}/setup.cfg +0 -0
  92. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/__init__.py +0 -0
  93. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/test_FiQuS.py +0 -0
  94. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/utils/__init__.py +0 -0
  95. {fiqus-2025.2.0 → fiqus-2025.11.0}/tests/utils/generate_reference_files_Pancake3D.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiqus
3
- Version: 2025.2.0
3
+ Version: 2025.11.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
@@ -9,11 +9,75 @@ Keywords: STEAM,FiQuS,CERN
9
9
  Classifier: Programming Language :: Python :: 3.11
10
10
  Requires-Python: >=3.11
11
11
  Description-Content-Type: text/markdown
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
12
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
59
  Provides-Extra: docs
60
+ Requires-Dist: griffe==0.42.0; extra == "docs"
61
+ Requires-Dist: markdown==3.5.2; extra == "docs"
62
+ Requires-Dist: markdown-include==0.8.1; extra == "docs"
63
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin==1.2.4; extra == "docs"
64
+ Requires-Dist: mkdocs-include-markdown-plugin==6.0.4; extra == "docs"
65
+ Requires-Dist: mkdocs-material==9.5.13; extra == "docs"
66
+ Requires-Dist: mkdocstrings-python==1.9.0; extra == "docs"
67
+ Requires-Dist: mkdocs-autorefs==1.3.1; extra == "docs"
14
68
  Provides-Extra: tests
69
+ Requires-Dist: coverage==7.4.4; extra == "tests"
70
+ Requires-Dist: coverage-badge==1.1.0; extra == "tests"
71
+ Requires-Dist: flake8==7.0.0; extra == "tests"
72
+ Requires-Dist: mypy==1.9.0; extra == "tests"
73
+ Requires-Dist: pylint==3.1.0; extra == "tests"
74
+ Requires-Dist: pytest==8.1.1; extra == "tests"
75
+ Requires-Dist: pytest-cov==4.1.0; extra == "tests"
76
+ Requires-Dist: pytest-subtests==0.12.1; extra == "tests"
15
77
  Provides-Extra: build
16
- License-File: LICENSE.txt
78
+ Requires-Dist: setuptools==69.2.0; extra == "build"
79
+ Requires-Dist: wheel==0.45.1; extra == "build"
80
+ Requires-Dist: twine==6.0.1; extra == "build"
17
81
 
18
82
  ![FiQuS logo](https://gitlab.cern.ch/steam/fiqus/-/raw/master/docs/images/FiQuS_name_logo.svg)
19
83
 
@@ -19,7 +19,7 @@ from fiqus.utils.Utils import CheckForExceptions as Check
19
19
  from fiqus.utils.Utils import create_json_schema
20
20
  from fiqus.utils.Utils import get_data_settings
21
21
  from fiqus.utils.Utils import initialize_logger
22
- from fiqus.data.DataFiQuS import FDM
22
+ from fiqus.data.DataFiQuS import FDM, SolveDumpDataModel
23
23
  from fiqus.data.DataSettings import DataSettings
24
24
  from fiqus.mains.MainCCT import MainCCT
25
25
  from fiqus.mains.MainMultipole import MainMultipole
@@ -86,22 +86,10 @@ class MainFiQuS:
86
86
  # Initialize Main object
87
87
  if self.fdm.magnet.type == "CCT_straight":
88
88
  self.main_magnet = MainCCT(fdm=self.fdm, verbose=verbose)
89
- elif self.fdm.magnet.type == "CWS":
90
- self.main_magnet = MainCWS(
91
- fdm=self.fdm,
92
- inputs_folder_path=pathlib.Path(input_file_path).parent,
93
- verbose=self.fdm.run.verbosity_FiQuS,
94
- )
95
89
  elif self.fdm.magnet.type == "Pancake3D":
96
90
  self.main_magnet = MainPancake3D(fdm=self.fdm, verbose=verbose)
97
91
  elif self.fdm.magnet.type == "CACStrand":
98
92
  self.main_magnet = MainConductorAC_Strand(fdm=self.fdm, inputs_folder_path=pathlib.Path(input_file_path).parent, outputs_folder_path=model_folder, verbose=verbose)
99
- elif self.fdm.magnet.type == "CACRutherford":
100
- self.main_magnet = MainConductorAC_Rutherford(fdm=self.fdm, inputs_folder_path=pathlib.Path(input_file_path).parent, verbose=verbose)
101
- elif self.fdm.magnet.type == "Racetrack":
102
- self.main_magnet = MainRacetrack(fdm=self.fdm, verbose=verbose)
103
- elif self.fdm.magnet.type == "Racetrack3D":
104
- self.main_magnet = MainRacetrack3D(fdm=self.fdm, inputs_folder_path=pathlib.Path(input_file_path).parent, verbose=verbose)
105
93
  elif self.fdm.magnet.type == "multipole":
106
94
  self.file_name = os.path.basename(input_file_path)[:-5]
107
95
  if not self.fdm.magnet.geometry.geom_file_path:
@@ -230,7 +218,7 @@ class MainFiQuS:
230
218
  else: # post_process_getdp_only or post_process_python_only or plot_python
231
219
  required_folders = []
232
220
 
233
- fdm = self.main_magnet.fdm.magnet
221
+
234
222
 
235
223
  self.main_magnet.geom_folder = _check_and_generate_path(folder_type="Geometry")
236
224
  if not self.fdm.run.type in ["geometry_only"]:
@@ -250,7 +238,7 @@ class MainFiQuS:
250
238
  ]:
251
239
  Util.write_data_model_to_yaml(
252
240
  os.path.join(self.main_magnet.geom_folder, "geometry.yaml"),
253
- fdm.geometry,
241
+ self.fdm.magnet.geometry,
254
242
  by_alias=True,
255
243
  with_comments=True,
256
244
  )
@@ -262,7 +250,7 @@ class MainFiQuS:
262
250
  ]:
263
251
  Util.write_data_model_to_yaml(
264
252
  os.path.join(self.main_magnet.mesh_folder, "mesh.yaml"),
265
- fdm.mesh,
253
+ self.fdm.magnet.mesh,
266
254
  by_alias=True,
267
255
  with_comments=True,
268
256
  )
@@ -272,11 +260,20 @@ class MainFiQuS:
272
260
  "solve_with_post_process_python",
273
261
  "solve_only",
274
262
  "post_process",
275
- "plot_python"
263
+ "plot_python",
264
+ "postprocess_veusz"
276
265
  ]:
266
+ solve_dump_data = SolveDumpDataModel(
267
+ solve=self.fdm.magnet.solve,
268
+ circuit=self.fdm.circuit,
269
+ power_supply=self.fdm.power_supply,
270
+ quench_protection=self.fdm.quench_protection,
271
+ quench_detection=self.fdm.quench_detection,
272
+ conductors=self.fdm.conductors
273
+ )
277
274
  Util.write_data_model_to_yaml(
278
275
  os.path.join(self.main_magnet.solution_folder, "solve.yaml"),
279
- fdm.solve,
276
+ solve_dump_data,
280
277
  by_alias=True,
281
278
  with_comments=True,
282
279
  )
@@ -287,11 +284,12 @@ class MainFiQuS:
287
284
  "post_process_python_only",
288
285
  "post_process_getdp_only",
289
286
  "post_process",
287
+ "postprocess_veusz",
290
288
  "plot_python"
291
289
  ]:
292
290
  Util.write_data_model_to_yaml(
293
291
  os.path.join(self.main_magnet.solution_folder, "postproc.yaml"),
294
- fdm.postproc,
292
+ self.fdm.magnet.postproc,
295
293
  by_alias=True,
296
294
  with_comments=True,
297
295
  )
@@ -337,6 +335,7 @@ class MainFiQuS:
337
335
  except:
338
336
  self.logger.warning("Run log could not be completed.")
339
337
 
338
+
340
339
  def build_magnet(self):
341
340
  """
342
341
  Main method to build magnets, i.e. to run various fiqus run types and magnet types
@@ -389,6 +388,8 @@ class MainFiQuS:
389
388
  self.summary["solution_time"] = (
390
389
  self.main_magnet.solve_and_postprocess_getdp(gui=self.main_magnet.fdm.run.launch_gui)
391
390
  )
391
+ elif self.fdm.run.type == "postprocess_veusz":
392
+ self.main_magnet.post_process_veusz(gui=self.main_magnet.fdm.run.launch_gui)
392
393
  elif self.fdm.run.type == "post_process_getdp_only":
393
394
  self.main_magnet.post_process_getdp(gui=self.main_magnet.fdm.run.launch_gui)
394
395
  elif self.fdm.run.type == "post_process_python_only":
@@ -405,15 +406,10 @@ class MainFiQuS:
405
406
  self.main_magnet.batch_post_process_python()
406
407
  os.chdir(self.start_folder)
407
408
 
408
- if self.file_name: json.dump(self.summary, open(f"{os.path.join(self.wrk_folder, self.file_name)}.json", 'w'))
409
- # mesh_par = self.fdm.magnet.mesh
410
- # if self.summary['solution_time']:
411
- # with open(r"C:\Users\avitrano\PycharmProjects\steam_sdk\tests\parsims\FiQuS_run\summary.dat", 'a') as f:
412
- # content = (f"{mesh_par.mesh_coil.SizeMin} {mesh_par.mesh_coil.SizeMax} {mesh_par.mesh_iron.SizeMin} {mesh_par.mesh_iron.SizeMax} "
413
- # f"{self.summary['solution_time']} {self.summary['overall_error']} {self.summary['overall_error'] * 0.999 + self.summary['solution_time'] * 0.001} "
414
- # f"{self.summary['SJ']} {self.summary['SICN']} {self.summary['SIGE']} {self.summary['Gamma']} "
415
- # f"{self.summary['nodes']} {self.summary['minimum_diff']} {self.summary['maximum_diff']}\n")
416
- # f.writelines(content)
409
+ if self.file_name:
410
+ file_path = os.path.join(self.wrk_folder, f"{self.file_name}.json")
411
+ with open(file_path, 'w', encoding='utf-8') as f:
412
+ json.dump(self.summary, f, indent=2)
417
413
 
418
414
  @staticmethod
419
415
  def add_to_run_log(path_to_csv, run_log_row):