femagtools 1.7.7__py3-none-any.whl → 1.7.9__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 (38) hide show
  1. femagtools/__init__.py +1 -1
  2. femagtools/dxfsl/area.py +38 -9
  3. femagtools/dxfsl/converter.py +2 -1
  4. femagtools/dxfsl/fslrenderer.py +8 -1
  5. femagtools/dxfsl/geom.py +19 -8
  6. femagtools/dxfsl/svgparser.py +31 -4
  7. femagtools/femag.py +14 -0
  8. femagtools/fsl.py +74 -28
  9. femagtools/isa7.py +41 -0
  10. femagtools/job.py +2 -2
  11. femagtools/machine/afpm.py +5 -1
  12. femagtools/machine/utils.py +4 -3
  13. femagtools/model.py +7 -0
  14. femagtools/moo/population.py +9 -7
  15. femagtools/nc.py +12 -0
  16. femagtools/plot/__init__.py +1 -1
  17. femagtools/plot/nc.py +22 -5
  18. femagtools/plot/wdg.py +38 -5
  19. femagtools/svgfsl/converter.py +6 -0
  20. femagtools/templates/gen_winding.mako +10 -3
  21. femagtools/templates/magnetIron.mako +30 -46
  22. femagtools/templates/magnetIron2.mako +39 -0
  23. femagtools/templates/magnetIron3.mako +39 -0
  24. femagtools/templates/magnetIron4.mako +39 -0
  25. femagtools/templates/magnetIron5.mako +39 -0
  26. femagtools/templates/magnetIronV.mako +34 -54
  27. femagtools/templates/magnetSector.mako +32 -47
  28. femagtools/templates/prepare_thermal.mako +219 -0
  29. femagtools/templates/statorRotor3.mako +3 -22
  30. femagtools/windings.py +67 -39
  31. {femagtools-1.7.7.dist-info → femagtools-1.7.9.dist-info}/METADATA +3 -1
  32. {femagtools-1.7.7.dist-info → femagtools-1.7.9.dist-info}/RECORD +38 -37
  33. {femagtools-1.7.7.dist-info → femagtools-1.7.9.dist-info}/WHEEL +1 -1
  34. tests/test_fsl.py +1 -1
  35. tests/test_windings.py +13 -2
  36. {femagtools-1.7.7.dist-info → femagtools-1.7.9.dist-info}/LICENSE +0 -0
  37. {femagtools-1.7.7.dist-info → femagtools-1.7.9.dist-info}/entry_points.txt +0 -0
  38. {femagtools-1.7.7.dist-info → femagtools-1.7.9.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,219 @@
1
+ -- prepare thermal model
2
+
3
+ save_model('cont')
4
+
5
+ function get_xy(elkey)
6
+ -- get element xy
7
+ local x, y
8
+ x, y = get_elem_data ( "xycp", elkey)
9
+ return x, y
10
+ end
11
+
12
+ function get_perm(elkey)
13
+ -- get element permeability
14
+ local x, y
15
+ x, y = get_elem_data ( "perm", elkey)
16
+ return x, y
17
+ end
18
+
19
+ function get_mag(elkey)
20
+ -- get element rem
21
+ local x, y
22
+ x, y = get_elem_data ("mag", elkey)
23
+ return x, y
24
+ end
25
+
26
+ function color_spel(spel_key, color)
27
+ local el
28
+ el = get_spel_data('elkeys', spel_key)
29
+ for i = 1, #el do
30
+ draw_elem(el[i], color, 0)
31
+ end
32
+ end
33
+
34
+ get_spel_keys("spel_keys") -- Get all superelements of the model
35
+
36
+ copper_spel = {} -- red, 1
37
+ stator_lam_spel = {} -- darkblue, 9
38
+ rotor_lam_spel = {} -- darkblue, 9
39
+ shaft_spel = {} ---- lightgrey, 16
40
+ magnet_spel = {} -- black, 8
41
+ outer_air = {} -- darkred, 10
42
+ inner_air = {} -- lightgrey, 16
43
+ rotor_air = {}
44
+ stator_air = {} -- black, 8
45
+ airgap = {} -- white, 8
46
+ magnet_pocket_spel = {} -- red, 1
47
+ non_uniform_airgap = {} -- white, 8
48
+
49
+ -- search all components
50
+ for i =1, #spel_keys do
51
+ -- loop over all spel keys
52
+ is_winding = get_spel_data("condtyp", spel_keys[i])
53
+ els = get_spel_data('elkeys', spel_keys[i])
54
+ mag1, mag2 = get_mag(els[1])
55
+ perm1, perm2 = get_perm(els[1])
56
+ xc, yc = get_xy(els[1])
57
+ rc, pc = c2pd(xc, yc)
58
+
59
+ if (is_winding == 0) then
60
+ mctype = get_spel_data("mcvtyp", spel_keys[i])
61
+ if (mctype == 0) then -- no curve
62
+ -- check if it is air or magnet
63
+ if math.abs(mag1) > 0 or math.abs(mag2) > 0 then
64
+ -- is magnet
65
+ table.insert(magnet_spel, spel_keys[i])
66
+ def_mat_therm(xc, yc,'red', magn_density, magn_thcond, magn_thcap, 1)
67
+ color_spel(spel_keys[i], 8) -- black magnet
68
+ else
69
+ -- is air
70
+ if rc > dy1/2 then
71
+ -- outer air
72
+ table.insert(outer_air, spel_keys[i])
73
+ %if model.get('htc_outer', 0):
74
+ def_heat_transfer(xc,yc,yellow,${model['htc_outer']}, 1.0)
75
+ %endif
76
+ color_spel(spel_keys[i], 10)
77
+
78
+ elseif rc > dy2/2 and rc < da2/2 then
79
+ -- rotor air
80
+ -- check is magnet pocket/air pocket/non_uniform airgap
81
+ table.insert(rotor_air, spel_keys[i])
82
+ --def_mat_therm(xc, yc, 'yellow', 1.12,0.026,1007, 1)
83
+ --color_spel(spel_keys[i], 3) -- yellow air
84
+
85
+ elseif rc > da1/2 and rc < dy1/2 then
86
+ -- stator air
87
+ table.insert(stator_air, spel_keys[i])
88
+ def_mat_therm(xc, yc, 'yellow', 1.19,0.15,1007, 1)
89
+ color_spel(spel_keys[i], 8)
90
+
91
+ elseif rc > da2/2 and rc < da1/2 then
92
+ table.insert(airgap, spel_keys[i])
93
+ def_mat_therm(xc, yc, 'yellow', 1.19,0.063,1007, 1)
94
+ color_spel(spel_keys[i], 7) -- white air
95
+
96
+ -- elseif rc > dy2/2 then
97
+ -- airgap
98
+ -- table.insert(airgap, spel_keys[i])
99
+ -- color_spel(spel_keys[i], 3) -- yellow air
100
+ -- def_mat_therm(xc, yc, 'yellow', 1.19,0.15,1007, 1)
101
+
102
+ elseif rc < dy2/2 then
103
+ -- check if shaft or inner air
104
+ if x0_shaft ~= nil and x0_shaft ~= 0.0 then
105
+ table.insert(shaft_spel, spel_keys[i])
106
+ def_mat_therm(xc, yc, 'lightgrey', shaft_density, shaft_thcond, shaft_thcap, 1)
107
+ else
108
+ -- is inner air
109
+ table.insert(inner_air, spel_keys[i])
110
+ %if model.get('htc_inner', 0):
111
+ def_heat_transfer(xc,yc,yellow,${model['htc_inner']}, 1.0)
112
+ %endif
113
+ def_new_sreg(xc,yc, 'INAR', 'yellow')
114
+ color_spel(spel_keys[i], 16) -- light grey inner air
115
+ end
116
+ end
117
+ end
118
+ else
119
+ -- check if it is stator / rotor
120
+ if rc > m.fc_radius then
121
+ color_spel(spel_keys[i], 9) -- magenta stator
122
+ table.insert(stator_lam_spel, spel_keys[i])
123
+ def_mat_therm(xc, yc, 'darkblue', stator_density, stator_thcond, stator_thcap, 1)
124
+ else
125
+ color_spel(spel_keys[i], 9) -- violet rotor
126
+ table.insert(rotor_lam_spel, spel_keys[i])
127
+ def_mat_therm(xc, yc, 'darkblue', rotor_density, rotor_thcond, rotor_thcap, 1)
128
+ end
129
+ end
130
+
131
+ else
132
+ table.insert(copper_spel, spel_keys[i])
133
+ def_mat_therm(xc, yc, 'green', conductor_density, conductor_thcond, conductor_thcap, 1)
134
+ color_spel(spel_keys[i], 1) --
135
+
136
+ end
137
+
138
+ end
139
+
140
+ function is_exist(arr, val)
141
+ local i
142
+ if #arr == 0 then
143
+ return false
144
+ end
145
+ for i = 1, #arr do
146
+ if arr[i] == val then
147
+ return true
148
+ end
149
+ end
150
+ return false
151
+ end
152
+ -- identify magnet air pocket
153
+
154
+ for i = 1, #magnet_spel do
155
+ bkeys = get_spel_data ( "bndkeys", magnet_spel[i])
156
+ for j = 1, #bkeys do
157
+ elks = get_node_data ( "elkeys", bkeys[j] )
158
+ for k = 1, #elks do
159
+ p1, p2 = get_elem_data("perm", elks[k])
160
+ sek = get_elem_data("sekey", elks[k])
161
+ if p1 == 1.0 then
162
+ if (not is_exist(magnet_pocket_spel, sek)) and (not is_exist(airgap, sek)) then
163
+ table.insert(magnet_pocket_spel, sek)
164
+ els = get_spel_data('elkeys', sek)
165
+ xc, yc = get_xy(els[1])
166
+ def_mat_therm(xc, yc, 'red', 1.12,0.026,1007, 1)
167
+ --table.remove(rotor_air, sek)
168
+ color_spel(sek, 1)
169
+ end
170
+ end
171
+ end
172
+ end
173
+ end
174
+
175
+
176
+
177
+ for i = 1, #rotor_air do
178
+ if rotor_air[i] ~= nil then
179
+ bkeys = get_spel_data ( "bndkeys", rotor_air[i])
180
+ for j = 1, #bkeys do
181
+ x, y = get_node_data ( "xy", bkeys[j] )
182
+ r, phi = c2pd(x, y)
183
+ if math.abs(r - da2/2) < 1e-5 then
184
+ if not is_exist(non_uniform_airgap,rotor_air[i]) then
185
+ table.insert(non_uniform_airgap, rotor_air[i])
186
+ els = get_spel_data('elkeys', rotor_air[i])
187
+ xc, yc = get_xy(els[1])
188
+ def_mat_therm(xc, yc, 'yellow', 1.19,0.063,1007, 1)
189
+ color_spel(rotor_air[i], 7)
190
+ end
191
+ end
192
+ end
193
+ end
194
+ end
195
+
196
+ for i = 1, #rotor_air do
197
+ if rotor_air[i] ~= nil then
198
+ if is_exist(non_uniform_airgap, rotor_air[i]) then
199
+ rotor_air[i] = nil
200
+ end
201
+ end
202
+ end
203
+
204
+ for i = 1, #rotor_air do
205
+ if is_exist(magnet_pocket_spel, rotor_air[i]) then
206
+ rotor_air[i] = nil
207
+ end
208
+ end
209
+
210
+
211
+ for i = 1, #rotor_air do
212
+ if rotor_air[i] ~= nil then
213
+ els = get_spel_data('elkeys', rotor_air[i])
214
+ xc, yc = get_xy(els[1])
215
+ def_mat_therm(xc, yc, 'red', 1.12,0.026,1007, 1)
216
+ end
217
+ end
218
+
219
+ save_metafile(model..'.ps')
@@ -148,26 +148,7 @@ end
148
148
  %endif
149
149
 
150
150
  %if model.get('thcond', 0) and model.get('thcap', 0):
151
- thcond = ${model.get('thcond', 24)}
152
- thcap = ${model.get('thcap', 480)}
153
- density = ${model.get('density', 7700)}
154
- -- Thermal properties: iron in yoke and tooth
155
- xst,yst = pd2c(m.inside_diam/2+1,m.zeroangl+0.1) -- stator tooth
156
- xsj,ysj = pd2c(m.yoke_diam/2-1,m.zeroangl+0.1) -- stator yoke
157
- def_mat_therm(xst,yst,'darkblue',density,thcond,thcap,1)
158
- def_mat_therm(xsj,ysj,'darkblue',density,thcond,thcap,1)
159
- -- insulation
160
- if m.slot_indul > 0 then
161
- thickness = 0.25 -- mm
162
- thcond = 0.31
163
- thcap = 1100
164
- xip, yip = pr2c(m.slot_height + m.inside_diam/2-m.slot_indul/2,
165
- math.pi/m.tot_num_slot+m.zeroangl/180*math.pi)
166
- def_insulation(xip,yip,'darkred',thickness,1340,thcond,thcap)
167
- end
168
- -- air in slot opening
169
- xnl, ynl = pr2c(m.inside_diam/2+m.slot_h1/2, math.pi/m.tot_num_slot+m.zeroangl/180*math.pi)
170
- sl_cond = 0.15
171
- sl_cap = 1007
172
- def_mat_therm(xnl,ynl,'cyan',1.19,sl_cond,sl_cap,1)
151
+ stator_thcond = ${model.get('thcond', 24)}
152
+ stator_thcap = ${model.get('thcap', 480)}
153
+ stator_density = ${model.get('density', 7700)}
173
154
  %endif
femagtools/windings.py CHANGED
@@ -160,11 +160,13 @@ class Winding(object):
160
160
 
161
161
  def kw_order(self, n):
162
162
  """return winding factor harmonics"""
163
- if n == 0:
164
- return self.p
165
- g = np.arange(-n, n, 1)
166
- t = num_basic_windings(self.Q, self.p, self.l)
167
- return self.p + g * self.m*t
163
+ if np.isscalar(n):
164
+ if n == 0:
165
+ return self.p
166
+ g = np.arange(-n, n, 1)
167
+ t = num_basic_windings(self.Q, self.p, self.l)
168
+ return self.p + g * self.m*t
169
+ return n
168
170
 
169
171
  def kwp(self, n=0):
170
172
  """pitch factor"""
@@ -181,14 +183,11 @@ class Winding(object):
181
183
  nue = n
182
184
  else:
183
185
  nue = self.kw_order(n)
184
- if q1 == q2: # integral slot winding
185
- q = self.Q/2/self.m/self.p
186
- nuep = nue/self.p
187
- return np.sin(nuep*np.pi/2/self.m)/q/np.sin(nuep*np.pi/2/self.m/q)
188
186
  k = 2 if self.l == 1 else 1
189
187
  a = nue*k*np.pi/self.Q*Yk
190
- t = num_basic_windings(self.Q, self.p, self.l)
191
- return np.real((np.sin(a*q1) - np.exp(1j*np.pi/t*Yk*nue)*np.sin(a*q2))/((q1+q2)*np.sin(a)))
188
+ t = self.Q//Qb
189
+ return ((np.sin(a*q1) - np.cos(np.pi/t*Yk*nue)*np.sin(a*q2))
190
+ /((q1+q2)*np.sin(a)))
192
191
 
193
192
  def kw(self, n=0):
194
193
  """return winding factor"""
@@ -254,44 +253,70 @@ class Winding(object):
254
253
  for x in self.windings[key]['PHI'][:dim]]
