femagtools 1.6.7__py3-none-any.whl → 1.7.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.
- femagtools/__init__.py +2 -2
- femagtools/bch.py +1 -1
- femagtools/dxfsl/area.py +334 -332
- femagtools/dxfsl/areabuilder.py +131 -10
- femagtools/dxfsl/conv.py +27 -9
- femagtools/dxfsl/converter.py +390 -125
- femagtools/dxfsl/corner.py +3 -0
- femagtools/dxfsl/femparser.py +1 -1
- femagtools/dxfsl/fslrenderer.py +290 -246
- femagtools/dxfsl/functions.py +4 -2
- femagtools/dxfsl/geom.py +1120 -886
- femagtools/dxfsl/journal.py +53 -22
- femagtools/dxfsl/machine.py +250 -74
- femagtools/dxfsl/plotrenderer.py +34 -3
- femagtools/dxfsl/shape.py +380 -103
- femagtools/dxfsl/symmetry.py +679 -110
- femagtools/femag.py +27 -2
- femagtools/forcedens.py +65 -40
- femagtools/fsl.py +71 -28
- femagtools/losscoeffs.py +46 -0
- femagtools/machine/effloss.py +8 -1
- femagtools/machine/im.py +3 -1
- femagtools/machine/pm.py +12 -11
- femagtools/machine/sizing.py +14 -11
- femagtools/machine/sm.py +114 -33
- femagtools/machine/utils.py +38 -34
- femagtools/model.py +12 -2
- femagtools/moo/population.py +1 -1
- femagtools/parstudy.py +17 -1
- femagtools/plot/__init__.py +1 -1
- femagtools/plot/char.py +24 -7
- femagtools/plot/forcedens.py +56 -29
- femagtools/plot/mcv.py +4 -1
- femagtools/plot/phasor.py +6 -1
- femagtools/poc.py +17 -10
- femagtools/templates/cogg_calc.mako +7 -1
- femagtools/templates/displ_stator_rotor.mako +33 -0
- femagtools/templates/fieldcalc.mako +10 -16
- femagtools/templates/pm_sym_f_cur.mako +1 -1
- femagtools/tks.py +3 -9
- {femagtools-1.6.7.dist-info → femagtools-1.7.0.dist-info}/LICENSE +1 -0
- {femagtools-1.6.7.dist-info → femagtools-1.7.0.dist-info}/METADATA +7 -4
- {femagtools-1.6.7.dist-info → femagtools-1.7.0.dist-info}/RECORD +50 -49
- tests/engines/__init__.py +0 -20
- tests/geom/__init__.py +0 -20
- tests/moo/__init__.py +0 -20
- tests/test_model.py +8 -1
- {femagtools-1.6.7.dist-info → femagtools-1.7.0.dist-info}/WHEEL +0 -0
- {femagtools-1.6.7.dist-info → femagtools-1.7.0.dist-info}/entry_points.txt +0 -0
- {femagtools-1.6.7.dist-info → femagtools-1.7.0.dist-info}/top_level.txt +0 -0
femagtools/dxfsl/journal.py
CHANGED
@@ -26,9 +26,8 @@ def getJournal(name=None, aktiv=False):
|
|
26
26
|
global journal
|
27
27
|
if not journal:
|
28
28
|
if not name:
|
29
|
-
|
30
|
-
|
31
|
-
journal = Journal(name=name, aktiv=True)
|
29
|
+
name = 'none'
|
30
|
+
journal = Journal(name=name, aktiv=aktiv)
|
32
31
|
return journal
|
33
32
|
|
34
33
|
|
@@ -40,6 +39,7 @@ class Journal(object):
|
|
40
39
|
self.aktiv = aktiv
|
41
40
|
self.journal = {}
|
42
41
|
self.data = {}
|
42
|
+
self.data_key = None
|
43
43
|
self.filename = Path('{}.json'.format(self.name))
|
44
44
|
|
45
45
|
def open_journal(self):
|
@@ -55,10 +55,18 @@ class Journal(object):
|
|
55
55
|
if not self.journal:
|
56
56
|
return
|
57
57
|
self.set_benchmark()
|
58
|
+
self.sort_by_keys()
|
58
59
|
with open(self.filename, 'w') as f:
|
59
60
|
f.write(json.dumps(self.journal, indent=4))
|
60
61
|
f.close()
|
61
62
|
|
63
|
+
def sort_by_keys(self):
|
64
|
+
myKeys = list(self.data.keys())
|
65
|
+
myKeys.sort()
|
66
|
+
sorted_dict = {i: self.data[i] for i in myKeys}
|
67
|
+
self.data = sorted_dict
|
68
|
+
self.journal[self.data_key] = sorted_dict
|
69
|
+
|
62
70
|
def get_journal(self, name):
|
63
71
|
if not self.aktiv:
|
64
72
|
return None
|
@@ -69,31 +77,53 @@ class Journal(object):
|
|
69
77
|
self.open_journal()
|
70
78
|
self.data = self.journal.get(name, None)
|
71
79
|
self.data = {'filename': ""} # initialise
|
80
|
+
self.data_key = name
|
72
81
|
self.journal[name] = self.data
|
73
82
|
return self.data
|
74
83
|
|
84
|
+
def get_total(self, name):
|
85
|
+
val = self.data.get(name, None)
|
86
|
+
if val is None:
|
87
|
+
return 0
|
88
|
+
if isinstance(val, list):
|
89
|
+
if not val:
|
90
|
+
return 0
|
91
|
+
if isinstance(val[0], int) or isinstance(val[0], float):
|
92
|
+
val = sum(val)
|
93
|
+
return val
|
94
|
+
return len(val)
|
95
|
+
if isinstance(val, int) or isinstance(val, float):
|
96
|
+
return val
|
97
|
+
return 1 # entries
|
98
|
+
|
75
99
|
def set_benchmark(self):
|
76
|
-
if self.
|
100
|
+
if self.get_total('area_errors') > 0:
|
77
101
|
self.put_warning("Problem with areas")
|
78
|
-
if self.
|
102
|
+
if self.get_total('appendices_deleted') > 0:
|
79
103
|
self.put_warning("Problem with appendices")
|
80
104
|
|
81
105
|
def put(self, name, val):
|
82
|
-
if self.data:
|
106
|
+
if not self.data:
|
107
|
+
return
|
108
|
+
data = self.data.get(name, None)
|
109
|
+
if data is None:
|
83
110
|
self.data[name] = val
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
111
|
+
return
|
112
|
+
if isinstance(data, list):
|
113
|
+
self.data[name].append(val)
|
114
|
+
return
|
115
|
+
data_list = [data]
|
116
|
+
data_list.append(val)
|
117
|
+
self.data[name] = data_list
|
88
118
|
|
89
119
|
def put_filename(self, val):
|
90
120
|
self.put('filename', val)
|
91
121
|
|
92
122
|
def put_areas(self, val):
|
93
|
-
self.
|
123
|
+
self.put('areas', val)
|
94
124
|
|
95
125
|
def put_area_errors(self, val):
|
96
|
-
self.
|
126
|
+
self.put('area_errors', val)
|
97
127
|
|
98
128
|
def put_elements(self, val):
|
99
129
|
self.put('elements', val)
|
@@ -102,27 +132,28 @@ class Journal(object):
|
|
102
132
|
self.put('nodes', val)
|
103
133
|
|
104
134
|
def put_concat_lines(self, val):
|
105
|
-
self.
|
135
|
+
self.put('concat_lines', val)
|
106
136
|
|
107
137
|
def put_concat_arcs(self, val):
|
108
|
-
self.
|
138
|
+
self.put('concat_arcs', val)
|
109
139
|
|
110
140
|
def put_appendices(self, val):
|
111
|
-
self.
|
141
|
+
self.put('appendices', val)
|
112
142
|
|
113
143
|
def put_appendices_connected(self, val):
|
114
|
-
self.
|
144
|
+
self.put('appendices_connected', val)
|
115
145
|
|
116
146
|
def put_appendices_remaining(self, val):
|
117
|
-
self.
|
147
|
+
self.put('appendices_remaining', val)
|
118
148
|
|
119
149
|
def put_appendices_deleted(self, val):
|
120
|
-
self.
|
121
|
-
|
150
|
+
self.put('appendices_deleted', val)
|
151
|
+
|
152
|
+
def put_nodes_connected(self, val):
|
153
|
+
self.put('nodes_connected', val)
|
154
|
+
|
122
155
|
def put_exception(self, msg):
|
123
156
|
self.put('exception', msg)
|
124
157
|
|
125
158
|
def put_warning(self, msg):
|
126
|
-
|
127
|
-
lst.append(msg)
|
128
|
-
self.put('warning', lst)
|
159
|
+
self.put('warning', msg)
|