Skip to content

Commit ce0940b

Browse files
authored
Merge pull request #160 from upb-lea/new_mdb
use common classes for the optimization routines
2 parents 4cfef20 + e16c31a commit ce0940b

7 files changed

Lines changed: 47 additions & 113 deletions

File tree

README.rst

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -150,21 +150,6 @@ the corresponding FEM simulation on the right. |FEMMT_Screenshot|
150150

151151
To run a minimal example please have a look at the `examples <https://github.com/upb-lea/FEM_Magnetics_Toolbox/tree/main/femmt/examples>`__.
152152

153-
GUI (Experimental)
154-
-------------------
155-
156-
There is a first preview for a GUI. Installing this is a bit cumbersome
157-
at first, but will be simplified in the future:
158-
159-
* Download the complete repository via ``Code`` -> ``Download ZIP`` and unpack it.
160-
* Or clone the repository
161-
* Install the development version of femmt using ``pip install -e .``
162-
* Run python ``.../path-to_femmt/femmt/gui/femmt_gui.py``
163-
164-
Please note, the GUI is experimental.
165-
166-
|femmt_gui_definition|
167-
168153
Troubleshooting
169154
-------------------
170155
If the working directory is within OneDrive, there are problems writing .dat files, which are basic for FEMMT. The following error messages appear:
@@ -213,5 +198,4 @@ programming language python is used.
213198

214199
.. |geometry_translated| image:: docs/images/geometry_translated.png
215200
.. |FEMMT_Screenshot| image:: docs/images/FEMMT_Screenshot.png
216-
.. |femmt_gui_definition| image:: docs/images/femmt_gui_definition.png
217201
.. |counting_arrow_system| image:: docs/images/counting_arrow_system.png

femmt/optimization/io_dtos.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,8 @@
66
from magnethub.loss import LossModel
77

88
# own libraries
9-
from materialdatabase.meta.data_enums import DataSource
10-
from femmt.enumerations import *
119
from femmt.optimization.ito_dtos import WorkingDirectories
12-
13-
@dataclasses.dataclass
14-
class InductorMaterialDataSources:
15-
"""Data sources for the FEM simulation."""
16-
17-
permeability_datasource: DataSource
18-
permeability_datatype: MeasurementDataType
19-
permittivity_datasource: DataSource
20-
permittivity_datatype: MeasurementDataType
10+
from femmt.optimization.optimization_dtos import MaterialDataSources
2111

2212
@dataclasses.dataclass
2313
class InductorInsulationDTO:
@@ -54,7 +44,7 @@ class InductorOptimizationDTO:
5444
litz_wire_name_list: list[str]
5545

5646
# FEM simulation
57-
material_data_sources: InductorMaterialDataSources
47+
material_data_sources: MaterialDataSources
5848

5949
@dataclasses.dataclass
6050
class InductorOptimizationTargetAndFixedParameters:
@@ -96,7 +86,7 @@ class FemInput:
9686
insulations: InductorInsulationDTO
9787

9888
# data sources
99-
material_data_sources: InductorMaterialDataSources
89+
material_data_sources: MaterialDataSources
10090

10191
# operating point conditions
10292
temperature: float

femmt/optimization/ito_dtos.py

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
# 3rd party libraries
66
import numpy as np
7-
from materialdatabase.meta.data_enums import DataSource
8-
from materialdatabase.meta.setup_enums import MeasurementDataType
97
from magnethub.loss import LossModel
10-
from femmt.enumerations import *
8+
9+
# own libraries
10+
from femmt.optimization.optimization_dtos import MaterialDataSources, WorkingDirectories
1111

1212
@dataclass
1313
class ItoInsulation:
@@ -28,15 +28,6 @@ class ItoInsulation:
2828
iso_secondary_to_secondary: float
2929
iso_primary_to_secondary: float
3030

31-
@dataclass
32-
class IntegratedTransformerMaterialDataSources:
33-
"""Data sources for the FEM simulation."""
34-
35-
permeability_datasource: DataSource
36-
permeability_datatype: MeasurementDataType
37-
permittivity_datasource: DataSource
38-
permittivity_datatype: MeasurementDataType
39-
4031
@dataclass
4132
class ItoSingleInputConfig:
4233
"""
@@ -78,18 +69,7 @@ class ItoSingleInputConfig:
7869
insulations: ItoInsulation
7970

8071
# data sources
81-
material_data_sources: IntegratedTransformerMaterialDataSources
82-
83-
@dataclass
84-
class WorkingDirectories:
85-
"""Working directories for an integrated transformer optimization."""
86-
87-
fem_working_directory: str
88-
reluctance_model_results_directory: str
89-
fem_simulation_results_directory: str
90-
fem_simulation_filtered_results_directory: str
91-
fem_thermal_simulation_results_directory: str
92-
fem_thermal_filtered_simulation_results_directory: str
72+
material_data_sources: MaterialDataSources
9373

9474
@dataclass
9575
class ItoTargetAndFixedParameters:
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
"""Common data classes uses by multiple optimization classes and methods."""
2+
3+
# python libraries
4+
import dataclasses
5+
6+
# own libraries
7+
from materialdatabase.meta.data_enums import DataSource
8+
from materialdatabase.meta.setup_enums import MeasurementDataType
9+
10+
@dataclasses.dataclass
11+
class MaterialDataSources:
12+
"""Data sources for the FEM simulation."""
13+
14+
permeability_datasource: DataSource
15+
permeability_datatype: MeasurementDataType
16+
permittivity_datasource: DataSource
17+
permittivity_datatype: MeasurementDataType
18+
19+
@dataclasses.dataclass
20+
class WorkingDirectories:
21+
"""Working directories for an integrated transformer optimization."""
22+
23+
fem_working_directory: str
24+
reluctance_model_results_directory: str
25+
fem_simulation_results_directory: str
26+
fem_simulation_filtered_results_directory: str
27+
fem_thermal_simulation_results_directory: str
28+
fem_thermal_filtered_simulation_results_directory: str

femmt/optimization/sto_ct_dtos.py

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
# 3rd party libraries
66
import numpy as np
7+
8+
# own libraries (mdb + femmt)
79
from materialdatabase.meta.data_enums import DataSource
810
from materialdatabase.meta.setup_enums import MeasurementDataType
9-
11+
from femmt.optimization.ito_dtos import WorkingDirectories
1012

1113
@dataclass
1214
class StoCtInsulation:
@@ -82,19 +84,6 @@ class ThermalConfig:
8284
boundary_temperatures: dict
8385
boundary_flags: dict
8486

85-
86-
@dataclass
87-
class WorkingDirectories:
88-
"""Working directories for an integrated transformer optimization."""
89-
90-
fem_working_directory: str
91-
reluctance_model_results_directory: str
92-
fem_simulation_results_directory: str
93-
fem_simulation_filtered_results_directory: str
94-
fem_thermal_simulation_results_directory: str
95-
fem_thermal_filtered_simulation_results_directory: str
96-
97-
9887
@dataclass
9988
class StoCtTargetAndFixedParameters:
10089
"""

