femagtools 1.8.11__py3-none-any.whl → 1.8.13__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 (35) hide show
  1. femagtools/__init__.py +1 -1
  2. femagtools/bch.py +21 -12
  3. femagtools/ecloss.py +12 -4
  4. femagtools/femag.py +1 -2
  5. femagtools/fsl.py +28 -4
  6. femagtools/job.py +6 -3
  7. femagtools/machine/__init__.py +35 -3
  8. femagtools/machine/effloss.py +37 -13
  9. femagtools/machine/im.py +9 -6
  10. femagtools/machine/sizing.py +4 -3
  11. femagtools/machine/sm.py +64 -69
  12. femagtools/parstudy.py +28 -16
  13. femagtools/plot/bch.py +27 -11
  14. femagtools/shortcircuit.py +53 -49
  15. femagtools/templates/ec-rotorbar.mako +2 -1
  16. femagtools/templates/gen_hairpin_winding.mako +8 -6
  17. femagtools/templates/ld_lq_fast.mako +1 -1
  18. femagtools/templates/mesh-airgap.mako +1 -0
  19. femagtools/templates/noloadflux-rot.mako +32 -4
  20. femagtools/templates/psi-torq-rem.mako +112 -0
  21. femagtools/templates/psi-torq-rot.mako +7 -0
  22. femagtools/templates/rotor_winding_ks2.mako +44 -0
  23. femagtools/templates/rotor_winding_ks2_ecSimulation.mako +44 -0
  24. femagtools/templates/statorRing.mako +1 -1
  25. femagtools/ts.py +38 -7
  26. femagtools/zmq.py +4 -1
  27. {femagtools-1.8.11.dist-info → femagtools-1.8.13.dist-info}/METADATA +3 -31
  28. {femagtools-1.8.11.dist-info → femagtools-1.8.13.dist-info}/RECORD +34 -32
  29. {femagtools-1.8.11.dist-info → femagtools-1.8.13.dist-info}/WHEEL +1 -1
  30. tests/test_bchreader.py +5 -5
  31. tests/test_femag.py +1 -1
  32. tests/test_fsl.py +3 -3
  33. femagtools-1.8.11.dist-info/LICENSE +0 -26
  34. {femagtools-1.8.11.dist-info → femagtools-1.8.13.dist-info}/entry_points.txt +0 -0
  35. {femagtools-1.8.11.dist-info → femagtools-1.8.13.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,112 @@
1
+ -- calculate flux linkages, torque, and rel remanence (magstatic mode)
2
+ --
3
+ -- model:
4
+ -- Hk (kA/m) knee point field strength
5
+ -- curvec (A) phase current amplitude samples (list of [ía, ib, ic])
6
+ -- num_par_wdgs (number of parallel winding groups, default 1)
7
+ -- fc_radius (m) radius of airgap center
8
+ --
9
+ -- creates file psi-torq-rem.dat in current directory with columns:
10
+ -- displ curr1 curr2 curr3 psi1 psi2 psi3 torq rrem
11
+
12
+ <%include file="magnet-data.mako"/>
13
+
14
+ function dmg(ek, Br, alfam, murm, Bd, Bq, Hd, Hq, alfahm, Hk)
15
+ if Hd < Hk then
16
+ muem = murm*4*math.pi*1e-7
17
+ Brn = Bd - Hk*1e3*muem
18
+ if Br < 1e-5 then
19
+ Brn = 1e-5
20
+ end
21
+ return Brn, alfam, 1
22
+ end
23
+ return Br, alfam, 1
24
+ end
25
+
26
+ function calc_flux_torq_rem(curvec)
27
+ for k=1,3 do
28
+ def_curr_wdg(k, curvec[k]/a, 0)
29
+ end
30
+
31
+ dRR = 0
32
+ RR = 0
33
+ maxit=m.num_nonl_it
34
+ maxcop=m.error_perm -- err_perm in %
35
+ permode='restore'
36
+ repeat
37
+ calc_field_single({
38
+ maxit=maxit, maxcop=maxcop, -- err_perm in %
39
+ permode=permode})
40
+ if(maxit > 1) then
41
+ maxit = 1
42
+ permode='actual'
43
+ maxcop = 0.05
44
+ end
45
+ stat, RR, dRR = calc_demag(5, Hk)
46
+ --printf("%g %g", RR, dRR)
47
+ until math.abs(dRR) < 1e-5
48
+
49
+ psi = {}
50
+ for k=1,3 do
51
+ psir, psii = flux_winding_wk(k)
52
+ psi[k] = {ksym*psir/a*m.arm_length, ksym*psii/a*m.arm_length}
53
+ end
54
+
55
+ fr, ft, tq, fx, fy = force_torque()
56
+
57
+ return psi, tq, RR
58
+ end
59
+ %if model.get('fc_radius', 0):
60
+ if m.fc_radius == nil then
61
+ m.fc_radius = ${model['fc_radius']*1e3}
62
+ end
63
+ %endif
64
+ %if type(model.get('curvec')[0]) is list:
65
+ curvec = {${','.join(['{'+','.join([str(x) for x in y])+'}' for y in model['curvec']])}} -- A
66
+ %else:
67
+ curvec = {{${','.join([str(x) for x in model['curvec']])}}} -- A
68
+ %endif
69
+ a=${model.get('num_par_wdgs', 1)} -- parallel branches
70
+
71
+ ksym = m.num_poles/m.npols_gen
72
+
73
+ -- HcB = Brem*tempcoefbr*(magn_temp-20)+1)/muerel/12.565e-7
74
+ -- Hcmin = HcJ*tempcoefhc*(magn_temp-20.0)+1)/HcB*1e2 -- limit of demagnetization in
75
+ Hk = ${model.get('Hk', -999)}
76
+
77
+ phi = ${model.get('phi', 0)}*180/math.pi
78
+ -- initialize rotate
79
+ rotate({
80
+ airgap = m.fc_radius, -- air gap radius
81
+ region = "inside", -- region to rotate
82
+ mode = "save" -- save initial model state
83
+ })
84
+
85
+ file_psi = io.open("psi-torq-rem.dat","w")
86
+ for i=1, #curvec do
87
+ print(string.format(" current: %d/%d %g, %g, %g\n",
88
+ i, #curvec, curvec[i][1], curvec[i][2], curvec[i][3]))
89
+
90
+ rotate({angle=phi, mode="absolute"})
91
+ psi, tq, rr = calc_flux_torq_rem(curvec[i])
92
+
93
+ file_psi:write(string.format("%g ", phi))
94
+ for k=1, 3 do
95
+ file_psi:write(string.format("%g ", curvec[i][k]))
96
+ end
97
+ for k=1, 3 do
98
+ file_psi:write(string.format("%g ", psi[k][1]))
99
+ end
100
+ file_psi:write(string.format("%g ", tq))
101
+ file_psi:write(string.format("%g ", rr))
102
+ file_psi:write("\n")
103
+
104
+ % if model.get('plots', []):
105
+ if i == #curvec-2 then
106
+ <%include file="plots.mako"/>
107
+ end
108
+ % endif
109
+ end
110
+
111
+ rotate({mode = "reset"}) -- restore the initial state (discard any changes)
112
+ file_psi:close()
@@ -7,6 +7,8 @@
7
7
  -- creates file psi-torq-rot.dat in current directory with columns:
8
8
  -- displ curr1 curr2 curr3 psi1 psi2 psi3 torq
9
9
  --
10
+ <%include file="magnet-data.mako"/>
11
+
10
12
  function gcd(a, b)
11
13
  return b==0 and a or gcd(b,a%b)
12
14
  end
@@ -69,6 +71,11 @@ dphi = 360//gcd(Q1, p)/nrot
69
71
  print(string.format(" rotation steps: %d current steps: %d\n", nrot, #curvec))
70
72
 
71
73
  phi = 0
74
+ %if model.get('fc_radius', 0):
75
+ if m.fc_radius == nil then
76
+ m.fc_radius = ${model['fc_radius']*1e3}
77
+ end
78
+ %endif
72
79
  -- initialize rotate
73
80
  rotate({
74
81
  airgap = m.fc_radius, -- air gap radius
@@ -0,0 +1,44 @@
1
+ -- Winding (ROTOR_KS2)
2
+
3
+ Q1 = m.tot_num_sl
4
+ Q2 = ${model['num_slots']}
5
+ m.tot_num_sl = Q2
6
+ % if model.get('num_slots_gen', 0):
7
+ m.num_sl_gen = ${model['num_slots_gen']}
8
+ % else:
9
+ m.num_sl_gen = Q2 * m.npols_gen/m.num_poles
10
+ % endif
11
+
12
+
13
+
14
+ m.zeroangl = ${model.get('zeroangl',0)}
15
+
16
+ m.mcvkey_yoke = mcvkey_yoke
17
+
18
+
19
+ dphi=1e-2
20
+
21
+ num_wires=1
22
+ dir = {'wi', 'wo'}
23
+
24
+ -- set subregions 'Bar'
25
+ r=da2/2 - m.slot_height/2
26
+ phi=180/Q2+m.zeroangl
27
+ xcoil, ycoil = pd2c(r,phi-dphi)
28
+ --delete_sreg(xcoil, ycoil)
29
+ --def_new_wdg(xcoil, ycoil, yellow, "Exc", num_wires, 10.0, dir[1])
30
+ def_currdens_se(xcoil, ycoil, 5)
31
+
32
+ for i=2, m.num_sl_gen do
33
+ phi=(2*i-1)*180/Q2 + m.zeroangl
34
+ xcoil, ycoil = pd2c(r,phi)
35
+ --delete_sreg(xcoil, ycoil)
36
+ pole_per_encoche = Q2 / m.num_poles
37
+ pole_num = i // pole_per_encoche
38
+
39
+ if pole_num % 2 == 0
40
+ then def_currdens_se(xcoil, ycoil, 5) --add_to_wdg(xcoil, ycoil, wsamekey, dir[1], 'wser')
41
+ else
42
+ def_currdens_se(xcoil, ycoil, -5) --add_to_wdg(xcoil, ycoil, wsamekey, dir[2], 'wser')
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ -- Winding (ROTOR_KS2)
2
+
3
+ Q1 = m.tot_num_sl
4
+ Q2 = ${model['num_slots']}
5
+ m.tot_num_sl = Q2
6
+ % if model.get('num_slots_gen', 0):
7
+ m.num_sl_gen = ${model['num_slots_gen']}
8
+ % else:
9
+ m.num_sl_gen = Q2 * m.npols_gen/m.num_poles
10
+ % endif
11
+
12
+
13
+
14
+ m.zeroangl = ${model.get('zeroangl',0)}
15
+
16
+ m.mcvkey_yoke = mcvkey_yoke
17
+
18
+
19
+ dphi=1e-2
20
+
21
+ num_wires=1
22
+ dir = {'wi', 'wo'}
23
+
24
+ -- set subregions 'Bar'
25
+ r=da2/2 - m.slot_height/2
26
+ phi=180/Q2+m.zeroangl
27
+ xcoil, ycoil = pd2c(r,phi-dphi)
28
+ --delete_sreg(xcoil, ycoil)
29
+ --def_new_wdg(xcoil, ycoil, yellow, "Exc", num_wires, 10.0, dir[1])
30
+ def_currdens_se(xcoil, ycoil, 5)
31
+
32
+ --for i=2, m.num_sl_gen do
33
+ -- phi=(2*i-1)*180/Q2 + m.zeroangl
34
+ -- xcoil, ycoil = pd2c(r,phi)
35
+ -- --delete_sreg(xcoil, ycoil)
36
+ -- pole_per_encoche = Q2 / m.num_poles
37
+ -- pole_num = i // pole_per_encoche
38
+
39
+ -- if pole_num % 2 == 0
40
+ -- then def_currdens_se(xcoil, ycoil, 5) --add_to_wdg(xcoil, ycoil, wsamekey, dir[1], 'wser')
41
+ -- else
42
+ -- def_currdens_se(xcoil, ycoil, -5) --add_to_wdg(xcoil, ycoil, wsamekey, dir[2], 'wser')
43
+ --end
44
+ --end
@@ -52,7 +52,7 @@ nc_circle_m(xw2, yw2, x8, y8, 0,0,0)
52
52
  nc_circle_m(x4, y4, xw3, yw3, 0,0,0)
53
53
  nc_circle_m(xw4, yw4, x7, y7, 0,0,0)
54
54
 
55
- x, y = (x4+x7)/2, (y4+y5)/2
55
+ x, y = (x7+x5)/2, (y4+y6)/2
56
56
  create_mesh_se(x, y)
57
57
 
58
58
  def_new_sreg(x, y, 'StZa', 'skyblue')
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
- self.vtu_data = vtu.read(dirname)
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
- # Read iron losses coefficients
164
- self.iron_loss_coefficients = self.nc_model.iron_loss_coefficients
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
- bx_vec_0 = self.vtu_data.get_data_vector('b', el.key)[0]
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
- by_vec_0 = self.vtu_data.get_data_vector('b', el.key)[1]
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
- self.vtu_data.read_data(data_list)
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/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.info("subscriber %s", req)
229
+ self.logger.debug("subscriber %s", req)
227
230
  break
228
231
  self.subscriber.close()
229
232
  self.controller.close()
@@ -1,42 +1,14 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: femagtools
3
- Version: 1.8.11
3
+ Version: 1.8.13
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
- License: Copyright (c) 2016-2023, Semafor Informatik & Energie AG, Basel
7
- Copyright (c) 2023-2024, Gamma Technology LLC
8
- All rights reserved.
9
-
10
- Redistribution and use in source and binary forms, with or without
11
- modification, are permitted provided that the following conditions
12
- are met:
13
-
14
- Redistributions of source code must retain the above copyright notice,
15
- this list of conditions and the following disclaimer.
16
-
17
- Redistributions in binary form must reproduce the above copyright notice,
18
- this list of conditions and the following disclaimer in the documentation
19
- and/or other materials provided with the distribution.
20
-
21
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24
- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
25
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31
- THE POSSIBILITY OF SUCH DAMAGE.
32
-
6
+ License-Expression: BSD-3-Clause
33
7
  Classifier: Programming Language :: Python :: 3
34
8
  Classifier: Intended Audience :: Science/Research
35
- Classifier: License :: OSI Approved :: BSD License
36
9
  Classifier: Topic :: Scientific/Engineering
37
10
  Requires-Python: >=3.7
38
11
  Description-Content-Type: text/markdown
39
- License-File: LICENSE
40
12
  Requires-Dist: numpy
41
13
  Requires-Dist: scipy
42
14
  Requires-Dist: mako
@@ -1,9 +1,9 @@
1
- femagtools/__init__.py,sha256=OjqGiMTH-XiYM7D-s7y7ZBDVyqoZzGDKh78C5m5kB78,1601
1
+ femagtools/__init__.py,sha256=HyXtrEg4fAUu0T0tWobt4wWZ6tzcYTlD4ap1kvNm0KA,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=wLuYbxNPpZ8b-74O_m-85qmbW2pg0ozEXfd2DD7-gvY,74388
6
+ femagtools/bch.py,sha256=ogdBxZhnUZuIcWOLNFODpD-jpUeTL-QSuwCRpjIMfj4,74768
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,11 +13,11 @@ 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=nES8mtXNFitmxDvKL5o39hZl6qu-HfR6kUh9eBA9zxQ,34660
16
+ femagtools/ecloss.py,sha256=3qwfb_9qpWw99asUDcQgdbP51VGXp4MlLQZDhywWHEk,35051
17
17
  femagtools/erg.py,sha256=IXKq76P9qLt_ssNOP78v8Qizk3J2Zg80yaKDSjzwoJE,1224
18
- femagtools/femag.py,sha256=ScrZ9gbWQIy4eIhF0Wmi41lSFm7-WRtiLcJOvkITcHo,44864
18
+ femagtools/femag.py,sha256=kfIFBNV7xw1JUHKBdEck3bU3wD5JDKY02kfTlBDpkTo,44789
19
19
  femagtools/forcedens.py,sha256=7NNv75Vg9vQ_fy8W4kM2rlSO970zaSmeurhPmdAxsOU,8485
20
- femagtools/fsl.py,sha256=hP2TBxjHXsWhrc6Uhd8s2ODVRqmMfsW8dFS2h-d6OwE,36990
20
+ femagtools/fsl.py,sha256=h3wPDlTYUd6elcYutw0Tx-pOn97tDgqwkOZEWdN8vGM,38476
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
@@ -26,7 +26,7 @@ femagtools/heat_source_network.py,sha256=dz3nTK084SR2fyy1167wlpBlGrzv54OqCCGKPNW
26
26
  femagtools/hxy.py,sha256=PkiZ_-CRhtvtpkmLAP8iMtwvzh7CjKGGcAbOhFb4Nls,6275
27
27
  femagtools/isa7.py,sha256=HqTQmbOLmLi75ytXpkryeYiXqUChi07mBUNYYj9xOjk,66365
28
28
  femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
29
- femagtools/job.py,sha256=sIRVXsyoupfRXqGsWyOHMetcKlWIyggxfVURjM8aD54,11322
29
+ femagtools/job.py,sha256=pc0IDskJ8d1aPLd1WO-2YKCNUAXnQiR5-lGPP91y6zk,11431
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
@@ -40,17 +40,17 @@ 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=vsXR2aamfVpdP9wEz-_ZT_KpFE256lg_sP_6dAQ3rOs,19866
43
+ femagtools/parstudy.py,sha256=Y3S1OUBVjAPhduQb08rNN2qHmQDJuI0yNsBuz6KMh6k,20548
44
44
  femagtools/poc.py,sha256=yPWmpi8Q2g7NmpAi2YV5ezyo0VUj67EK0tcX2wikerw,7207
45
45
  femagtools/semi_fea.py,sha256=WZtYKrzhDruETyuEW2kpiNp9OaA7Hheq3qJiAIYtsjg,3475
46
- femagtools/shortcircuit.py,sha256=_A_7csabj5gfRR7bfqNuC05-2HqP2-UMiYX4BSvfpQs,13936
46
+ femagtools/shortcircuit.py,sha256=ZugEzPnofsVb2ZLInEbjkjwEVzLL1dNTJtqSueaHc8A,14301
47
47
  femagtools/tks.py,sha256=mDi45S5go9-jwALh6rS9RWPoOFBORZm0-XL4ECjSf_8,7531
48
- femagtools/ts.py,sha256=x9aCMVASjdBZuyI2pJGMyi1dveGFd_pWQ20cZ-l_moc,47216
48
+ femagtools/ts.py,sha256=yoYjpKrr_0b-tHfsX5azJEBXHUs9PN8P-SMhbjjRhCA,48381
49
49
  femagtools/utils.py,sha256=dJkQ5xsoVMzSEB5-2hEiwe2of9mLmsDo8nkrnSN-gPE,1643
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=HY8U7dxXkgE48151nvLcnLPa8OFBZcZTrB2XcjBc0Y4,9413
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,13 +70,13 @@ 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=B7yeRZzf29NWCWy8C8iJFdTr9bszAoMRcVEpblhCeg4,7256
73
+ femagtools/machine/__init__.py,sha256=I71jrAGxE331x419y9iq3KxktNeDyTn9rJSFV03c_qA,8388
74
74
  femagtools/machine/afpm.py,sha256=ZkYk-acfmwV2ebhU8BUE6dKYkDrCR8UKp1plxEdZ4v8,40223
75
- femagtools/machine/effloss.py,sha256=6mPm4Y_3lVXc1hOyCgTfRkGK3IAeC8gSxNnbSPL7or8,15508
76
- femagtools/machine/im.py,sha256=isMSoCnIk4Hj47MwBNP5PW7a2rI-7N35A9zHGOSl43s,38111
75
+ femagtools/machine/effloss.py,sha256=VzaJlMMVYWaSleEMqt5ipKji3Hm145UTZn0TxiZ_mw4,16447
76
+ femagtools/machine/im.py,sha256=rX4RTXtZuwK1sOhht1wz8YLcFVHxnRnozJSCBT0vF98,38324
77
77
  femagtools/machine/pm.py,sha256=PTzQDIjHzKSoO2WT1jYH5cvCUCdAkmlmCfd2N35EbIs,69967
78
- femagtools/machine/sizing.py,sha256=6IUSdp6HNGHlSaWMy0mjzLGxp3UtxFLfdzQ_4MYx7TI,30069
79
- femagtools/machine/sm.py,sha256=SLaSuGJ8zXIFq6uBR2iu4uLXyWJZjA3iHAaTC8Jm-gw,39117
78
+ femagtools/machine/sizing.py,sha256=vcm7wuokDtk21JAj5GHwMmlC4TaY-mYuXH-UD1nID-g,30172
79
+ femagtools/machine/sm.py,sha256=cr0lUvgDDdYashoX4EDBjaHP2Y6G-TGnqTj1N0qfST8,38961
80
80
  femagtools/machine/utils.py,sha256=25QNxP8lp31W7kB-gcIA1Vd_9UcYlxrahqZ-k3ALU_s,20985
81
81
  femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
82
82
  femagtools/moo/algorithm.py,sha256=e-Cgp2rp_hG9DXqWqluzQGNIWvCfthUgLD8O-aVPofA,5763
@@ -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=C054GIbgghiyyuwiDQw-ikmUlBZVWAYT3zSJ_T7rW_I,33397
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
@@ -113,13 +113,13 @@ femagtools/templates/conduct-data.mako,sha256=quT9S1cq2C2GyeoUe-erxV6w20KvRPuJVJ
113
113
  femagtools/templates/connect_models.mako,sha256=8j1hzBMeoDJ7-GL5BH-S5p53Bu5jtqqsC2_w6MSwWnI,663
114
114
  femagtools/templates/cu_losses.mako,sha256=EeNwINYuwBuhbo9LH3STdQOTxOyyWw_BANgh_BSV9TE,1339
115
115
  femagtools/templates/displ_stator_rotor.mako,sha256=dsf9qW0i79aWAbOxaHwWfiq-Tn6WCDx46PQyEvL3SMw,830
116
- femagtools/templates/ec-rotorbar.mako,sha256=RbA1TVNczEEddTNjvGLPxILExxp4rIgoxXe1YT6a4Is,1672
116
+ femagtools/templates/ec-rotorbar.mako,sha256=MDXUKL3I4pJRMrOjXnjb-aABBnoYd1D_u5uHknmbXV8,1798
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=mQ8TyFYzSyKazpu4uiyS0UdVrl4PobHN-J6FE74IWs8,5329
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
- femagtools/templates/ld_lq_fast.mako,sha256=vO7_zLpZThNpBu_LSGnZ8k1S8eF87DEmxUse4rRVmmk,1448
122
+ femagtools/templates/ld_lq_fast.mako,sha256=zmgrsGJsJ70Jfi3F6kmYeh1ftq51IUW09H6lAxYdHp8,1449
123
123
  femagtools/templates/leak_dist_wind.mako,sha256=vs8fpxcM203kL8BVNuR8BKSmMsQM6U1_vTtYXZIfdSc,600
124
124
  femagtools/templates/leak_evol_wind.mako,sha256=JKff7ZEpndKmFYr7R0xaef_49YV6TG0tZeE8wQejR7Q,770
125
125
  femagtools/templates/leak_tooth_wind.mako,sha256=LYCPSXhSLApidthuuGNiApLh0EJZOPZmTX0LZ5cOblQ,431
@@ -135,12 +135,12 @@ femagtools/templates/magnetSector.mako,sha256=vSyZVkYtuX2Bct5kpRRGjqez3xnca5PJVP
135
135
  femagtools/templates/magnetSectorLinear.mako,sha256=ez2rkZslw66Zy4DCDiLjI2K45nEjGgunl0jsXseO_Zs,727
136
136
  femagtools/templates/magnetShell.mako,sha256=vpyZIZ5tOsrmUVM00Kime7zyu1lK9P61xq78jB8BLdo,1295
137
137
  femagtools/templates/magnetShell2.mako,sha256=4IJBfBTPxuYHr1SAcVvNdQoGd8emwsx8vMKQPI9pRlc,4080
138
- femagtools/templates/mesh-airgap.mako,sha256=bHmiz-Ul_S0x7mJH_b2VWXu6aH7FyXB7dcTwr5JAg9c,4022
138
+ femagtools/templates/mesh-airgap.mako,sha256=ANlKEEYgnyTVuPizTmZG75g1lP-5MAhoOMR4fUB_kAE,4095
139
139
  femagtools/templates/modal_analysis.mako,sha256=Thf62FBqL738qnp1ongPr196GJY27vwElKqPfMWF45s,2298
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=BiAtTL0mj8ukbRiPKKyH80PpzugGIJKZhvay7yxnSp8,3209
143
+ femagtools/templates/noloadflux-rot.mako,sha256=EAnE2giVjXsQUOqIOmXvbqZnlA5_kRGZHren40DIqG0,3906
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
@@ -151,13 +151,16 @@ femagtools/templates/pm_sym_loss.mako,sha256=FNAvi_gmTXsGylrpi7lLKPoOOcNCV1mG6rc
151
151
  femagtools/templates/prepare_thermal.mako,sha256=V3W6BGW7gjY8Lg2qzvGDi8rxx3JvPzrWoABDvHKyq54,9539
152
152
  femagtools/templates/psd_psq_fast.mako,sha256=IOZx04JhVleAAbBOPWk9gEwDyT28z0zkF9tyEBteRPU,1428
153
153
  femagtools/templates/psi-torq-rem-rot.mako,sha256=A1KOsYNSJhIJfumF-egnU-HUfNMPeX-XSPL_WsoE1Cw,3579
154
- femagtools/templates/psi-torq-rot.mako,sha256=e0-kJZ4mQ5w-Dd4riJkcjlJAt0STcNrVRVJfa-6cV7g,2498
154
+ femagtools/templates/psi-torq-rem.mako,sha256=N9AcWV0_c2jvZCr-LOW6QqDC7QIbZ-cVZ2fQ_Jw61KA,3099
155
+ femagtools/templates/psi-torq-rot.mako,sha256=_iT-IbgeC28wQzMVfi7uIN0cfp5pZ6d1mpLsoQrMx2c,2646
155
156
  femagtools/templates/ring.mako,sha256=Cuc_FuCPWZM-g3TxHqzTdjknYEJSUgP-y64gp8pekDI,643
156
157
  femagtools/templates/rot_hsm.mako,sha256=eh50TbpWNUALK9_7wOOJ7KPewHos7JExAfMACbPlXYc,973
157
158
  femagtools/templates/rotorAsyn.mako,sha256=r_gce0oic24nPdI7BmERM1sokXpC5vvm8Sm0TIPb2zI,2280
158
159
  femagtools/templates/rotorKs2.mako,sha256=PtWyvW71gObgWIUnnqS9VnMX1oCfxw_sF9eAwUzeAyQ,1908
159
160
  femagtools/templates/rotor_msh.mako,sha256=50nep93hyVFG-KOJujPnJpCaIrIsG9VL71Zy8WGuxa0,1910
160
161
  femagtools/templates/rotor_winding.mako,sha256=rK5CBX4AJ1_SS5vL02_xVLmlWDlU2fosw4pLTlDFLlk,866
162
+ femagtools/templates/rotor_winding_ks2.mako,sha256=9xSxJpgNHkLP21dDhIjkI-ssSWxMUY_ViX5ZHZshU7A,1007
163
+ femagtools/templates/rotor_winding_ks2_ecSimulation.mako,sha256=raP7HvmL1W45tGPi86FlkNpO72ZogBl6GqN1hdh0aJ0,1031
161
164
  femagtools/templates/shortcircuit.mako,sha256=Mr1zRtF_Y2QZ1qpTn8_-PASYrTFRYWpByhDzdWx87ys,1981
162
165
  femagtools/templates/srm.mako,sha256=NneriEFv1wurQCGBI2xozzF2pTzlzS8pEPqtKm0SASQ,2077
163
166
  femagtools/templates/stator1.mako,sha256=1sf0lzLXsjwiBNk3OGLwlio3GUVFogfxqEwaySVO6cs,761
@@ -165,7 +168,7 @@ femagtools/templates/stator2.mako,sha256=7Ae9sfaX7H4ummL6-g8iG42ArUvl6J809TW2tOd
165
168
  femagtools/templates/stator3Linear.mako,sha256=pNe3C1wT0W2C0qePo3sEyebW1z_dpTuJzg0r5kf3JQY,760
166
169
  femagtools/templates/stator4.mako,sha256=Jq8pfIuOmmpyGOL1z2aQZfbwMS5-Zyn6OGJ51LCBVKs,1179
167
170
  femagtools/templates/statorBG.mako,sha256=fh0cVOZVWyLojlGxWJoFz2pvdL6Yxy4xzhY-Joc2xeg,893
168
- femagtools/templates/statorRing.mako,sha256=sDgDmk71EoE8d4e9cmyqKqRldfC8uKMmpHEjXJGIt_k,2071
171
+ femagtools/templates/statorRing.mako,sha256=7NeweZX3VIVlEfUlwt3HIMeW2BAKlyRDmOmLZdKpnAY,2071
169
172
  femagtools/templates/statorRotor3.mako,sha256=6ycHlkSnk-TKFdoxiOqjpr6Pk0l634w3_O94vvRP4BI,4357
170
173
  femagtools/templates/stator_msh.mako,sha256=Neze1ielMCk7TrARyhOra91fFQVT8Phsgk2Omt_aMG8,1799
171
174
  femagtools/templates/therm-dynamic.mako,sha256=pEz7jrUpopK1-RqgulNnrkSaCZDjfLelsVo6cBqmpac,3142
@@ -176,15 +179,15 @@ tests/test_afpm.py,sha256=ge5CXnVQ7E5gVViTI9hQOC0hHetBci18pY9prbUCAqU,16849
176
179
  tests/test_airgap_induction.py,sha256=cmpy1og59oWEyCO4oF_zDuc1DUwCbdeebNL1ujpZza4,1065
177
180
  tests/test_amela.py,sha256=Oi_NURmXDI0s9Tw82KO8k5ZkK6sZ9b2DhafJ5SBnvkE,629
178
181
  tests/test_asm.py,sha256=NAMJ2Km4zi6byhooq5E7GZbkFeSNSTaLpJWt-jQF5cE,1398
179
- tests/test_bchreader.py,sha256=yFpjN0MIv_o_OD8XH9HxlOpcNtL79K_3bXMeupxO648,16843
182
+ tests/test_bchreader.py,sha256=YPU00nl2MXQiMr1i-W4UOgUvKheeW5tqv_OpTBBOK0g,16835
180
183
  tests/test_conductor.py,sha256=T7bmuSdI2Fowwm2Ht-8D0Qnfs1_lx1aoi9RhC2p5nYU,332
181
184
  tests/test_convert.py,sha256=oseuhm3Iw-9b4WzBjA_Og2lgXPqKYicLUnfadq5Yick,6497
182
185
  tests/test_dxfsl.py,sha256=DBAjtwNAwcB7VYZBjul7xf4ovu14n3Z0fxyreVzAW4A,383
183
186
  tests/test_effloss.py,sha256=-kJJNgS5c6saHXjNuhAe5GdWfr9mEYpPo8fE8OtjsNA,1142
184
187
  tests/test_erg.py,sha256=kRVzpXa6JDdbxTss18HUWKny9Dx8IMx9uGTrbQCnHwg,523
185
- tests/test_femag.py,sha256=l7-av3eitLm7bwTuunEmVeTspi82ifPrlz7f1boGdVI,1934
188
+ tests/test_femag.py,sha256=55cCx90tJ1BEeu_-DOit37y26hFGVSYwkT81s9-p28E,1934
186
189
  tests/test_forcedens.py,sha256=Yzl3SAmJNkZN9dA3aLxRvwY8fKsw077Fl0iJm6zJ5Sk,536
187
- tests/test_fsl.py,sha256=pjgqRo5fhrKYWg-bWjPm_O6-kwVyr-ZK-oOFUgYtyso,16623
190
+ tests/test_fsl.py,sha256=5l-L-6eONQAgRReMtyoUNEpy9-hMKfmX7iZbhxW61xw,16623
188
191
  tests/test_heat_source_network.py,sha256=TC-Gl4iy9jnMGfsY_24XjwlP-SDxP345JKVT8xRwsFo,690
189
192
  tests/test_hxy.py,sha256=pVb6ZfDhBy5-DXa3gh7RQmLFG8p5cSYB8gdGLC8kjAk,640
190
193
  tests/test_im.py,sha256=55wfCoA8_PuogI_RsC3AjUQCpR84T-HddtHuU1NxfPc,662
@@ -220,9 +223,8 @@ tests/moo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
220
223
  tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
221
224
  tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
222
225
  tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
223
- femagtools-1.8.11.dist-info/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
224
- femagtools-1.8.11.dist-info/METADATA,sha256=S4Peo7fKYPOUPvhtG7ZkLhuluCeYh4ZlhdoQH7AIor4,6191
225
- femagtools-1.8.11.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
226
- femagtools-1.8.11.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
227
- femagtools-1.8.11.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
228
- femagtools-1.8.11.dist-info/RECORD,,
226
+ femagtools-1.8.13.dist-info/METADATA,sha256=WrG9IMqMZCl8Fmuqe5N2Do4-KOhzC_ybE7kwj-m0MS4,4571
227
+ femagtools-1.8.13.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
228
+ femagtools-1.8.13.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
229
+ femagtools-1.8.13.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
230
+ femagtools-1.8.13.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
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.38, 2)
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], 2409.142, 2)
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_femag.py CHANGED
@@ -70,7 +70,7 @@ def test_run_script(monkeypatch, tmpdir):
70
70
  magnetizingCurves=mcv, magnets=magnetmat)
71
71
 
72
72
  fsl = femag.create_fsl(machine, simulation)
73
- assert len(fsl) == 94
73
+ assert len(fsl) == 95
74
74
  assert femag.model.magnet['temp_prop']['magntemp'] == 60.0
75
75
 
76
76
  r = femag(machine, simulation)
tests/test_fsl.py CHANGED
@@ -315,7 +315,7 @@ class FslBuilderTest(unittest.TestCase):
315
315
  def test_run_models(self):
316
316
  feapars['calculationMode'] = "cogg_calc"
317
317
  fsl = self.builder.create_analysis(feapars)
318
- self.assertEqual(len(fsl), 28)
318
+ self.assertEqual(len(fsl), 29)
319
319
 
320
320
  feapars['calculationMode'] = "pm_sym_fast"
321
321
  fsl = self.builder.create_analysis(feapars)
@@ -327,13 +327,13 @@ class FslBuilderTest(unittest.TestCase):
327
327
 
328
328
  feapars['calculationMode'] = "torq_calc"
329
329
  fsl = self.builder.create_analysis(feapars)
330
- self.assertEqual(len(fsl), 28)
330
+ self.assertEqual(len(fsl), 29)
331
331
 
332
332
  def test_run_existing_model(self):
333
333
  model = femagtools.MachineModel('data/magnsec')
334
334
  feapars['calculationMode'] = "cogg_calc"
335
335
  fsl = self.builder.create(model, feapars)
336
- self.assertEqual(len(fsl), 67)
336
+ self.assertEqual(len(fsl), 68)
337
337
 
338
338
  def test_create_plots(self):
339
339
  pars = copy.deepcopy(feapars)