255
254
  return np.array(slots).reshape((np.gcd(self.Q, self.p), -1))
256
255
 
257
- def axis(self):
256
+ def axis(self, k=1):
258
257
  """returns axis angle of winding 1 in mechanical system"""
259
- return self.mmf()['alfa0']
258
+ return self.mmf(k=k)['alfa0']
260
259
 
261
- def mmf(self, k=1, nmax=21):
262
- """returns the dimensionless magnetomotive force
263
- (ampere-turns/turns/ampere) and winding angle of phase k (rad)
260
+ def currdist(self, k=1, phi=0):
261
+ """return the current density of slots
264
262
  Arguments:
265
- k: (int) winding key (all if 0 or 'all')
266
- nmax: (int) max order of harmonic (in electrical system)
263
+ k: (int) winding key (all if 0 or 'all')
264
+ phi: (float) current angle (default 0)
267
265
  """
268
- m = len(self.windings) # number of phases
269
- if k in (0, 'all'):
266
+ if k == 0 or k == 'all':
270
267
  keys = self.windings.keys()
271
- else:
268
+ elif np.isscalar(k):
272
269
  keys = [k]
273
- t = femagtools.windings.num_basic_windings(self.Q, self.p, self.l)
274
- curr = np.zeros(self.Q//t)
270
+ else:
271
+ keys = k
272
+ m = len(self.windings)
273
+ t = num_basic_windings(self.Q, self.p, self.l)
274
+ cdist = {k: np.zeros(self.Q//t) for k in keys}
275
275
  for z in self.zoneplan():
276
276
  if z:
277
277
  for j in keys:
278
278
  a = np.zeros(self.Q//t)
279
+ curr = np.cos((j-1)*2*np.pi/m - phi)
279
280
  for s in z[j-1]:
280
281
  d = -1 if s < 0 else 1
281
- a[abs(s)-1] = d*np.cos((j-1)*2*np.pi/m)
282
- toggles = np.sort(np.hstack(
283
- (np.nonzero(a>0), np.nonzero(a<0)))[0])
284
- l = 0
285
- for u in toggles:
286
- if a[l] == 0:
287
- a[l:u] = a[toggles[-1]]
288
- else:
289
- a[l:u] = a[l]
290
- l = u
291
- a[l:] = a[l]
292
- curr += a
293
- NY = 4096
294
- y = [[c]*NY for c in curr]
282
+ a[abs(s)-1] = d*curr
283
+ cdist[j] += a
284
+ return cdist
285
+
286
+ def mmf(self, k=1, nmax=21, phi=0):
287
+ """returns the dimensionless magnetomotive force
288
+ (ampere-turns/turns/ampere) and winding angle of phase k (rad)
289
+ Arguments:
290
+ k: (int) winding key (all if 0 or 'all')
291
+ nmax: (int) max order of harmonic (in electrical system)
292
+ phi: (float) current angle (default 0)
293
+ """
294
+ cdist = self.currdist(k, phi)
295
+ num_slots = len(cdist[list(cdist.keys())[0]])
296
+ t = self.Q//num_slots
297
+ clink = np.zeros(num_slots)
298
+ for j in cdist:
299
+ a = cdist[j]
300
+ ap = np.zeros(len(a))
301
+ l = 0
302
+ v = 0
303
+ for n in np.nonzero(a>0)[0]:
304
+ ap[l:n] = v
305
+ v += cdist[j][n]
306
+ l = n
307
+ ap[n:] = v
308
+ an = np.zeros(len(a))
309
+ l = 0
310
+ v = 0
311
+ for n in np.nonzero(a<0)[0]:
312
+ an[l:n] = v
313
+ v += cdist[j][n]
314
+ l = n
315
+ an[n:] = v
316
+ clink += an + ap
317
+
318
+ NY = 4096 # number of samples per slot
319
+ y = [[c]*NY for c in (clink-np.mean(clink))]
295
320
  yy = np.tile(np.hstack(
296
321
  (y[-1][-NY//2:], np.ravel(y[:-1]), y[-1][:-NY//2])), t)
297
322
  yy /= np.max(yy)
@@ -309,7 +334,6 @@ class Winding(object):
309
334
  freq = np.fft.fftfreq(N, d=taus/NY)
310
335
  T0 = np.abs(1/freq[imax])
311
336
  alfa0 = np.angle(Y[imax])
312
- # if alfa0 < 0: alfa0 += 2*np.pi
313
337
  pos_fft = np.linspace(0, 2*np.pi/t, 20*pb)
314
338
  D = (a*np.cos(2*np.pi*pos_fft/T0+alfa0))
315
339
  nue, mmf_nue = np.array(
@@ -317,11 +341,15 @@ class Winding(object):
317
341
  np.arange(0, nmax),
318
342
  2*np.abs(Y)/N) if f > 0]).T
319
343
 
344
+ if alfa0 > 0:
345
+ alfa0 -= 2*np.pi
346
+
320
347
  return dict(
321
- pos=[i*taus/NY for i in range(NY*self.Q//t)],
348
+ pos=(taus/NY*np.arange(NY*self.Q//t)).tolist(),
322
349
  mmf=yy[:NY*self.Q//t].tolist(),
323
350
  alfa0=-alfa0/self.p,
324
351
  nue=nue.tolist(),
352
+ currdist={k: cdist[k].tolist() for k in cdist},
325
353
  mmf_nue=mmf_nue.tolist(),
326
354
  pos_fft=pos_fft.tolist(),
327
355
  mmf_fft=D.tolist())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: femagtools
3
- Version: 1.7.7
3
+ Version: 1.7.9
4
4
  Summary: Python API for FEMAG
5
5
  Author-email: Ronald Tanner <tar@semafor.ch>, Dapu Zhang <dzhang@gtisoft.com>, Beat Holm <hob@semafor.ch>, Günther Amsler <amg@semafor.ch>, Nicolas Mauchle <mau@semafor.ch>
6
6
  License: Copyright (c) 2016-2023, Semafor Informatik & Energie AG, Basel
@@ -48,6 +48,7 @@ Requires-Dist: femagtools[dxfsl,meshio,mplot,svgfsl,test,vtk,zmq] ; extra == 'al
48
48
  Provides-Extra: dxfsl
49
49
  Requires-Dist: dxfgrabber ; extra == 'dxfsl'
50
50
  Requires-Dist: networkx ; extra == 'dxfsl'
51
+ Requires-Dist: rdp ; extra == 'dxfsl'
51
52
  Provides-Extra: meshio
52
53
  Requires-Dist: meshio ; extra == 'meshio'
53
54
  Provides-Extra: mplot
@@ -56,6 +57,7 @@ Provides-Extra: svgfsl
56
57
  Requires-Dist: dxfgrabber ; extra == 'svgfsl'
57
58
  Requires-Dist: networkx ; extra == 'svgfsl'
58
59
  Requires-Dist: lxml ; extra == 'svgfsl'
60
+ Requires-Dist: rdp ; extra == 'svgfsl'
59
61
  Provides-Extra: test
60
62
  Requires-Dist: pytest ; extra == 'test'
61
63
  Provides-Extra: vtk
@@ -1,4 +1,4 @@
1
- femagtools/__init__.py,sha256=RUddQSC2XLDQ3qyyCbKuSFOSWVCY9Pf07TYeocqb9wU,1600
1
+ femagtools/__init__.py,sha256=ATMoeLjKbQNtu7mNeonzwYoT_GNWt_6-meukz6ptS4c,1600
2
2
  femagtools/airgap.py,sha256=hELJXe52yUw82JwZ1tGUXUtRhMG2_WSUBVeGkTZSAM8,1900
3
3
  femagtools/amazon.py,sha256=O1ICuv21XDAJi1qK1Sigs2TdS6hDZP19OzvmE2t76wU,12069
4
4
  femagtools/amela.py,sha256=pHjfXzpANI-7oz8MtrqNcyDZ6PxVM91vCJuvYhHy1rk,13891
@@ -15,27 +15,27 @@ femagtools/dakotaout.py,sha256=6nn0PXsB40mPKiQLenqAtHy0KXCO7kvqqQ-aD2JhQvw,5573
15
15
  femagtools/docker.py,sha256=XDVmLBB0z4sZZpcrx7Wbm84xl4ksj7aqn5-ZOPxdxm4,7460
16
16
  femagtools/ecloss.py,sha256=gaZ8JmlFVoP6IYe79YXPXvZSULm8IZr6bPBdKuyKaIo,12832
17
17
  femagtools/erg.py,sha256=IXKq76P9qLt_ssNOP78v8Qizk3J2Zg80yaKDSjzwoJE,1224
18
- femagtools/femag.py,sha256=5l1T4-oZ-5U_h2v1disLmQR5wxuHDW3SF6_qrZZShIY,44155
18
+ femagtools/femag.py,sha256=fFKsKiwiajNU5FXQPODMb8Tx0pPSyMfLEy-nfo_upBg,44566
19
19
  femagtools/forcedens.py,sha256=7NNv75Vg9vQ_fy8W4kM2rlSO970zaSmeurhPmdAxsOU,8485
20
- femagtools/fsl.py,sha256=-dN5owgRz72MWlezegoKDDPvG8y-EhZW13qIbxyXpm8,35106
20
+ femagtools/fsl.py,sha256=5LsTXZ-fnos13HRycgu0i5claxyp5czL9xb61lpfRnM,37456
21
21
  femagtools/getset.py,sha256=yJ6Em35DeWK7WNZW0qjjS5s7LUkVh5mbgxF59HHm5FM,3017
22
22
  femagtools/gmsh.py,sha256=IKhNiviIBji4cMxAhxaYXNqBRMNAPSKsBGdnGyxkyQw,3903
23
23
  femagtools/google.py,sha256=ugRyHY1zBjHR4aNfbA7GeF-ZU_NgleuVTZaWpi_XLT4,17144
24
24
  femagtools/grid.py,sha256=s7LfKKLm2H4-cza2kSEANq6vwxq10Su3TJl3kHShHRA,1561
25
25
  femagtools/heat_source_network.py,sha256=dz3nTK084SR2fyy1167wlpBlGrzv54OqCCGKPNWqpsU,16836
26
26
  femagtools/hxy.py,sha256=PkiZ_-CRhtvtpkmLAP8iMtwvzh7CjKGGcAbOhFb4Nls,6275
27
- femagtools/isa7.py,sha256=d5AcAmvjSipC7SJ8eAaRcPC0rbEuIxHNAk9JdrVU3yQ,58355
27
+ femagtools/isa7.py,sha256=bso2gRHTNoDgupWUAmormQD9Izj1l1EcT9XxvybiD8Y,60197
28
28
  femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
29
- femagtools/job.py,sha256=dOatzr10nIda76CjVRSS0SfEWC8_BAw0kowli523qbY,11320
29
+ femagtools/job.py,sha256=sIRVXsyoupfRXqGsWyOHMetcKlWIyggxfVURjM8aD54,11322
30
30
  femagtools/losscoeffs.py,sha256=Nil2fvkkS6-T29OnHIsdVbegCHyl23iZg8rMVbbA5wY,6785
31
31
  femagtools/magnet.py,sha256=Nuk060bT4Wa3lX74HdefqTTtUxLaERDSBYTTpbi6KP4,1093
32
32
  femagtools/mcv.py,sha256=Y5tCBEhm6k64m9xQ-salId5e-U29nNTz-iH4MHTbE5Y,40673
33
33
  femagtools/me.py,sha256=XNK0l-aroNYfKyxV_uslE8q3vJb_KuntAYTWd-4FQaQ,1833
34
- femagtools/model.py,sha256=J6AJS9DHUb3gnp1d9QakOL2E6WgpnCIqsAOU5xieH9M,17307
34
+ femagtools/model.py,sha256=dK-SuH_dp1eN_wmFj_m1-PSEQdvT-g9roPu1s3zm4Ag,17700
35
35
  femagtools/moproblem.py,sha256=kOP8pRdD8YXz28_M2WKnFgl3eeJ7tqg49ohoazsmUOg,2825
36
36
  femagtools/multiproc.py,sha256=7mJF-VU1NrJkENyg8eHtDrDRNBwLPK43phZv3ehm9BU,8435
37
37
  femagtools/mxw2msh.py,sha256=CIIqAvfs8U-A0OfuOAoDaqNSmoMSHSI_tW1CPFRCP5E,2151
38
- femagtools/nc.py,sha256=9S9AXNj909A7qQiJFe6jFTXYzh4_yZpkeXj6IiohtJo,14684
38
+ femagtools/nc.py,sha256=bAj3iurE9WaovoCi76ry2aJZJ6rC1zO6xWrfsSD6lrc,15160
39
39
  femagtools/netlist.py,sha256=CSCl8setLZ_L8DCnNWaNA3-wLe1yo-fmzARZoVvYfaA,2052
40
40
  femagtools/ntib.py,sha256=76g1ZO3Fq_kN-HTMBvaKvJmMMlJMyEPFeNAcJPq3w7Y,3099
41
41
  femagtools/opt.py,sha256=wBU0yh3hZlNti_zfIvtKcPg1EJrnE3I1BqmVxLGWixU,8753
@@ -46,52 +46,52 @@ femagtools/ts.py,sha256=x9aCMVASjdBZuyI2pJGMyi1dveGFd_pWQ20cZ-l_moc,47216
46
46
  femagtools/utils.py,sha256=1SX5s21xyW8u0NF_Hjs7DByyCTdLm9VRArLburTyHR0,1581
47
47
  femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
48
48
  femagtools/vtu.py,sha256=Sf83dHIfCKY2km-MIUHKKoj-JKN4PDX7kkPLZXyIYY4,10723
49
- femagtools/windings.py,sha256=Y2LGsr4QKBH_-HkMTB7zGMxrHHQVROOX2zpBSSk2DFY,22846
49
+ femagtools/windings.py,sha256=-pVnutzZNy9wKYDV_9AoOqW3285UuIpqJkoUgan6A-Q,23456
50
50
  femagtools/dxfsl/__init__.py,sha256=MywcCdpKPKs4qJBJJgeDsikJFJ2P48dbTuNk303f5pM,76
51
- femagtools/dxfsl/area.py,sha256=Y7qNteasOB54hzo-QkDlHdjcym74FKJVdUrKaCFy23I,60813
51
+ femagtools/dxfsl/area.py,sha256=A5kwW937EAAjxGSamW_RhXPu-ZNIsLpG670_ghI4rrM,61852
52
52
  femagtools/dxfsl/areabuilder.py,sha256=Siu11yRcNJiSCWwc865-OvuVhSmLtRQWysbe1-rUcN0,34197
53
53
  femagtools/dxfsl/concat.py,sha256=F6scwesxyOmfmKQ5kGspNCxA71Yz6QgxFL7lTj3hsaI,13385
54
54
  femagtools/dxfsl/conv.py,sha256=Z_jf4OTxikr-SoUuBew_wrEj32qcGPyEp7VMtkRJx9M,10747
55
- femagtools/dxfsl/converter.py,sha256=47_AaZNCEXLpwwj17i7mef-QD7P_jusKaYYMfyMASow,33654
55
+ femagtools/dxfsl/converter.py,sha256=XDy8eN3Ck9M_U4K-9746tv4Bu4APzv62tq47XsQR6UE,33759
56
56
  femagtools/dxfsl/corner.py,sha256=-XPBcnEau-2-SRHLYzlBqCQGaFfgm_DH2qR1mSaFoAs,1311
57
57
  femagtools/dxfsl/dumprenderer.py,sha256=n4AvInjvGIaC2iKZtQaYXXDyJVSQ3uEOFOLD4-xfKRY,1861
58
58
  femagtools/dxfsl/dxfparser.py,sha256=kyXG0kZfNyOgn96MqBgP8RhOQhppfB5NbyRNNybs1C0,13451
59
59
  femagtools/dxfsl/femparser.py,sha256=O8940Q1Mz8MKng6W8M3s9KfTvhDLJ56tfQWtZEW3xMM,2134
60
- femagtools/dxfsl/fslrenderer.py,sha256=R_XSTSu0Cetj0UfPcRmdVQz0uY9ouI9Nhhf1HpLh2eE,27376
60
+ femagtools/dxfsl/fslrenderer.py,sha256=uAa2oEQjiyiXpyU0-0I4WEnNK_V1-7zPHrCIOb0xxX8,27652
61
61
  femagtools/dxfsl/functions.py,sha256=teJHtVxoViGs66AB8_4BxRrFQx9SbPT2azIrKyhJHOc,12005
62
- femagtools/dxfsl/geom.py,sha256=75fbgCBNldGnQObFhft9muN-7MuSTK9dWHgFH16aRNA,171186
62
+ femagtools/dxfsl/geom.py,sha256=eYKe8PtWKl-4rcW570HVvOrDxX_CguMCupp8Mo60FQY,171680
63
63
  femagtools/dxfsl/journal.py,sha256=S17B7wsrq5QzIUbjgg0ntvnpgH0thHq9aQXO7GdYlQQ,4265
64
64
  femagtools/dxfsl/machine.py,sha256=NoUtAg-li3djMHg0jMqNoFp-aupSlrM_yrQ9kM4ip28,50222
65
65
  femagtools/dxfsl/plotrenderer.py,sha256=q2cORuxJEf1Ws6oCY9c0gF6N3kDrcI6WOz3u5Vl6R_c,13823
66
66
  femagtools/dxfsl/shape.py,sha256=ZmWw7VTSJs5rcY1Lh99MKo804mO7dSGHdKMIh-nVBow,59904
67
- femagtools/dxfsl/svgparser.py,sha256=R8V2V5jE6JyVfzshJVaPgsSuMlQf_pwJTFvrTrKDxZ0,2905
67
+ femagtools/dxfsl/svgparser.py,sha256=FE8Jk3pV6e4AtJlrJuUxz89_JZC9buS0wwTBsX52O1g,3762
68
68
  femagtools/dxfsl/symmetry.py,sha256=0WeDq_z42A_cjG4m_vREDWyx-wqHqXDkoCT2eXh2EMo,38084
69
69
  femagtools/machine/__init__.py,sha256=U8W65K7jr7jDdC1KnJh0WjYd8DFaLnIFVvlh-TKcV94,7174
70
- femagtools/machine/afpm.py,sha256=hNyDFRLGmCuWRPZl_u1ztJ4pA-Y_mxLaVvg3UJkzRuE,24766
70
+ femagtools/machine/afpm.py,sha256=3hJTmQxeYDyfTelr_sMEFOB6CsTIFTqmnNH3SfiZQzU,24956
71
71
  femagtools/machine/effloss.py,sha256=GV_bc5f1ysBi1Ng7FR3fD1xh5KXa6ACc55iWfsltMBI,13663
72
72
  femagtools/machine/im.py,sha256=3Y54AHMZfAjkvgexx2E-5jxNWzaVQ-SyaETCh7gNBYA,38008
73
73
  femagtools/machine/pm.py,sha256=iAi2iVk5REPB51Tz_mLrItofFBVQ2ZWzDsqlsu08ldM,68129
74
74
  femagtools/machine/sizing.py,sha256=nWCfxbyWfbw5-7xu0qZ6zjWNquEPn3fUH-fQeGb6QUc,24307
75
75
  femagtools/machine/sm.py,sha256=Lb1urOMl-RoPFqxaMb9fN-aHqlNsMyUWabhn1O2jlos,38807
76
- femagtools/machine/utils.py,sha256=37_Z8aYlS1peKsk_d1df8_yn9RNCvTdkMJ0k2Yt9XfA,20856
76
+ femagtools/machine/utils.py,sha256=CRTY5qwlaN_Zp5SZgxicXTfZyVU5fjtm4XKEA-peNCc,20856
77
77
  femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
78
78
  femagtools/moo/algorithm.py,sha256=e-Cgp2rp_hG9DXqWqluzQGNIWvCfthUgLD8O-aVPofA,5763
79
- femagtools/moo/population.py,sha256=qGEsm-2Ys_pTkVQv3Zv36HzOlqUxtMvM6NqY_KytsUE,10060
79
+ femagtools/moo/population.py,sha256=krIl8tOJXPhCgBemkqn-jwvZg1VzsGniqMN_KAFxbuw,10203
80
80
  femagtools/moo/problem.py,sha256=McIGKAXK97Jygumns0qmFeYxTG6KDRSQj2aENeC9F9A,2391
81
81
  femagtools/moo/test/AlgorithmTest.py,sha256=KzR1og4bu6NOE61DDKjEMTQdsysmho4LCYmJ6WZoILo,2535
82
82
  femagtools/moo/test/PopulationTest.py,sha256=lG9NeWo0xrslfQRa4tgy1Nj23VJMFIlg_vQ9KUBYnRA,5529
83
83
  femagtools/moo/test/ProblemTest.py,sha256=r5XEfY4LPscDb35TxxPd0lbP3nUmL6_G6vrRo1I3RSg,505
84
- femagtools/plot/__init__.py,sha256=dD_wvo6sGc8jvJYD1b0Z7oxCE4O9uQ3Igb5DeAjZDWU,939
84
+ femagtools/plot/__init__.py,sha256=f0yNw9NhadltPIu7zRWwTAY6FgHKeq9ul-3UcnK8Fmk,949
85
85
  femagtools/plot/bch.py,sha256=_EEPPEqtEPeWco3xlQqUuZft1eF-IXbMNnXyd8pYEJs,28873
86
86
  femagtools/plot/char.py,sha256=gVWPQTJkU8VkbCGFD62zfmZA_K0KlZ7EjorhwshhnZA,12123
87
87
  femagtools/plot/fieldlines.py,sha256=QtKF4nhnQ_FHHGh9Qez3GVmym0CLhW1ZyIKtk4pzos4,1136
88
88
  femagtools/plot/fluxdens.py,sha256=NlexRJ3f_8CgKoWrV82ZIsAXPrLhwj98uOe8_fUks7A,1082
89
89
  femagtools/plot/forcedens.py,sha256=Vloi9czy7qbGXI-Vm7Cow6IfHTsFhCLI1YWduFOR55c,4075
90
90
  femagtools/plot/mcv.py,sha256=NwDBe40PQgKqWh_rM89k-vsxRmvyjetv4y7elXzTPZU,3099
91
- femagtools/plot/nc.py,sha256=Un1F9V_M8tkvQpXjqDoUiRi8jvsriGYNl04GrAhHCmI,10392
91
+ femagtools/plot/nc.py,sha256=S_Rb0ax4O0pFVzcL4JctwfXl6-uQFHUJwoeQMftibJM,10839
92
92
  femagtools/plot/phasor.py,sha256=5QG1GkXKVksc8P6Q4thKADf6W1l8rDKeArIHFYvbXlw,4858
93
- femagtools/plot/wdg.py,sha256=U0IoQ1WW0N_C-jeAU7gr4sLqPa_W7CsjgtGCo1M03uo,8866
94
- femagtools/svgfsl/converter.py,sha256=ZwHOugB-LwIKDz27tjKWiA_dMA4JOL1FWWXPs812uwc,2748
93
+ femagtools/plot/wdg.py,sha256=Bf9miZqIrIf69mzfufPsHVkKGmPi-lYmBfgggw2yE7w,9816
94
+ femagtools/svgfsl/converter.py,sha256=F0os2rqgLREQlnfARlVQrpFC1GDEC49jKux75BQqqcQ,3014
95
95
  femagtools/templates/FE-losses.mako,sha256=Rql5_8Q6_uthpr-uFXMUo7tdHehfZYND-7M-ohJXVU8,874
96
96
  femagtools/templates/afm_rotor.mako,sha256=fY-dlZvRLN9UAy5V6Q_inWghkSUe8pzrCYjJdNgfNXs,3112
97
97
  femagtools/templates/afm_stator.mako,sha256=l1xEwxffZ1jyx5wuJ3rhVbVlZirJzD2K8n4i5Dvbxuc,5344
@@ -112,7 +112,7 @@ femagtools/templates/ec-rotorbar.mako,sha256=RbA1TVNczEEddTNjvGLPxILExxp4rIgoxXe
112
112
  femagtools/templates/fe-contr.mako,sha256=NoP7FQ62ITxgNmwP6GmkCnGhjEn5gPLUFgdLdhkKylY,1983
113
113
  femagtools/templates/fieldcalc.mako,sha256=bEtff9HeD6hTpB9t3COt40V1oGeT0a_6ouWTQlKIGX8,749
114
114
  femagtools/templates/gen_hairpin_winding.mako,sha256=U8ZBe49WoRyUivcFgoJpwFRhQKlBQJthhCGVSf9emgY,5871
115
- femagtools/templates/gen_winding.mako,sha256=WN2YZKPltS4pKwZxyHlfZzmk7MatTmftL__3-cKxN8s,3830
115
+ femagtools/templates/gen_winding.mako,sha256=kVMRkonDLHRB12bJ5e0Pwb1-8hBGVMM4dn1FEo70bok,3984
116
116
  femagtools/templates/inductances.mako,sha256=OpcW3E7LW09J8eoXylzfq2R16LKKxzJDr0PGCdHzixM,560
117
117
  femagtools/templates/ld_lq_fast.mako,sha256=BEQoplL7Ojqg5caldzAhMLKL-3E78wCSSbz5-KkDk2o,1359
118
118
  femagtools/templates/leak_dist_wind.mako,sha256=vs8fpxcM203kL8BVNuR8BKSmMsQM6U1_vTtYXZIfdSc,600
@@ -120,13 +120,13 @@ femagtools/templates/leak_evol_wind.mako,sha256=JKff7ZEpndKmFYr7R0xaef_49YV6TG0t
120
120
  femagtools/templates/leak_tooth_wind.mako,sha256=LYCPSXhSLApidthuuGNiApLh0EJZOPZmTX0LZ5cOblQ,431
121
121
  femagtools/templates/magnet-data.mako,sha256=j96ihn0S-Z1PrWMsC0BQZuPYfL6vImKOVYDSxH5-cK0,1271
122
122
  femagtools/templates/magnetFC2.mako,sha256=AB2KlOHc9y1aoLXRP_v6ncok3LC2t7diJd20Rb_7tLc,788
123
- femagtools/templates/magnetIron.mako,sha256=m1uXJni0dPhjYUtbEJAT9vtWoYkw1GeuIz-E9X1A6UU,3070
124
- femagtools/templates/magnetIron2.mako,sha256=ZK1F0oon1Go3-942D4ci9kq9938KHpHlQdKyJZpH09c,1426
125
- femagtools/templates/magnetIron3.mako,sha256=d62XtiW1Vtb6pjt4A-8paficft3NUOUzjQem_1sd7xs,2315
126
- femagtools/templates/magnetIron4.mako,sha256=qZ8coX7Am8bjXKiolD2Vjq2MGlScHbyBL6kh7ImvGww,1413
127
- femagtools/templates/magnetIron5.mako,sha256=IA8eRlow8UT98p2W7qCTsROxAdWHKPSCkIjbJZjqyio,1376
128
- femagtools/templates/magnetIronV.mako,sha256=Z5ri81TltpBI3UAnVo0gWljlFyILczub-6-44yb-Z58,3960
129
- femagtools/templates/magnetSector.mako,sha256=db_i1jNJ4TONkBIEKVIWVRZkEJWPwO_r4MoZditItJU,3520
123
+ femagtools/templates/magnetIron.mako,sha256=gN5YeckGb9khn7jqv9D1b06MnkKyZWCzYaK_5Y_uPFU,2528
124
+ femagtools/templates/magnetIron2.mako,sha256=iO2Vlr9jA-ZngJ1LxwtFVou2tWi7_hxYOgdMqd4P0QM,2581
125
+ femagtools/templates/magnetIron3.mako,sha256=OySuTGYbQvDgqCewwihhY9FZfYWrrq7l0-dujriGuqE,3471
126
+ femagtools/templates/magnetIron4.mako,sha256=zJa8-9oqasrQib7ecM7q6OMEfM8qPyz2O2wb65npfGA,2568
127
+ femagtools/templates/magnetIron5.mako,sha256=EzDgwrT3JhS68dXTOvipxgFknLwv0VQ-e1c5F-BhqfE,2531
128
+ femagtools/templates/magnetIronV.mako,sha256=JWHitSk_EJMD38lmxxTREIGInLHa3VtPsxbtPEXCxOM,3363
129
+ femagtools/templates/magnetSector.mako,sha256=nQ68Kxjz-pKNYeleMbbOngholLU_02znb6Yuf7Usbdw,3171
130
130
  femagtools/templates/magnetSectorLinear.mako,sha256=ez2rkZslw66Zy4DCDiLjI2K45nEjGgunl0jsXseO_Zs,727
131
131
  femagtools/templates/magnetShell.mako,sha256=vpyZIZ5tOsrmUVM00Kime7zyu1lK9P61xq78jB8BLdo,1295
132
132
  femagtools/templates/magnetShell2.mako,sha256=4IJBfBTPxuYHr1SAcVvNdQoGd8emwsx8vMKQPI9pRlc,4080
@@ -143,6 +143,7 @@ femagtools/templates/plots.mako,sha256=6xfmncVbzDiJLF6V0B6fha23H19R7P26DvcTTwzJ5
143
143
  femagtools/templates/pm_sym_f_cur.mako,sha256=KlskcNx5Y_HNwt2crA7CqHN5TIaKBb14T6cFg2vghl0,1464
144
144
  femagtools/templates/pm_sym_fast.mako,sha256=NOSbuWSEM2XGY5-JweGxSr32mXGBVSas_aSOQyK4uEU,2361
145
145
  femagtools/templates/pm_sym_loss.mako,sha256=dh0o3ZamZuWs7sHc-jS7ohKsqeZCA0tRaqkaFmXlRS0,1009
146
+ femagtools/templates/prepare_thermal.mako,sha256=VtuDTSoigimcmdnaiLwBz_qRPgIkxaCNF5LoANM3Sgw,6615
146
147
  femagtools/templates/psd_psq_fast.mako,sha256=7DQUZI6KOjdKQMFLKySGUlWXo4U_rZuHXFzLxiA1GGc,1339
147
148
  femagtools/templates/ring.mako,sha256=Cuc_FuCPWZM-g3TxHqzTdjknYEJSUgP-y64gp8pekDI,643
148
149
  femagtools/templates/rot_hsm.mako,sha256=eh50TbpWNUALK9_7wOOJ7KPewHos7JExAfMACbPlXYc,973
@@ -158,7 +159,7 @@ femagtools/templates/stator3Linear.mako,sha256=pNe3C1wT0W2C0qePo3sEyebW1z_dpTuJz
158
159
  femagtools/templates/stator4.mako,sha256=Jq8pfIuOmmpyGOL1z2aQZfbwMS5-Zyn6OGJ51LCBVKs,1179
159
160
  femagtools/templates/statorBG.mako,sha256=fh0cVOZVWyLojlGxWJoFz2pvdL6Yxy4xzhY-Joc2xeg,893
160
161
  femagtools/templates/statorRing.mako,sha256=sDgDmk71EoE8d4e9cmyqKqRldfC8uKMmpHEjXJGIt_k,2071
161
- femagtools/templates/statorRotor3.mako,sha256=ynN1GG9rKvAWAPV-vgOImCDzBlkO_UY9ix8uQ7HUKTI,5117
162
+ femagtools/templates/statorRotor3.mako,sha256=6ycHlkSnk-TKFdoxiOqjpr6Pk0l634w3_O94vvRP4BI,4357
162
163
  femagtools/templates/stator_msh.mako,sha256=Neze1ielMCk7TrARyhOra91fFQVT8Phsgk2Omt_aMG8,1799
163
164
  femagtools/templates/therm-dynamic.mako,sha256=pEz7jrUpopK1-RqgulNnrkSaCZDjfLelsVo6cBqmpac,3142
164
165
  femagtools/templates/therm_static.mako,sha256=ulevp4AP-kZ1_qdScPMaX9tLqvvP0t9lFflWTXgUxaE,1310
@@ -176,7 +177,7 @@ tests/test_effloss.py,sha256=-kJJNgS5c6saHXjNuhAe5GdWfr9mEYpPo8fE8OtjsNA,1142
176
177
  tests/test_erg.py,sha256=kRVzpXa6JDdbxTss18HUWKny9Dx8IMx9uGTrbQCnHwg,523
177
178
  tests/test_femag.py,sha256=55cCx90tJ1BEeu_-DOit37y26hFGVSYwkT81s9-p28E,1934
178
179
  tests/test_forcedens.py,sha256=Yzl3SAmJNkZN9dA3aLxRvwY8fKsw077Fl0iJm6zJ5Sk,536
179
- tests/test_fsl.py,sha256=H2doNSNLx9FmcHsq-Ng8mEwV7qZtAdIK4bFCyhFDUTw,16623
180
+ tests/test_fsl.py,sha256=rBTfOeBXixIdxcxGS9lKV9hHBNhgglsH56gmbK_AMeA,16623
180
181
  tests/test_heat_source_network.py,sha256=TC-Gl4iy9jnMGfsY_24XjwlP-SDxP345JKVT8xRwsFo,690
181
182
  tests/test_hxy.py,sha256=pVb6ZfDhBy5-DXa3gh7RQmLFG8p5cSYB8gdGLC8kjAk,640
182
183
  tests/test_im.py,sha256=55wfCoA8_PuogI_RsC3AjUQCpR84T-HddtHuU1NxfPc,662
@@ -202,7 +203,7 @@ tests/test_tksreader.py,sha256=8QtPAzxPJbkpxd1Nw2I7ggaTaKaL4WY55JJBHkZAzus,766
202
203
  tests/test_ts.py,sha256=tR2x5cKU9gw2fUprzaPgPbCvmDOHDO36JUPCCoTlY7Y,1833
203
204
  tests/test_vbfreader.py,sha256=-6oAhLJDb7K3Ui5O1mtHvbskawEfgyIH-Of5n-8u-fc,832
204
205
  tests/test_vtu.py,sha256=pGpHuAcaCk5zDYTBBp_akOEenZOpq-IzGl_kaMtodyA,1469
205
- tests/test_windings.py,sha256=QThZrGiG49yrLK6p2SlLbd05FSwI1yB1bQiKjwdXhh8,4911
206
+ tests/test_windings.py,sha256=qklMqzQZxqv0cdsO4yO1y38uXXpPuCoH9eiyqLDgVyA,5665
206
207
  tests/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
208
  tests/engines/test_amazon.py,sha256=4uy36NIo0epi3CgjUm8vl4snLpr4NRvUoWi6Zew_zcE,2014
208
209
  tests/engines/test_config.py,sha256=_I1Z5RuubgnOGQeZHjAsCsovt0WEMH0o4ILz032l_Bc,663
@@ -213,9 +214,9 @@ tests/moo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
214
  tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
214
215
  tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
215
216
  tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
216
- femagtools-1.7.7.dist-info/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
217
- femagtools-1.7.7.dist-info/METADATA,sha256=Y2Ok4pRFh_Cksnk-qCvcDvKgAK7jG_uchtA1lPY6ylg,6156
218
- femagtools-1.7.7.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
219
- femagtools-1.7.7.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
220
- femagtools-1.7.7.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
221
- femagtools-1.7.7.dist-info/RECORD,,
217
+ femagtools-1.7.9.dist-info/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
218
+ femagtools-1.7.9.dist-info/METADATA,sha256=3f-iDI4cc4uKilc09dDWOGK2XNY0F0bkUHqC1-3x2hM,6233
219
+ femagtools-1.7.9.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
220
+ femagtools-1.7.9.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
221
+ femagtools-1.7.9.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
222
+ femagtools-1.7.9.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
tests/test_fsl.py CHANGED
@@ -498,7 +498,7 @@ class FslBuilderTest(unittest.TestCase):
498
498
  magnets = femagtools.magnet.Magnet(magnetmat)
499
499
  condMat = femagtools.magnet.Magnet([dict(name='Cu', elconduct=56e6)])
500
500
  fsl = self.builder.create_model(model, magnets, condMat)
501
- self.assertEqual(len(fsl), 187)
501
+ self.assertEqual(len(fsl), 188)
502
502
  brem = [l.strip() for l in fsl
503
503
  if l.split('=')[0].strip() == 'm.remanenc']
504
504
  self.assertEqual(brem[-1].split('=')[-1].strip(),