femmt/optimization/sto_dtos.py

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,10 @@
44

55
# 3rd party libraries
66
import numpy as np
7-
from materialdatabase.meta.data_enums import DataSource
8-
from femmt.enumerations import *
97
from magnethub.loss import LossModel
108

11-
@dataclass
12-
class WorkingDirectories:
13-
"""Working directories for an integrated transformer optimization."""
14-
15-
fem_working_directory: str
16-
reluctance_model_results_directory: str
17-
fem_simulation_results_directory: str
18-
fem_simulation_filtered_results_directory: str
19-
fem_thermal_simulation_results_directory: str
20-
fem_thermal_filtered_simulation_results_directory: str
9+
# own libraries
10+
from femmt.optimization.optimization_dtos import MaterialDataSources, WorkingDirectories
2111

2212
@dataclass
2313
class StoTargetAndFixedParameters:
@@ -71,15 +61,6 @@ class StoInsulation:
7161
iso_secondary_to_secondary: float
7262
iso_primary_to_secondary: float
7363

74-
@dataclass
75-
class StackedTransformerMaterialDataSources:
76-
"""Data sources for the FEM simulation."""
77-
78-
permeability_datasource: DataSource
79-
permeability_datatype: MeasurementDataType
80-
permittivity_datasource: DataSource
81-
permittivity_datatype: MeasurementDataType
82-
8364
@dataclass
8465
class StoSingleInputConfig:
8566
"""
@@ -125,7 +106,7 @@ class StoSingleInputConfig:
125106
mesh_accuracy: float
126107

127108
# data sources
128-
material_data_sources: StackedTransformerMaterialDataSources
109+
material_data_sources: MaterialDataSources
129110

130111
@dataclass
131112
class FemInput:
@@ -151,13 +132,13 @@ class FemInput:
151132
insulations: StoInsulation
152133

153134
# data sources
154-
material_data_sources: StackedTransformerMaterialDataSources
135+
material_data_sources: MaterialDataSources
155136

156137
# operating point conditions
157138
temperature: float
158139
fundamental_frequency: float
159-
time_current_1_vec: np.array
160-
time_current_2_vec: np.array
140+
time_current_1_vec: np.ndarray
141+
time_current_2_vec: np.ndarray
161142

162143
@dataclass
163144
class FemOutput:
@@ -176,7 +157,7 @@ class FemOutput:
176157
class ReluctanceModelInput:
177158
"""Input DTO for reluctance model simulation within the inductor optimization."""
178159

179-
target_inductance_matrix: np.array
160+
target_inductance_matrix: np.ndarray
180161
core_inner_diameter: float
181162
window_w: float
182163
window_h_bot: float

femmt/optimization/to_dtos.py

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
# 3rd party libraries
66
import numpy as np
7-
from materialdatabase.meta.data_enums import DataSource
8-
from femmt.enumerations import *
9-
7+
from femmt.optimization.optimization_dtos import MaterialDataSources, WorkingDirectories
108

119
@dataclass
1210
class ToInsulation:
@@ -63,10 +61,7 @@ class ToSingleInputConfig:
6361
mesh_accuracy: float
6462

6563
# data sources
66-
permeability_datasource: DataSource
67-
permeability_datatype: MeasurementDataType
68-
permittivity_datasource: DataSource
69-
permittivity_datatype: MeasurementDataType
64+
material_datasources: MaterialDataSources
7065

7166

7267
@dataclass
@@ -80,19 +75,6 @@ class ThermalConfig:
8075
boundary_temperatures: dict
8176
boundary_flags: dict
8277

83-
84-
@dataclass
85-
class WorkingDirectories:
86-
"""Working directories for an integrated transformer optimization."""
87-
88-
fem_working_directory: str
89-
reluctance_model_results_directory: str
90-
fem_simulation_results_directory: str
91-
fem_simulation_filtered_results_directory: str
92-
fem_thermal_simulation_results_directory: str
93-
fem_thermal_filtered_simulation_results_directory: str
94-
95-
9678
@dataclass
9779
class ToTargetAndFixedParameters:
9880
"""

0 commit comments

Comments
 (0)