femagtools 1.8.12__py3-none-any.whl → 1.8.14__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 +1 -1
- femagtools/bch.py +49 -15
- femagtools/ecloss.py +12 -4
- femagtools/femag.py +3 -2
- femagtools/fsl.py +28 -10
- femagtools/isa7.py +16 -0
- femagtools/job.py +15 -3
- femagtools/machine/__init__.py +8 -7
- femagtools/machine/effloss.py +37 -14
- femagtools/machine/im.py +51 -17
- femagtools/machine/pm.py +2 -1
- femagtools/machine/sizing.py +91 -5
- femagtools/machine/sm.py +69 -70
- femagtools/machine/utils.py +37 -14
- femagtools/multiproc.py +6 -0
- femagtools/parstudy.py +20 -14
- femagtools/plot/bch.py +1 -1
- femagtools/shortcircuit.py +15 -9
- femagtools/templates/FE-losses.mako +0 -3
- femagtools/templates/gen_hairpin_winding.mako +8 -6
- femagtools/templates/noloadflux-rot.mako +1 -0
- femagtools/ts.py +38 -7
- femagtools/utils.py +5 -1
- femagtools/zmq.py +4 -1
- {femagtools-1.8.12.dist-info → femagtools-1.8.14.dist-info}/METADATA +3 -2
- {femagtools-1.8.12.dist-info → femagtools-1.8.14.dist-info}/RECORD +32 -32
- {femagtools-1.8.12.dist-info → femagtools-1.8.14.dist-info}/WHEEL +1 -1
- tests/test_bchreader.py +5 -5
- tests/test_fsl.py +2 -2
- {femagtools-1.8.12.dist-info → femagtools-1.8.14.dist-info}/entry_points.txt +0 -0
- {femagtools-1.8.12.dist-info → femagtools-1.8.14.dist-info/licenses}/LICENSE +0 -0
- {femagtools-1.8.12.dist-info → femagtools-1.8.14.dist-info}/top_level.txt +0 -0
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
slot_div_angle = 360/m.tot_num_slot
|
4
4
|
|
5
|
-
if m.xcoil_1 ~= nil and m.ycoil_1 ~= nil then
|
5
|
+
if m.xcoil_1 ~= nil and m.ycoil_1 ~= nil then
|
6
6
|
rcoil, phi_coil = c2pd(m.xcoil_1, m.ycoil_1)
|
7
7
|
else
|
8
8
|
rcoil, phi_coil = da1/2 + m.slot_height/2, slot_div_angle/2
|
9
|
-
end
|
9
|
+
end
|
10
10
|
|
11
11
|
-- delete existing mesh in the slot
|
12
12
|
for i = 1, m.num_sl_gen do
|
@@ -173,11 +173,11 @@ for i = 1, #winding do
|
|
173
173
|
slot_nr = winding[i][2]
|
174
174
|
layer = winding[i][3]
|
175
175
|
direction = winding[i][4]
|
176
|
-
if direction < 0 then
|
176
|
+
if direction < 0 then
|
177
177
|
dir = 'wo'
|
178
178
|
else
|
179
179
|
dir = 'wi'
|
180
|
-
end
|
180
|
+
end
|
181
181
|
if i == 1 then
|
182
182
|
if slot_nr <= m.num_sl_gen then
|
183
183
|
wkey = def_new_wdg(wire_xy[slot_nr][layer].x, wire_xy[slot_nr][layer].y, cols[winding[i][1]], "Phase"..winding[i][1], 1, 0, 0, dir)
|
@@ -188,7 +188,7 @@ for i = 1, #winding do
|
|
188
188
|
if slot_nr <= m.num_sl_gen then
|
189
189
|
add_to_wdg (wire_xy[slot_nr][layer].x, wire_xy[slot_nr][layer].y, "wsamekey", dir, "wser")
|
190
190
|
end
|
191
|
-
|
191
|
+
|
192
192
|
else
|
193
193
|
if slot_nr <= m.num_sl_gen then
|
194
194
|
wkey = def_new_wdg(wire_xy[slot_nr][layer].x, wire_xy[slot_nr][layer].y, cols[winding[i][1]], "Phase"..winding[i][1], 1, 0, 0, dir)
|
@@ -197,4 +197,6 @@ for i = 1, #winding do
|
|
197
197
|
end
|
198
198
|
end
|
199
199
|
end
|
200
|
-
m.num_par_wdgs = ${model.get('num_par_wdgs', 1)}
|
200
|
+
m.num_par_wdgs = ${model.get('num_par_wdgs', 1)}
|
201
|
+
|
202
|
+
pre_models("gen_pocfile")
|
femagtools/ts.py
CHANGED
@@ -149,7 +149,7 @@ class TimeRange(object):
|
|
149
149
|
|
150
150
|
|
151
151
|
class Losses(object):
|
152
|
-
def __init__(self, modelname, dirname):
|
152
|
+
def __init__(self, modelname, dirname, **kwargs):
|
153
153
|
'''Loss calculation for FEMAG-TS simulations
|
154
154
|
Parameters
|
155
155
|
----------
|
@@ -158,10 +158,23 @@ class Losses(object):
|
|
158
158
|
ncmodel : object
|
159
159
|
|
160
160
|
'''
|
161
|
-
|
161
|
+
try:
|
162
|
+
# when vtu files are present
|
163
|
+
self.vtu_data = vtu.read(dirname)
|
164
|
+
except:
|
165
|
+
self.vtu_data = None
|
162
166
|
self.nc_model = femagtools.nc.read(modelname)
|
163
|
-
|
164
|
-
|
167
|
+
try:
|
168
|
+
self.el_induc_idx = -1
|
169
|
+
if np.allclose(self.nc_model.el_fe_induction_1[:, :, 0, -1], 0.0):
|
170
|
+
# torq calc
|
171
|
+
self.el_induc_idx = 0
|
172
|
+
except:
|
173
|
+
pass
|
174
|
+
|
175
|
+
# read iron losses coefficients from user input/nc files
|
176
|
+
self.iron_loss_coefficients = kwargs.get("iron_loss_coefficients",
|
177
|
+
self.nc_model.iron_loss_coefficients)
|
165
178
|
for c in self.iron_loss_coefficients:
|
166
179
|
if c['cw_freq_exp'] == c['cw_ind_exp']:
|
167
180
|
c['kw'] = losscoeff_frequency_to_time(
|
@@ -172,6 +185,8 @@ class Losses(object):
|
|
172
185
|
warnings.warn(
|
173
186
|
'Waterfall method not possible, specify parameter kw')
|
174
187
|
kw = 0.0
|
188
|
+
self.iron_lossdens_el = []
|
189
|
+
|
175
190
|
|
176
191
|
def ohm_lossenergy_el(self, el, supel):
|
177
192
|
'''Ohmic loss energy of an element
|
@@ -594,7 +609,12 @@ class Losses(object):
|
|
594
609
|
sw = self.iron_loss_coefficients[ldi]['spec_weight']*1000
|
595
610
|
ff = self.iron_loss_coefficients[ldi]['fillfactor']
|
596
611
|
|
597
|
-
|
612
|
+
try:
|
613
|
+
bx_vec_0 = self.vtu_data.get_data_vector('b', el.key)[0]
|
614
|
+
except:
|
615
|
+
# read flux density from nc file: remove last point
|
616
|
+
bx_vec_0 = self.nc_model.el_fe_induction_1[el.key-1, :, -1, self.el_induc_idx][0:-1]
|
617
|
+
|
598
618
|
if not self.times.equidistant:
|
599
619
|
bx_vec = np.interp(self.times.vector_equi,
|
600
620
|
self.times.vector, bx_vec_0,
|
@@ -609,7 +629,12 @@ class Losses(object):
|
|
609
629
|
bx_spec[0] = bx_spec[0]/2
|
610
630
|
bx_phi = np.arctan2(spx.imag, spx.real)
|
611
631
|
|
612
|
-
|
632
|
+
try:
|
633
|
+
by_vec_0 = self.vtu_data.get_data_vector('b', el.key)[1]
|
634
|
+
except:
|
635
|
+
# read flux density from nc file: remove last point
|
636
|
+
by_vec_0 = self.nc_model.el_fe_induction_2[el.key-1, :, -1, self.el_induc_idx][0:-1]
|
637
|
+
|
613
638
|
if not self.times.equidistant:
|
614
639
|
by_vec = np.interp(self.times.vector_equi,
|
615
640
|
self.times.vector, by_vec_0,
|
@@ -710,6 +735,9 @@ class Losses(object):
|
|
710
735
|
(se.elements[0].mag[0] == 0.0 and se.elements[0].mag[1] == 0.0):
|
711
736
|
for el in se.elements:
|
712
737
|
ellosses = self.iron_losses_fft_el(el, se)
|
738
|
+
self.iron_lossdens_el.append(dict(key=el.key,
|
739
|
+
area=el.area,
|
740
|
+
losses=ellosses))
|
713
741
|
sehystlosses = sehystlosses + \
|
714
742
|
ellosses['hysteresis'] * scale_factor
|
715
743
|
seeddylosses = seeddylosses + \
|
@@ -791,7 +819,10 @@ class Losses(object):
|
|
791
819
|
self.vtu_data.set_time_window(start, end)
|
792
820
|
|
793
821
|
data_list = ['b']
|
794
|
-
|
822
|
+
try:
|
823
|
+
self.vtu_data.read_data(data_list)
|
824
|
+
except:
|
825
|
+
pass
|
795
826
|
self.times = TimeRange(self.vtu_data, self.nc_model)
|
796
827
|
|
797
828
|
losseslist = []
|
femagtools/utils.py
CHANGED
@@ -10,7 +10,10 @@ def fft(pos, y, pmod=0):
|
|
10
10
|
pmod: number of poles in model (ignored if 0)
|
11
11
|
"""
|
12
12
|
model_angle = pos[-1] - pos[0]
|
13
|
-
|
13
|
+
if 360/model_angle < 1:
|
14
|
+
ntiles=1
|
15
|
+
else:
|
16
|
+
ntiles = int(round(360/model_angle))
|
14
17
|
|
15
18
|
if pmod:
|
16
19
|
negative_periodic = pmod % 2
|
@@ -51,6 +54,7 @@ def fft(pos, y, pmod=0):
|
|
51
54
|
alfa0 = np.angle(Y[i])
|
52
55
|
alfa = np.angle(Y[:nmax])
|
53
56
|
|
57
|
+
|
54
58
|
return {'a': a, 'a0': a0, 'T0': T0, 'alfa0': alfa0,
|
55
59
|
'alfa': alfa,
|
56
60
|
'nue': (2*np.abs(Y[:nmax])/N).tolist(),
|
femagtools/zmq.py
CHANGED
@@ -189,6 +189,9 @@ class SubscriberTask(threading.Thread):
|
|
189
189
|
SubscriberTask.notify_send_header.add('progress_logger')
|
190
190
|
response[0] = b'progress_logger'
|
191
191
|
SubscriberTask.notify_send_data['progress_logger'] = response
|
192
|
+
while self.protId >= len(SubscriberTask.percent_list):
|
193
|
+
# keep old progressbar working
|
194
|
+
SubscriberTask.percent_list.append(0)
|
192
195
|
SubscriberTask.percent_list[self.protId] = json.loads(response[1].decode()).get('percent')
|
193
196
|
continue
|
194
197
|
|
@@ -223,7 +226,7 @@ class SubscriberTask(threading.Thread):
|
|
223
226
|
|
224
227
|
if socks.get(self.controller) == zmq.POLLIN:
|
225
228
|
req = self.controller.recv()
|
226
|
-
self.logger.
|
229
|
+
self.logger.debug("subscriber %s", req)
|
227
230
|
break
|
228
231
|
self.subscriber.close()
|
229
232
|
self.controller.close()
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: femagtools
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.14
|
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
|
@@ -64,6 +64,7 @@ Provides-Extra: test
|
|
64
64
|
Requires-Dist: pytest; extra == "test"
|
65
65
|
Provides-Extra: all
|
66
66
|
Requires-Dist: femagtools[dxfsl,meshio,mplot,svgfsl,test,vtk,zmq]; extra == "all"
|
67
|
+
Dynamic: license-file
|
67
68
|
|
68
69
|
|
69
70
|
# Introduction to Femagtools
|
@@ -1,9 +1,9 @@
|
|
1
|
-
femagtools/__init__.py,sha256=
|
1
|
+
femagtools/__init__.py,sha256=gJcP88c10j1_CgFqstAAzR2NxPFwt_-dkoYUz5i2-yk,1601
|
2
2
|
femagtools/airgap.py,sha256=hELJXe52yUw82JwZ1tGUXUtRhMG2_WSUBVeGkTZSAM8,1900
|
3
3
|
femagtools/amazon.py,sha256=O1ICuv21XDAJi1qK1Sigs2TdS6hDZP19OzvmE2t76wU,12069
|
4
4
|
femagtools/amela.py,sha256=2q-Xsj6i6nQ3iKheBR1vQ4FulJfF1i-L8w3a3U8GYWo,4362
|
5
5
|
femagtools/asm.py,sha256=CiL0KWaF4P7O6-VwmGLdva_icwmPrPiI-TFQ19XYTKk,7660
|
6
|
-
femagtools/bch.py,sha256=
|
6
|
+
femagtools/bch.py,sha256=TC1DKNHuYS9QQNVdBdM1QiMmF6qlT3RnRA4uDMa270c,75623
|
7
7
|
femagtools/bchxml.py,sha256=KrRjAdrUPZXmiWvonu9HhpG_NvImMBpiXWTL4iSr4kE,3142
|
8
8
|
femagtools/condor.py,sha256=J8z9iBdvrGu3I1eFNoyKV8AXzRoTEPGLSak6cXUQxAM,10766
|
9
9
|
femagtools/conductor.py,sha256=rXO7c7Qh_s7JpgILmLd4IbG64vP6Eh143YF9u25Mdwg,1076
|
@@ -13,20 +13,20 @@ femagtools/dakota.py,sha256=L2zZdACdhso7szwN_s5tsmeEbcuUygE2JK4SxwtL79w,6901
|
|
13
13
|
femagtools/dakota_femag.py,sha256=ipmMUMTK1mvMpfHJJjwHa_4kx7BItYO3ha8MeYJTyy8,4068
|
14
14
|
femagtools/dakotaout.py,sha256=6nn0PXsB40mPKiQLenqAtHy0KXCO7kvqqQ-aD2JhQvw,5573
|
15
15
|
femagtools/docker.py,sha256=XDVmLBB0z4sZZpcrx7Wbm84xl4ksj7aqn5-ZOPxdxm4,7460
|
16
|
-
femagtools/ecloss.py,sha256=
|
16
|
+
femagtools/ecloss.py,sha256=3qwfb_9qpWw99asUDcQgdbP51VGXp4MlLQZDhywWHEk,35051
|
17
17
|
femagtools/erg.py,sha256=IXKq76P9qLt_ssNOP78v8Qizk3J2Zg80yaKDSjzwoJE,1224
|
18
|
-
femagtools/femag.py,sha256=
|
18
|
+
femagtools/femag.py,sha256=ejagYsOG9CJDcJQvldq3v3NcZ0OdMC5aipZenc-5MI4,44868
|
19
19
|
femagtools/forcedens.py,sha256=7NNv75Vg9vQ_fy8W4kM2rlSO970zaSmeurhPmdAxsOU,8485
|
20
|
-
femagtools/fsl.py,sha256=
|
20
|
+
femagtools/fsl.py,sha256=AWyc7mIgUL2tjqw_kmK22y-gZXhTzOccyhjJLwCqKcg,37736
|
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=
|
27
|
+
femagtools/isa7.py,sha256=qtmBx53IIbn4rO2pCTFqn0h1f-REbQ0uEWAJ9T85LgI,67033
|
28
28
|
femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
|
29
|
-
femagtools/job.py,sha256=
|
29
|
+
femagtools/job.py,sha256=sh4yk8RVEFai7YDBMsVg19p9xEd6_sfyNX5WQSY7HEY,11726
|
30
30
|
femagtools/leakinduc.py,sha256=4IGZaV8S1ZG6L3hgZsCXqMsMNRH4F88l9EsvUjSXDSE,999
|
31
31
|
femagtools/losscoeffs.py,sha256=7B29VdEsmv8HSP749X3QBb_E-XN6Z9dvNleKiRLWaMI,7721
|
32
32
|
femagtools/magnet.py,sha256=Nuk060bT4Wa3lX74HdefqTTtUxLaERDSBYTTpbi6KP4,1093
|
@@ -34,23 +34,23 @@ femagtools/mcv.py,sha256=nVemXwRPHkvlz7IIwnUONfQglnOcTnp3CsPwU1eG3OI,48604
|
|
34
34
|
femagtools/me.py,sha256=z6RJkvSbgMmorCQTxKvq44uIYKh82uYYExjkNePJCmE,1813
|
35
35
|
femagtools/model.py,sha256=dk9x-iqRzgOTdTCeU_ynUZGb1bt4FvU1ZGMPXytMbUg,17965
|
36
36
|
femagtools/moproblem.py,sha256=kOP8pRdD8YXz28_M2WKnFgl3eeJ7tqg49ohoazsmUOg,2825
|
37
|
-
femagtools/multiproc.py,sha256=
|
37
|
+
femagtools/multiproc.py,sha256=XSYe18kZOaY6C_9gH_neWR0H3S8q2l8dda3dbXlNb54,9265
|
38
38
|
femagtools/mxw2msh.py,sha256=CIIqAvfs8U-A0OfuOAoDaqNSmoMSHSI_tW1CPFRCP5E,2151
|
39
39
|
femagtools/nc.py,sha256=sKfFaeT8hPVUCb1axPIwfUVxuUsnrHygdfqiHv7G_YA,15216
|
40
40
|
femagtools/netlist.py,sha256=CSCl8setLZ_L8DCnNWaNA3-wLe1yo-fmzARZoVvYfaA,2052
|
41
41
|
femagtools/ntib.py,sha256=76g1ZO3Fq_kN-HTMBvaKvJmMMlJMyEPFeNAcJPq3w7Y,3099
|
42
42
|
femagtools/opt.py,sha256=wBU0yh3hZlNti_zfIvtKcPg1EJrnE3I1BqmVxLGWixU,8753
|
43
|
-
femagtools/parstudy.py,sha256=
|
43
|
+
femagtools/parstudy.py,sha256=eHOcHHZAQMPnYwyQpnX9daZIMKhZZl8aDeEPXBgSS-k,20550
|
44
44
|
femagtools/poc.py,sha256=yPWmpi8Q2g7NmpAi2YV5ezyo0VUj67EK0tcX2wikerw,7207
|
45
45
|
femagtools/semi_fea.py,sha256=WZtYKrzhDruETyuEW2kpiNp9OaA7Hheq3qJiAIYtsjg,3475
|
46
|
-
femagtools/shortcircuit.py,sha256=
|
46
|
+
femagtools/shortcircuit.py,sha256=ZugEzPnofsVb2ZLInEbjkjwEVzLL1dNTJtqSueaHc8A,14301
|
47
47
|
femagtools/tks.py,sha256=mDi45S5go9-jwALh6rS9RWPoOFBORZm0-XL4ECjSf_8,7531
|
48
|
-
femagtools/ts.py,sha256=
|
49
|
-
femagtools/utils.py,sha256=
|
48
|
+
femagtools/ts.py,sha256=yoYjpKrr_0b-tHfsX5azJEBXHUs9PN8P-SMhbjjRhCA,48381
|
49
|
+
femagtools/utils.py,sha256=yZYgAKHsvK7QyY2-ijE3gSzXlE3vfuhD5dx7myyw434,1703
|
50
50
|
femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
|
51
51
|
femagtools/vtu.py,sha256=Sf83dHIfCKY2km-MIUHKKoj-JKN4PDX7kkPLZXyIYY4,10723
|
52
52
|
femagtools/windings.py,sha256=p7BkIbi8mMc_CmWqAjOZNKz1-GlQb4kON4rWhvlARf8,27498
|
53
|
-
femagtools/zmq.py,sha256=
|
53
|
+
femagtools/zmq.py,sha256=62x5VRk0TMNER0-EZ8E28IdLKzsttlbxy1U_3wocNLc,9618
|
54
54
|
femagtools/dxfsl/__init__.py,sha256=MywcCdpKPKs4qJBJJgeDsikJFJ2P48dbTuNk303f5pM,76
|
55
55
|
femagtools/dxfsl/area.py,sha256=CpTMRBF8_AJmJMkkn-LgRv27U5xJ5Ohhd2ppRvESPNU,69757
|
56
56
|
femagtools/dxfsl/areabuilder.py,sha256=6dfWryYjXzGIVDOsX2zb1VKIhUzmpL43XhF-wtdesAg,35882
|
@@ -70,14 +70,14 @@ femagtools/dxfsl/plotrenderer.py,sha256=q2cORuxJEf1Ws6oCY9c0gF6N3kDrcI6WOz3u5Vl6
|
|
70
70
|
femagtools/dxfsl/shape.py,sha256=uQqbgXIA2_KP2XRdhCfVfGWjcjwzhJ5t9RhiqR9R98c,61668
|
71
71
|
femagtools/dxfsl/svgparser.py,sha256=RY2TU9MK6gOaNmI6w6RNqcw7H9YGmK-NUwvdylKBcsE,3763
|
72
72
|
femagtools/dxfsl/symmetry.py,sha256=dXfZVIqT49nbMirY5YVaRPi8kNB8reaiq-eIbhw1Z54,43936
|
73
|
-
femagtools/machine/__init__.py,sha256=
|
73
|
+
femagtools/machine/__init__.py,sha256=xDY9QSUVL2Y17I4fq-nXsb5uMHCIxnCmGVIiL0fZZYE,7447
|
74
74
|
femagtools/machine/afpm.py,sha256=ZkYk-acfmwV2ebhU8BUE6dKYkDrCR8UKp1plxEdZ4v8,40223
|
75
|
-
femagtools/machine/effloss.py,sha256=
|
76
|
-
femagtools/machine/im.py,sha256=
|
77
|
-
femagtools/machine/pm.py,sha256=
|
78
|
-
femagtools/machine/sizing.py,sha256=
|
79
|
-
femagtools/machine/sm.py,sha256=
|
80
|
-
femagtools/machine/utils.py,sha256=
|
75
|
+
femagtools/machine/effloss.py,sha256=vDFKscFTWuW2ro4DRfNdmehQRhMBvqUG7iTm3YaARi8,16431
|
76
|
+
femagtools/machine/im.py,sha256=UeN1e0JTwsbaFjGhJFBmhwRDlgckNNf8_A69YmG6ABE,39545
|
77
|
+
femagtools/machine/pm.py,sha256=hXG71o2TqTxqy-FRy1WoeSOT-KysOGeZlCCnaLfISuE,70026
|
78
|
+
femagtools/machine/sizing.py,sha256=QO-k-UALmSPFNf8ajJPDnzKtlbkiAhX1DqWCRLr-H9k,32306
|
79
|
+
femagtools/machine/sm.py,sha256=hQC_guN6qCJPrFWyECNyJyVmu13wzPxTioqXnGT4AtA,39191
|
80
|
+
femagtools/machine/utils.py,sha256=HRM9UHY0UwuBWyK2dAfwlPuvMkXYBVqHlmEsUIdSNJk,21694
|
81
81
|
femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
|
82
82
|
femagtools/moo/algorithm.py,sha256=e-Cgp2rp_hG9DXqWqluzQGNIWvCfthUgLD8O-aVPofA,5763
|
83
83
|
femagtools/moo/population.py,sha256=krIl8tOJXPhCgBemkqn-jwvZg1VzsGniqMN_KAFxbuw,10203
|
@@ -86,7 +86,7 @@ femagtools/moo/test/AlgorithmTest.py,sha256=KzR1og4bu6NOE61DDKjEMTQdsysmho4LCYmJ
|
|
86
86
|
femagtools/moo/test/PopulationTest.py,sha256=lG9NeWo0xrslfQRa4tgy1Nj23VJMFIlg_vQ9KUBYnRA,5529
|
87
87
|
femagtools/moo/test/ProblemTest.py,sha256=r5XEfY4LPscDb35TxxPd0lbP3nUmL6_G6vrRo1I3RSg,505
|
88
88
|
femagtools/plot/__init__.py,sha256=LFrHy_9L6FxJqhYND2z1534s3ebPXkfXVagFeNA1wWk,978
|
89
|
-
femagtools/plot/bch.py,sha256=
|
89
|
+
femagtools/plot/bch.py,sha256=EhW_YRgMZU4K1Az_XAK1XGG0JAtrDwmwZ6SHdvPi4-c,34085
|
90
90
|
femagtools/plot/char.py,sha256=xv4cNOTorK-fy7eUFhmyR-013TFI2A2999xXKgL2AnA,12469
|
91
91
|
femagtools/plot/fieldlines.py,sha256=_7ykKhnQLeS4fz34pnzovH1gIhcUSKJ3gl1GUgWYix8,1137
|
92
92
|
femagtools/plot/fluxdens.py,sha256=NlexRJ3f_8CgKoWrV82ZIsAXPrLhwj98uOe8_fUks7A,1082
|
@@ -97,7 +97,7 @@ femagtools/plot/nc.py,sha256=E7_7WNG3MNrV4QPJJqng1nfuXf3ZbjAGeonthqQlMss,11349
|
|
97
97
|
femagtools/plot/phasor.py,sha256=5QG1GkXKVksc8P6Q4thKADf6W1l8rDKeArIHFYvbXlw,4858
|
98
98
|
femagtools/plot/wdg.py,sha256=Orw2XGThHpOuJ_raSRnQTzj5tOmwllNWweByoOXbA7I,9820
|
99
99
|
femagtools/svgfsl/converter.py,sha256=5q4LognshXNTpUWLnU5rtgCfAwZnEuPzqsgyeRYC-VM,3019
|
100
|
-
femagtools/templates/FE-losses.mako,sha256=
|
100
|
+
femagtools/templates/FE-losses.mako,sha256=cfDlO11vWovz2muPLg9X2rgeHD9Ihaz8PRiz63MRr88,819
|
101
101
|
femagtools/templates/afm_rotor.mako,sha256=4yoEA4fOq9FRcwxOMRw1oX4Bs_jcrtyHOY6kHPYJ5MY,3175
|
102
102
|
femagtools/templates/afm_stator.mako,sha256=l1xEwxffZ1jyx5wuJ3rhVbVlZirJzD2K8n4i5Dvbxuc,5344
|
103
103
|
femagtools/templates/airgapinduc.mako,sha256=aCMLZ7P4vjeSGikIetkwymgDjESdftPN_aYx2LfjfsY,246
|
@@ -116,7 +116,7 @@ femagtools/templates/displ_stator_rotor.mako,sha256=dsf9qW0i79aWAbOxaHwWfiq-Tn6W
|
|
116
116
|
femagtools/templates/ec-rotorbar.mako,sha256=RbA1TVNczEEddTNjvGLPxILExxp4rIgoxXe1YT6a4Is,1672
|
117
117
|
femagtools/templates/fe-contr.mako,sha256=Gj4EFpAk_SVW_SIeW5eRRJAsYXTTpl-djuyb47n3Dj8,1898
|
118
118
|
femagtools/templates/fieldcalc.mako,sha256=bEtff9HeD6hTpB9t3COt40V1oGeT0a_6ouWTQlKIGX8,749
|
119
|
-
femagtools/templates/gen_hairpin_winding.mako,sha256=
|
119
|
+
femagtools/templates/gen_hairpin_winding.mako,sha256=O3up0yjj3BDqFgpIY28fILKt7NX9NbgXTbd0sb3MM6A,5340
|
120
120
|
femagtools/templates/gen_winding.mako,sha256=kVMRkonDLHRB12bJ5e0Pwb1-8hBGVMM4dn1FEo70bok,3984
|
121
121
|
femagtools/templates/inductances.mako,sha256=OpcW3E7LW09J8eoXylzfq2R16LKKxzJDr0PGCdHzixM,560
|
122
122
|
femagtools/templates/ld_lq_fast.mako,sha256=vO7_zLpZThNpBu_LSGnZ8k1S8eF87DEmxUse4rRVmmk,1448
|
@@ -140,7 +140,7 @@ femagtools/templates/modal_analysis.mako,sha256=Thf62FBqL738qnp1ongPr196GJY27vwE
|
|
140
140
|
femagtools/templates/modified_steinmetz.mako,sha256=qrJ18XtoU39kjbcdywCJCLObQGaO-eC3Cl-1P4xLZWg,1327
|
141
141
|
femagtools/templates/mult_cal_fast.mako,sha256=TTEPmWKpqq8rSO_usYvHl9rTMopHNGoEhmRuhEgYTrg,1344
|
142
142
|
femagtools/templates/new_model.mako,sha256=P7658h99bKrA6YbP1D365ImIZPGEAZoBeYCdq0DT0AA,345
|
143
|
-
femagtools/templates/noloadflux-rot.mako,sha256=
|
143
|
+
femagtools/templates/noloadflux-rot.mako,sha256=Rcoq0qTR4hzPaG--5IbgqFaX6b4u04AGvyHOP-M0WjU,3275
|
144
144
|
femagtools/templates/noloadflux.mako,sha256=vYUpZRLOAixNoBbB-Nc-Y9niPYsSUEPvBCOjw26uFdg,4661
|
145
145
|
femagtools/templates/noloadfluxdc.mako,sha256=n3M4gNxf4Q-i7B8ft69Ism9lquRqh-pf4ET4KYwdQb0,3146
|
146
146
|
femagtools/templates/open.mako,sha256=Zl5yvdwT5BflJIPVmReggzSrTQhepbef62EoCuw_mQg,344
|
@@ -172,12 +172,13 @@ femagtools/templates/stator_msh.mako,sha256=Neze1ielMCk7TrARyhOra91fFQVT8Phsgk2O
|
|
172
172
|
femagtools/templates/therm-dynamic.mako,sha256=pEz7jrUpopK1-RqgulNnrkSaCZDjfLelsVo6cBqmpac,3142
|
173
173
|
femagtools/templates/therm_static.mako,sha256=ulevp4AP-kZ1_qdScPMaX9tLqvvP0t9lFflWTXgUxaE,1310
|
174
174
|
femagtools/templates/torq_calc.mako,sha256=et6O9ZEkPMOYcaJVpYtH2u3aoU0iyhRCPkfN4ZLdjxA,2353
|
175
|
+
femagtools-1.8.14.dist-info/licenses/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
|
175
176
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
176
177
|
tests/test_afpm.py,sha256=ge5CXnVQ7E5gVViTI9hQOC0hHetBci18pY9prbUCAqU,16849
|
177
178
|
tests/test_airgap_induction.py,sha256=cmpy1og59oWEyCO4oF_zDuc1DUwCbdeebNL1ujpZza4,1065
|
178
179
|
tests/test_amela.py,sha256=Oi_NURmXDI0s9Tw82KO8k5ZkK6sZ9b2DhafJ5SBnvkE,629
|
179
180
|
tests/test_asm.py,sha256=NAMJ2Km4zi6byhooq5E7GZbkFeSNSTaLpJWt-jQF5cE,1398
|
180
|
-
tests/test_bchreader.py,sha256=
|
181
|
+
tests/test_bchreader.py,sha256=YPU00nl2MXQiMr1i-W4UOgUvKheeW5tqv_OpTBBOK0g,16835
|
181
182
|
tests/test_conductor.py,sha256=T7bmuSdI2Fowwm2Ht-8D0Qnfs1_lx1aoi9RhC2p5nYU,332
|
182
183
|
tests/test_convert.py,sha256=oseuhm3Iw-9b4WzBjA_Og2lgXPqKYicLUnfadq5Yick,6497
|
183
184
|
tests/test_dxfsl.py,sha256=DBAjtwNAwcB7VYZBjul7xf4ovu14n3Z0fxyreVzAW4A,383
|
@@ -185,7 +186,7 @@ tests/test_effloss.py,sha256=-kJJNgS5c6saHXjNuhAe5GdWfr9mEYpPo8fE8OtjsNA,1142
|
|
185
186
|
tests/test_erg.py,sha256=kRVzpXa6JDdbxTss18HUWKny9Dx8IMx9uGTrbQCnHwg,523
|
186
187
|
tests/test_femag.py,sha256=l7-av3eitLm7bwTuunEmVeTspi82ifPrlz7f1boGdVI,1934
|
187
188
|
tests/test_forcedens.py,sha256=Yzl3SAmJNkZN9dA3aLxRvwY8fKsw077Fl0iJm6zJ5Sk,536
|
188
|
-
tests/test_fsl.py,sha256=
|
189
|
+
tests/test_fsl.py,sha256=oe5dHxR0G3sfGvsRtO6fEIn0R3oQFugsSkGzhyFPQR4,16624
|
189
190
|
tests/test_heat_source_network.py,sha256=TC-Gl4iy9jnMGfsY_24XjwlP-SDxP345JKVT8xRwsFo,690
|
190
191
|
tests/test_hxy.py,sha256=pVb6ZfDhBy5-DXa3gh7RQmLFG8p5cSYB8gdGLC8kjAk,640
|
191
192
|
tests/test_im.py,sha256=55wfCoA8_PuogI_RsC3AjUQCpR84T-HddtHuU1NxfPc,662
|
@@ -221,9 +222,8 @@ tests/moo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
221
222
|
tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
|
222
223
|
tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
|
223
224
|
tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
|
224
|
-
femagtools-1.8.
|
225
|
-
femagtools-1.8.
|
226
|
-
femagtools-1.8.
|
227
|
-
femagtools-1.8.
|
228
|
-
femagtools-1.8.
|
229
|
-
femagtools-1.8.12.dist-info/RECORD,,
|
225
|
+
femagtools-1.8.14.dist-info/METADATA,sha256=BrabUwTwkjyUIeeY3Ln1RIyfy1FQefxu8EgDckCsobA,6213
|
226
|
+
femagtools-1.8.14.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
|
227
|
+
femagtools-1.8.14.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
|
228
|
+
femagtools-1.8.14.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
|
229
|
+
femagtools-1.8.14.dist-info/RECORD,,
|
tests/test_bchreader.py
CHANGED
@@ -92,7 +92,7 @@ class BchReaderTest(unittest.TestCase):
|
|
92
92
|
self.assertAlmostEqual(bch.dqPar['i1'][1], 49.992, 3)
|
93
93
|
self.assertAlmostEqual(bch.dqPar['ld'][0], 9.9e-3, 6)
|
94
94
|
self.assertAlmostEqual(bch.dqPar['ld'][0], 9.9e-3, 6)
|
95
|
-
self.assertAlmostEqual(bch.dqPar['u1'][1], 358.
|
95
|
+
self.assertAlmostEqual(bch.dqPar['u1'][1], 358.10, 2)
|
96
96
|
self.assertAlmostEqual(bch.dqPar['torque'][0], 65.3, 1)
|
97
97
|
|
98
98
|
self.assertAlmostEqual(bch.machine['i1'], 50.0)
|
@@ -163,7 +163,7 @@ class BchReaderTest(unittest.TestCase):
|
|
163
163
|
self.assertAlmostEqual(bch.dqPar['i1'][1], 49.992, 3)
|
164
164
|
self.assertAlmostEqual(bch.dqPar['ld'][0], 0.86688e-3, 6)
|
165
165
|
self.assertAlmostEqual(bch.dqPar['ld'][0], 0.86688e-3, 6)
|
166
|
-
self.assertAlmostEqual(bch.dqPar['u1'][1],
|
166
|
+
self.assertAlmostEqual(bch.dqPar['u1'][1], 2394.0, 2)
|
167
167
|
self.assertAlmostEqual(bch.dqPar['torque'][0], 1137.92, 1)
|
168
168
|
|
169
169
|
np.testing.assert_almost_equal(bch.losses[-1]['fft']['stajo']['order_el'],
|
@@ -317,8 +317,8 @@ class BchReaderTest(unittest.TestCase):
|
|
317
317
|
self.assertEqual(bch.psidq['losses']['styoke_excess'][0], [2.235, 2.235, 2.839])
|
318
318
|
self.assertEqual(bch.psidq['losses']['stteeth_excess'][0], [6.58, 6.576, 7.176])
|
319
319
|
self.assertEqual(bch.psidq['losses']['rotor_excess'][0], [0.0, 0.0, 0.0])
|
320
|
-
|
321
|
-
def test_read_pm_sym_outer_rotor(self):
|
320
|
+
|
321
|
+
def test_read_pm_sym_outer_rotor(self):
|
322
322
|
bch = self.read_bch('pm_sym_fast_outer_rotor.BATCH')
|
323
323
|
self.assertEqual(bch.losses[-1]['staza'], 54.219)
|
324
324
|
self.assertEqual(bch.losses[-1]['stajo'], 8.853)
|
@@ -330,7 +330,7 @@ class BchReaderTest(unittest.TestCase):
|
|
330
330
|
self.assertEqual(list(bch.losses[-1]['fft']['stajo']['order_mech']), [4, 12, 20, 28, 36])
|
331
331
|
self.assertEqual(list(bch.losses[-1]['fft']['stajo']['eddy']), [7.845, 0.64, 0.311, 0.044, 0.011])
|
332
332
|
|
333
|
-
def test_read_ldlq_outer_rotor(self):
|
333
|
+
def test_read_ldlq_outer_rotor(self):
|
334
334
|
bch = self.read_bch('ldlq_outer_rotor.BATCH')
|
335
335
|
self.assertEqual(bch.ldq['losses']['styoke_eddy'][0], [63.32, 39.69, 42.85, 65.62])
|
336
336
|
self.assertEqual(bch.ldq['losses']['styoke_hyst'][0], [0.0, 0.0, 0.0, 0.0])
|
tests/test_fsl.py
CHANGED
@@ -304,12 +304,12 @@ class FslBuilderTest(unittest.TestCase):
|
|
304
304
|
self.m['stator']['ffactor'] = 1.1
|
305
305
|
model = femagtools.MachineModel(self.m)
|
306
306
|
fsl = self.builder.create_fe_losses(model)
|
307
|
-
self.assertEqual(len(fsl),
|
307
|
+
self.assertEqual(len(fsl), 19)
|
308
308
|
ffact = [float(f.split('=')[1])
|
309
309
|
for f in fsl if f.startswith('m.ffactor')][0]
|
310
310
|
self.assertEqual(ffact, self.m['stator']['ffactor'])
|
311
311
|
feloss = [f.split('"')[1]
|
312
|
-
for f in fsl if f.find('pre_models')
|
312
|
+
for f in fsl if f.find('pre_models') >= 0][0]
|
313
313
|
self.assertEqual(feloss, 'FE-Losses-1')
|
314
314
|
|
315
315
|
def test_run_models(self):
|
File without changes
|
File without changes
|
File without changes
|