femagtools 1.5.7__py3-none-any.whl → 1.6.1__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 +38 -3
- femagtools/dxfsl/area.py +2 -3
- femagtools/dxfsl/conv.py +6 -1
- femagtools/dxfsl/converter.py +10 -2
- femagtools/dxfsl/fslrenderer.py +1 -2
- femagtools/dxfsl/functions.py +24 -27
- femagtools/dxfsl/geom.py +210 -89
- femagtools/dxfsl/machine.py +43 -16
- femagtools/dxfsl/plotrenderer.py +2 -2
- femagtools/dxfsl/shape.py +84 -19
- femagtools/femag.py +21 -3
- femagtools/fsl.py +14 -2
- femagtools/machine/__init__.py +13 -33
- femagtools/machine/afpm.py +22 -21
- femagtools/machine/pm.py +22 -21
- femagtools/machine/sm.py +1 -1
- femagtools/machine/utils.py +112 -58
- femagtools/mcv.py +27 -1
- femagtools/model.py +4 -2
- femagtools/nc.py +7 -0
- femagtools/opt.py +1 -1
- femagtools/parstudy.py +5 -2
- femagtools/plot/__init__.py +1 -0
- femagtools/plot/bch.py +2 -0
- femagtools/plot/fieldlines.py +37 -0
- femagtools/templates/basic_modpar.mako +8 -0
- femagtools/templates/bertotti.mako +40 -0
- femagtools/templates/modified_steinmetz.mako +39 -0
- femagtools/ts.py +1 -1
- femagtools/utils.py +9 -3
- {femagtools-1.5.7.dist-info → femagtools-1.6.1.dist-info}/METADATA +1 -1
- {femagtools-1.5.7.dist-info → femagtools-1.6.1.dist-info}/RECORD +40 -37
- tests/test_bchreader.py +12 -1
- tests/test_femag.py +1 -1
- tests/test_fsl.py +1 -1
- {femagtools-1.5.7.dist-info → femagtools-1.6.1.dist-info}/LICENSE +0 -0
- {femagtools-1.5.7.dist-info → femagtools-1.6.1.dist-info}/WHEEL +0 -0
- {femagtools-1.5.7.dist-info → femagtools-1.6.1.dist-info}/entry_points.txt +0 -0
- {femagtools-1.5.7.dist-info → femagtools-1.6.1.dist-info}/top_level.txt +0 -0
femagtools/plot/__init__.py
CHANGED
femagtools/plot/bch.py
CHANGED
@@ -813,6 +813,7 @@ def main():
|
|
813
813
|
ext = args.filename.split('.')[-1].upper()
|
814
814
|
if ext.startswith('MC'):
|
815
815
|
import femagtools.mcv
|
816
|
+
from femagtools.plot.mcv import mcv_hbj, mcv_muer
|
816
817
|
mcv = femagtools.mcv.read(sys.argv[1])
|
817
818
|
|
818
819
|
if mcv['mc1_type'] in (femagtools.mcv.MAGCRV, femagtools.mcv.ORIENT_CRV):
|
@@ -836,6 +837,7 @@ def main():
|
|
836
837
|
|
837
838
|
if ext.startswith('PLT'):
|
838
839
|
import femagtools.forcedens
|
840
|
+
from femagtools.plot.forcedens import forcedens, forcedens_fft
|
839
841
|
fdens = femagtools.forcedens.read(args.filename)
|
840
842
|
cols = 1
|
841
843
|
rows = 2
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import re
|
2
|
+
import xml.etree.ElementTree as ET
|
3
|
+
import matplotlib.pyplot as plt
|
4
|
+
import numpy as np
|
5
|
+
import matplotlib.lines as mpl
|
6
|
+
|
7
|
+
rgbpat = re.compile('rgb\((\d+),(\d+),(\d+)\)')
|
8
|
+
|
9
|
+
def fieldlines(svgfilename, ax=0):
|
10
|
+
"""plot fieldlines from svg file"""
|
11
|
+
lines = []
|
12
|
+
cols = []
|
13
|
+
tree = ET.parse(svgfilename)
|
14
|
+
root = tree.getroot()
|
15
|
+
for line in root.findall('svg:line',
|
16
|
+
{'svg': 'http://www.w3.org/2000/svg'}):
|
17
|
+
lines.append(
|
18
|
+
((float(line.attrib['x1']), float(line.attrib['x2'])),
|
19
|
+
(float(line.attrib['y1']), float(line.attrib['y2']))))
|
20
|
+
cols.append(
|
21
|
+
[int(x)/256
|
22
|
+
for x in rgbpat.findall(line.attrib['stroke'])[0]])
|
23
|
+
a = np.array(lines)
|
24
|
+
xmax, xmin = np.max(a[:, 0]), np.min(a[:, 0])
|
25
|
+
ymax, ymin = np.max(a[:, 1]), np.min(a[:, 1])
|
26
|
+
|
27
|
+
if ax == 0:
|
28
|
+
ax = plt.gca()
|
29
|
+
ax.set_frame_on(False)
|
30
|
+
ax.set_aspect(1)
|
31
|
+
ax.set_xlim((xmin, xmax))
|
32
|
+
ax.set_ylim((ymax, ymin)) # upside down
|
33
|
+
ax.set_yticks([])
|
34
|
+
ax.set_xticks([])
|
35
|
+
|
36
|
+
for l, c in zip(lines, cols):
|
37
|
+
ax.add_line(mpl.Line2D(l[0], l[1], color=c))
|
@@ -88,6 +88,14 @@ m.pole_width = ${model['pole_width']*1e3}
|
|
88
88
|
% if hasattr(model, 'lfe'):
|
89
89
|
m.arm_length = ${model.get(['lfe'])*1e3}
|
90
90
|
% endif
|
91
|
+
% if hasattr(model, 'lfe'):
|
92
|
+
m.arm_length = ${model.get(['lfe'])*1e3}
|
93
|
+
% endif
|
94
|
+
% if hasattr(model, 'winding'):
|
95
|
+
% if 'num_par_wdgs' in model.winding:
|
96
|
+
m.num_par_wdgs = ${model.winding['num_par_wdgs']}
|
97
|
+
% endif
|
98
|
+
% endif
|
91
99
|
pre_models("basic_modpar")
|
92
100
|
% endif
|
93
101
|
% if hasattr(model, 'num_agnodes'):
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
function pfe(Bx,By,kh,fnu,km,z,d)
|
3
|
+
|
4
|
+
-- Bx flux density x component
|
5
|
+
-- By flux density y component
|
6
|
+
-- kh Hysterese Factor
|
7
|
+
-- fnu frequency
|
8
|
+
-- km material factor
|
9
|
+
-- ph return for hysterese losses
|
10
|
+
-- pw return for eddy current losses
|
11
|
+
-- iret status
|
12
|
+
|
13
|
+
-- Parameter
|
14
|
+
|
15
|
+
basfrq=${model['base_frequency']} -- Base Frequency for ch and cw [Hz]
|
16
|
+
basind=${model['base_induction']} -- Base Induction (Peak) [T]
|
17
|
+
ch=${model['ch']} -- Fe Hysteresis Coefficient ch [W/kg]
|
18
|
+
cw=${model['cw']} -- Fe Eddy Current Coefficient cw [W/kg]
|
19
|
+
ce=${model['ce']} -- Fe Excess Coefficient cw [W/kg]
|
20
|
+
hyscoef=${model['alpha']} -- Hysteresis Frequency Coefficient
|
21
|
+
spweight= ${model['special_weight']} -- Specific Weight Iron [gr/m3]
|
22
|
+
fillfact=${model['fillfac']} -- Fillfactor Iron <= 1
|
23
|
+
|
24
|
+
-- Bertotti Iron Loss Model
|
25
|
+
-- pvfe = ch*f*(b**alpha) + cw*f**2*(b**2) + ce*f**1.5*(b**1.5)
|
26
|
+
hxx = Bx/fillfact -- Bx
|
27
|
+
hyy = By/fillfact -- By
|
28
|
+
b21 = math.sqrt(hxx*hxx+hyy*hyy)
|
29
|
+
b = b21/basind
|
30
|
+
|
31
|
+
hi = fnu/basfrq
|
32
|
+
hcw = hi^2
|
33
|
+
hce = hi^1.5
|
34
|
+
|
35
|
+
ph = kh*spweight*km*ch*hi*(b^hyscoef) -- [W/m3]
|
36
|
+
pw = spweight*km*cw*hcw*(b^2) -- [W/m3]
|
37
|
+
pe = spweight*km*ce*hce*(b^1.5)
|
38
|
+
iret=1
|
39
|
+
return ph, pw, pe, iret
|
40
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
function pfe(Bx,By,kh,fnu,km,z,d)
|
3
|
+
|
4
|
+
-- Bx flux density x component
|
5
|
+
-- By flux density y component
|
6
|
+
-- kh Hysterese Factor
|
7
|
+
-- fnu frequency
|
8
|
+
-- km material factor
|
9
|
+
-- ph return for hysterese losses
|
10
|
+
-- pw return for eddy current losses
|
11
|
+
-- iret status
|
12
|
+
|
13
|
+
-- Parameter
|
14
|
+
|
15
|
+
basfrq=${model['base_frequency']} -- Base Frequency for ch and cw [Hz]
|
16
|
+
basind=${model['base_induction']} -- Base Induction (Peak) [T]
|
17
|
+
ch=${model['ch']} -- Fe Hysteresis Coefficient ch [W/kg]
|
18
|
+
cw=${model['cw']} -- Fe Eddy Current Coefficient cw [W/kg]
|
19
|
+
alpha=${model['alpha']} -- Hysteresis Frequency Coefficient Alpha
|
20
|
+
beta=${model['beta']} -- Hysteresis Frequency Coefficient Beta
|
21
|
+
spweight= ${model['special_weight']} -- Specific Weight Iron [gr/m3]
|
22
|
+
fillfact=${model['fillfac']} -- Fillfactor Iron <= 1
|
23
|
+
|
24
|
+
-- Modified Steinmetz Iron Loss Model
|
25
|
+
-- pvfe = ch*hi*(b**(alpha + beta*b)) + cw*(hi**2)*(b**2)
|
26
|
+
hxx = Bx/fillfact -- Bx
|
27
|
+
hyy = By/fillfact -- By
|
28
|
+
b21 = math.sqrt(hxx*hxx+hyy*hyy)
|
29
|
+
|
30
|
+
b = b21/basind
|
31
|
+
hi = fnu/basfrq
|
32
|
+
coeff = alpha+beta*b
|
33
|
+
ph = kh*spweight*km*ch*hi*(b^coeff) -- [W/m3]
|
34
|
+
pw = spweight*km*cw*(b^2)*(hi^2) -- [W/m3]
|
35
|
+
pe = 0.0
|
36
|
+
|
37
|
+
iret=1
|
38
|
+
return ph, pw, pe, iret
|
39
|
+
end
|
femagtools/ts.py
CHANGED
@@ -292,7 +292,7 @@ class Losses(object):
|
|
292
292
|
srname = srname+' '
|
293
293
|
|
294
294
|
time = self.times.vector[-1]-self.times.vector[0]
|
295
|
-
return
|
295
|
+
return self.ohm_lossenergy_sr(self.nc.get_subregion(srname)) / time
|
296
296
|
|
297
297
|
def ohm_lossenergy(self, start=0.0, end=0.0):
|
298
298
|
'''Ohmic loss energy of all subregions
|
femagtools/utils.py
CHANGED
@@ -15,7 +15,13 @@ def fft(pos, y, pmod=0):
|
|
15
15
|
if pmod:
|
16
16
|
negative_periodic = pmod % 2
|
17
17
|
else:
|
18
|
-
negative_periodic = np.abs(y[0] - y[-1])/np.max(y) > 1
|
18
|
+
#negative_periodic = np.abs(y[0] - y[-1])/np.max(y) > 1
|
19
|
+
# count zero crossings
|
20
|
+
ypos = np.asarray(y[:-1]) > 0
|
21
|
+
nypos = ~ypos
|
22
|
+
nzc = len(((ypos[:-1] & nypos[1:])
|
23
|
+
| (nypos[:-1] & ypos[1:])).nonzero()[0])
|
24
|
+
negative_periodic = nzc == 0 or nzc % 2 == 1
|
19
25
|
|
20
26
|
if negative_periodic:
|
21
27
|
yx = np.concatenate(
|
@@ -34,12 +40,12 @@ def fft(pos, y, pmod=0):
|
|
34
40
|
i = np.argmax(np.abs(Y[:N//2]))
|
35
41
|
|
36
42
|
a = 2*np.abs(Y[i])/N
|
37
|
-
freq = np.fft.fftfreq(N, d=
|
43
|
+
freq = np.fft.fftfreq(N, d=360/N)
|
38
44
|
nmax = min(18*ntiles, N//2)
|
39
45
|
T0 = 0
|
40
46
|
if abs(freq[i]) > 0:
|
41
47
|
T0 = np.abs(1/freq[i])
|
42
|
-
npoles = 2*int(
|
48
|
+
npoles = 2*int(360/T0)
|
43
49
|
nmax = min(9*npoles, N//2)
|
44
50
|
|
45
51
|
alfa0 = np.angle(Y[i])
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: femagtools
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.6.1
|
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
|
@@ -1,9 +1,9 @@
|
|
1
|
-
femagtools/__init__.py,sha256=
|
1
|
+
femagtools/__init__.py,sha256=Rw6Z2_8l-e7ExzcB5j-qNHtHUxu2HC_SbKQaDRTOQLQ,1615
|
2
2
|
femagtools/airgap.py,sha256=ZCIZTYf6BbuNYx68y9fUDBQo3taN8RuGl8q-jJ7ygiA,1577
|
3
3
|
femagtools/amazon.py,sha256=O1ICuv21XDAJi1qK1Sigs2TdS6hDZP19OzvmE2t76wU,12069
|
4
4
|
femagtools/amela.py,sha256=pHjfXzpANI-7oz8MtrqNcyDZ6PxVM91vCJuvYhHy1rk,13891
|
5
5
|
femagtools/asm.py,sha256=CiL0KWaF4P7O6-VwmGLdva_icwmPrPiI-TFQ19XYTKk,7660
|
6
|
-
femagtools/bch.py,sha256=
|
6
|
+
femagtools/bch.py,sha256=gDQnL6xxW5e-BeWwIqLm6dLTMzfU6_3oDQhoUeHihSA,71677
|
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
|
@@ -15,9 +15,9 @@ 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=
|
18
|
+
femagtools/femag.py,sha256=kqBHwahV_Q-gPaIt6wOX4DZjQD8ISJm4G2snTRN1eT4,43124
|
19
19
|
femagtools/forcedens.py,sha256=nEM1MHxtpLee2sGFsehzrWEdsCRe_RSRqyNfj6u_l8g,7415
|
20
|
-
femagtools/fsl.py,sha256=
|
20
|
+
femagtools/fsl.py,sha256=3dOm_xK5AaSrIIEuANwK_HpwzKw9DA-1VPBxacHTtnE,31881
|
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
|
@@ -28,44 +28,44 @@ femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
|
|
28
28
|
femagtools/job.py,sha256=dOatzr10nIda76CjVRSS0SfEWC8_BAw0kowli523qbY,11320
|
29
29
|
femagtools/losscoeffs.py,sha256=dlSYDS13RqpPHLdv_EPWIA9liwhqjbxUiN7t7GFPZhw,5397
|
30
30
|
femagtools/magnet.py,sha256=Nuk060bT4Wa3lX74HdefqTTtUxLaERDSBYTTpbi6KP4,1093
|
31
|
-
femagtools/mcv.py,sha256=
|
31
|
+
femagtools/mcv.py,sha256=Y5tCBEhm6k64m9xQ-salId5e-U29nNTz-iH4MHTbE5Y,40673
|
32
32
|
femagtools/me.py,sha256=XNK0l-aroNYfKyxV_uslE8q3vJb_KuntAYTWd-4FQaQ,1833
|
33
|
-
femagtools/model.py,sha256=
|
33
|
+
femagtools/model.py,sha256=u-sTaVKKxrPCIMoXXQFRheC_JTwp9Plis1KP_YF3vmk,15119
|
34
34
|
femagtools/moproblem.py,sha256=kOP8pRdD8YXz28_M2WKnFgl3eeJ7tqg49ohoazsmUOg,2825
|
35
35
|
femagtools/multiproc.py,sha256=7mJF-VU1NrJkENyg8eHtDrDRNBwLPK43phZv3ehm9BU,8435
|
36
36
|
femagtools/mxw2msh.py,sha256=CIIqAvfs8U-A0OfuOAoDaqNSmoMSHSI_tW1CPFRCP5E,2151
|
37
|
-
femagtools/nc.py,sha256=
|
37
|
+
femagtools/nc.py,sha256=TC7LY1FAL43ntA0IlGzUXhUsB05-xWzeZ1yP0q4L0A4,14532
|
38
38
|
femagtools/netlist.py,sha256=CSCl8setLZ_L8DCnNWaNA3-wLe1yo-fmzARZoVvYfaA,2052
|
39
39
|
femagtools/ntib.py,sha256=76g1ZO3Fq_kN-HTMBvaKvJmMMlJMyEPFeNAcJPq3w7Y,3099
|
40
|
-
femagtools/opt.py,sha256=
|
41
|
-
femagtools/parstudy.py,sha256=
|
40
|
+
femagtools/opt.py,sha256=snQlPNT5hksCgj0TBjFBhSCERMHHGMv1xc4uFSxptfQ,8687
|
41
|
+
femagtools/parstudy.py,sha256=oP6ukKBCcAjwPK_DzbUEmo5ay2TINamao2aV42FbgP8,18799
|
42
42
|
femagtools/poc.py,sha256=MN5DRL4vHycNzXSTt9kjuZP1yZ2I02NmrKQFsmRcbF0,6536
|
43
43
|
femagtools/tks.py,sha256=FuEKiWcSnOW2Hp2NxCq1hBeQdRFkHutaJuctrhxh8Ws,6228
|
44
|
-
femagtools/ts.py,sha256=
|
45
|
-
femagtools/utils.py,sha256=
|
44
|
+
femagtools/ts.py,sha256=x9aCMVASjdBZuyI2pJGMyi1dveGFd_pWQ20cZ-l_moc,47216
|
45
|
+
femagtools/utils.py,sha256=1SX5s21xyW8u0NF_Hjs7DByyCTdLm9VRArLburTyHR0,1581
|
46
46
|
femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
|
47
47
|
femagtools/vtu.py,sha256=Sf83dHIfCKY2km-MIUHKKoj-JKN4PDX7kkPLZXyIYY4,10723
|
48
48
|
femagtools/windings.py,sha256=6ioABZRWQ3xA4kmEz2NUkXh-C-FmW9YYkjQKs5YakQs,22197
|
49
49
|
femagtools/dxfsl/__init__.py,sha256=MywcCdpKPKs4qJBJJgeDsikJFJ2P48dbTuNk303f5pM,76
|
50
|
-
femagtools/dxfsl/area.py,sha256=
|
51
|
-
femagtools/dxfsl/conv.py,sha256=
|
52
|
-
femagtools/dxfsl/converter.py,sha256=
|
50
|
+
femagtools/dxfsl/area.py,sha256=ohs6J_X-c6y-FrSd2LFjMc3024N9RcOpDKgsXIsuoNs,57818
|
51
|
+
femagtools/dxfsl/conv.py,sha256=j17gjZ7XjoP6QmEO50ZMA-jyYrcMQEgpDH0hZN26RbM,9236
|
52
|
+
femagtools/dxfsl/converter.py,sha256=6BCwlVp0PiSZ4Wj-YDgl7ynWNN2SBuwxw5VnNQ55Y9w,20821
|
53
53
|
femagtools/dxfsl/corner.py,sha256=UI1MLlVmiTBURywsOnXnXV7eBABoENc6ortkW_3GYH8,1266
|
54
54
|
femagtools/dxfsl/dumprenderer.py,sha256=n4AvInjvGIaC2iKZtQaYXXDyJVSQ3uEOFOLD4-xfKRY,1861
|
55
|
-
femagtools/dxfsl/fslrenderer.py,sha256=
|
56
|
-
femagtools/dxfsl/functions.py,sha256=
|
57
|
-
femagtools/dxfsl/geom.py,sha256
|
58
|
-
femagtools/dxfsl/machine.py,sha256=
|
59
|
-
femagtools/dxfsl/plotrenderer.py,sha256=
|
60
|
-
femagtools/dxfsl/shape.py,sha256=
|
61
|
-
femagtools/machine/__init__.py,sha256=
|
62
|
-
femagtools/machine/afpm.py,sha256=
|
55
|
+
femagtools/dxfsl/fslrenderer.py,sha256=C4oonLPzKb_9IKvpm-fMvbhQZqtP_7xWG5bzpq8P1CY,23377
|
56
|
+
femagtools/dxfsl/functions.py,sha256=Y861cXEWTLVpC5iKOSDqRQ4Idbk4OqQQD-qFK-s8_20,10107
|
57
|
+
femagtools/dxfsl/geom.py,sha256=bAZtk_GIO7anaBeZKZhWHGyt9L-t_F1YglCgRc0oU48,163051
|
58
|
+
femagtools/dxfsl/machine.py,sha256=RxUjn4Ak2o4ThwjYK7AkKuSK7SyqYFZDUOnMe9yFEBE,41543
|
59
|
+
femagtools/dxfsl/plotrenderer.py,sha256=dIOM8p3UNTlqypxuPcLCegOaK19j3-ahelZ8hneLJ6k,12710
|
60
|
+
femagtools/dxfsl/shape.py,sha256=4onAfXaVUWxC9C2WXVLYi3UH6w2lhUHxuLjdFgQOqks,48302
|
61
|
+
femagtools/machine/__init__.py,sha256=xMypyugPeEe7qHBAn2UWjiHdVYYfP6eoO56k1ZIEBss,7165
|
62
|
+
femagtools/machine/afpm.py,sha256=hNyDFRLGmCuWRPZl_u1ztJ4pA-Y_mxLaVvg3UJkzRuE,24766
|
63
63
|
femagtools/machine/effloss.py,sha256=aaSmmxKd_KWMasHUHipYDcZOw-fvTHNa38MWFnpVock,13130
|
64
64
|
femagtools/machine/im.py,sha256=ScIOLrlc4CPLYFNx2MmJqkpmbky_HXxFGZbMWUNGBrk,37881
|
65
|
-
femagtools/machine/pm.py,sha256=
|
65
|
+
femagtools/machine/pm.py,sha256=cGOdcUzMyBYJotQB8_tj93_2pwK9tml4GuSet80HgnM,56042
|
66
66
|
femagtools/machine/sizing.py,sha256=aN_OahewjTTBHnpRNfLh1AGFhqnoeZVuMBeb_3MCIVI,23096
|
67
|
-
femagtools/machine/sm.py,sha256=
|
68
|
-
femagtools/machine/utils.py,sha256=
|
67
|
+
femagtools/machine/sm.py,sha256=pkik913kU41PPiUpwDy_6BEKfCIhvY6FEp-fbU2Lqew,34320
|
68
|
+
femagtools/machine/utils.py,sha256=g9q4j9KxUWdb_iUOUQDuaAwwJx8XM0kZMpgnwsNz8hU,18616
|
69
69
|
femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
|
70
70
|
femagtools/moo/algorithm.py,sha256=lNEf0Bur4yFpIJeLtAC3oIus8sOMWTb7jepFlD28YzE,5445
|
71
71
|
femagtools/moo/population.py,sha256=gi8PSVUXkYY5vzgAwWvxfMbH_z51fN58O4-NKoarwzI,10100
|
@@ -73,9 +73,10 @@ femagtools/moo/problem.py,sha256=McIGKAXK97Jygumns0qmFeYxTG6KDRSQj2aENeC9F9A,239
|
|
73
73
|
femagtools/moo/test/AlgorithmTest.py,sha256=KzR1og4bu6NOE61DDKjEMTQdsysmho4LCYmJ6WZoILo,2535
|
74
74
|
femagtools/moo/test/PopulationTest.py,sha256=lG9NeWo0xrslfQRa4tgy1Nj23VJMFIlg_vQ9KUBYnRA,5529
|
75
75
|
femagtools/moo/test/ProblemTest.py,sha256=r5XEfY4LPscDb35TxxPd0lbP3nUmL6_G6vrRo1I3RSg,505
|
76
|
-
femagtools/plot/__init__.py,sha256=
|
77
|
-
femagtools/plot/bch.py,sha256=
|
76
|
+
femagtools/plot/__init__.py,sha256=GeyzHrxv2JDe0WO-u6vwX_GOjm28Tv30IiShyVWjgsk,920
|
77
|
+
femagtools/plot/bch.py,sha256=4f9Q-JZtj9WMjxFUXMXNaSdWdDXN_Be4-F9kOU45xns,28525
|
78
78
|
femagtools/plot/char.py,sha256=pfmsoSbrE4QuWBaGV9X7s2hT4OSK5ZQ99drmE4y1TDw,11192
|
79
|
+
femagtools/plot/fieldlines.py,sha256=QtKF4nhnQ_FHHGh9Qez3GVmym0CLhW1ZyIKtk4pzos4,1136
|
79
80
|
femagtools/plot/fluxdens.py,sha256=NlexRJ3f_8CgKoWrV82ZIsAXPrLhwj98uOe8_fUks7A,1082
|
80
81
|
femagtools/plot/forcedens.py,sha256=37FQLViGsjCh20tSlWlVfLTsvtjzdK_pEQGC2KcQ-xI,2996
|
81
82
|
femagtools/plot/mcv.py,sha256=AKbWhJd20Kcec8Hv9dX32G5yTLPkcWorQS7-3P6m-mQ,2960
|
@@ -87,7 +88,8 @@ femagtools/templates/afm_rotor.mako,sha256=fY-dlZvRLN9UAy5V6Q_inWghkSUe8pzrCYjJd
|
|
87
88
|
femagtools/templates/afm_stator.mako,sha256=l1xEwxffZ1jyx5wuJ3rhVbVlZirJzD2K8n4i5Dvbxuc,5344
|
88
89
|
femagtools/templates/airgapinduc.mako,sha256=aCMLZ7P4vjeSGikIetkwymgDjESdftPN_aYx2LfjfsY,246
|
89
90
|
femagtools/templates/asyn_motor.mako,sha256=vvZ0SIJj4ORaCbE1Hl5NeCU_j2CWdOltVpSKP7ESJTQ,2879
|
90
|
-
femagtools/templates/basic_modpar.mako,sha256=
|
91
|
+
femagtools/templates/basic_modpar.mako,sha256=RqCazMbcRkDeOGT7o3EGvdvhoJhJT8pN-C3Nu5y4sQs,3259
|
92
|
+
femagtools/templates/bertotti.mako,sha256=o0OjzIIliVy2oHtDx4QzsDBodfsUQhdln4DmPNcIHnQ,1346
|
91
93
|
femagtools/templates/calc_field_ts.mako,sha256=hNs7INzk92U8LljQvQHnKf20fD2HU6igtx1rhsOvPkc,1911
|
92
94
|
femagtools/templates/calc_therm_field.mako,sha256=Q1aAulucLjrtNiCnFGin3ObK13R1KG6dWjJTWwdfxds,1600
|
93
95
|
femagtools/templates/cogg_calc.mako,sha256=tCz6zjQXH4bZMRMKVFkGm89RQkuMO3lFAMn7gAJFfg8,1867
|
@@ -119,6 +121,7 @@ femagtools/templates/magnetShell.mako,sha256=vpyZIZ5tOsrmUVM00Kime7zyu1lK9P61xq7
|
|
119
121
|
femagtools/templates/magnetShell2.mako,sha256=4IJBfBTPxuYHr1SAcVvNdQoGd8emwsx8vMKQPI9pRlc,4080
|
120
122
|
femagtools/templates/mesh-airgap.mako,sha256=QFutdFUnz5lMpjRT9cN0w6EPShccYJfz4yuMqNYoZ1Y,3425
|
121
123
|
femagtools/templates/modal_analysis.mako,sha256=Thf62FBqL738qnp1ongPr196GJY27vwElKqPfMWF45s,2298
|
124
|
+
femagtools/templates/modified_steinmetz.mako,sha256=qrJ18XtoU39kjbcdywCJCLObQGaO-eC3Cl-1P4xLZWg,1327
|
122
125
|
femagtools/templates/mult_cal_fast.mako,sha256=FhqRZQaBIIvmx0LgKXVLOIjz7LshoDFHqhkD0QGlX8A,1255
|
123
126
|
femagtools/templates/new_model.mako,sha256=P7658h99bKrA6YbP1D365ImIZPGEAZoBeYCdq0DT0AA,345
|
124
127
|
femagtools/templates/noloadflux-rot.mako,sha256=BiAtTL0mj8ukbRiPKKyH80PpzugGIJKZhvay7yxnSp8,3209
|
@@ -154,14 +157,14 @@ tests/test_afpm.py,sha256=OE-ULFcp_fBQ7SyRacDmDGbq8ULFHLbXXx3MHJN1C1c,11031
|
|
154
157
|
tests/test_airgap_induction.py,sha256=cmpy1og59oWEyCO4oF_zDuc1DUwCbdeebNL1ujpZza4,1065
|
155
158
|
tests/test_amela.py,sha256=IsGah_O8qWsudZOnWL0pjH9S40O03oH_XfDtLgnzBMk,637
|
156
159
|
tests/test_asm.py,sha256=NAMJ2Km4zi6byhooq5E7GZbkFeSNSTaLpJWt-jQF5cE,1398
|
157
|
-
tests/test_bchreader.py,sha256=
|
160
|
+
tests/test_bchreader.py,sha256=byqjDa_329cCgQFhLHLOgxiwZ0UMzvWb-rVjvN9wFQA,15497
|
158
161
|
tests/test_conductor.py,sha256=T7bmuSdI2Fowwm2Ht-8D0Qnfs1_lx1aoi9RhC2p5nYU,332
|
159
162
|
tests/test_convert.py,sha256=oseuhm3Iw-9b4WzBjA_Og2lgXPqKYicLUnfadq5Yick,6497
|
160
163
|
tests/test_effloss.py,sha256=-kJJNgS5c6saHXjNuhAe5GdWfr9mEYpPo8fE8OtjsNA,1142
|
161
164
|
tests/test_erg.py,sha256=kRVzpXa6JDdbxTss18HUWKny9Dx8IMx9uGTrbQCnHwg,523
|
162
|
-
tests/test_femag.py,sha256=
|
165
|
+
tests/test_femag.py,sha256=55cCx90tJ1BEeu_-DOit37y26hFGVSYwkT81s9-p28E,1934
|
163
166
|
tests/test_forcedens.py,sha256=Yzl3SAmJNkZN9dA3aLxRvwY8fKsw077Fl0iJm6zJ5Sk,536
|
164
|
-
tests/test_fsl.py,sha256=
|
167
|
+
tests/test_fsl.py,sha256=H2doNSNLx9FmcHsq-Ng8mEwV7qZtAdIK4bFCyhFDUTw,16623
|
165
168
|
tests/test_hxy.py,sha256=pVb6ZfDhBy5-DXa3gh7RQmLFG8p5cSYB8gdGLC8kjAk,640
|
166
169
|
tests/test_im.py,sha256=55wfCoA8_PuogI_RsC3AjUQCpR84T-HddtHuU1NxfPc,662
|
167
170
|
tests/test_isa7.py,sha256=GJhRj2nncrUpNTIlM4jvG4kKZS7cK19hhQg9KbM3b5Q,3001
|
@@ -197,9 +200,9 @@ tests/moo/__init__.py,sha256=l8HD-AY8EwxOoo_VrG3HgEZb2MaHypvnhKCVSkR-DTA,808
|
|
197
200
|
tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
|
198
201
|
tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
|
199
202
|
tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
|
200
|
-
femagtools-1.
|
201
|
-
femagtools-1.
|
202
|
-
femagtools-1.
|
203
|
-
femagtools-1.
|
204
|
-
femagtools-1.
|
205
|
-
femagtools-1.
|
203
|
+
femagtools-1.6.1.dist-info/LICENSE,sha256=V5OED7AzEaOtvbfgNheKOSUeNtijvKQuo84FtSJNkJU,1316
|
204
|
+
femagtools-1.6.1.dist-info/METADATA,sha256=xqY9FsLAYpZD0uPCvnoDDDU8Kxv-_g8tTOVr37hRi3g,5685
|
205
|
+
femagtools-1.6.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
206
|
+
femagtools-1.6.1.dist-info/entry_points.txt,sha256=UXpu6KnrykN89sCUaFAIIzn_dYwuxizUS0GcPdoekro,195
|
207
|
+
femagtools-1.6.1.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
|
208
|
+
femagtools-1.6.1.dist-info/RECORD,,
|
tests/test_bchreader.py
CHANGED
@@ -306,6 +306,17 @@ class BchReaderTest(unittest.TestCase):
|
|
306
306
|
self.assertTrue(bch.leak_dist_wind)
|
307
307
|
self.assertEqual(bch.leak_dist_wind['nseg'], 4)
|
308
308
|
|
309
|
-
|
309
|
+
def test_read_felosses_ldq_b2(self):
|
310
|
+
bch = self.read_bch('ldqlosses-2024b2.BATCH')
|
311
|
+
self.assertEqual(bch.ldq['losses']['styoke_excess'][0], [1.45, 2.114, 2.175, 2.175])
|
312
|
+
self.assertEqual(bch.ldq['losses']['stteeth_excess'][0], [4.309, 4.973, 5.034, 5.034])
|
313
|
+
self.assertEqual(bch.ldq['losses']['rotor_excess'][0], [0.0, 0.0, 0.0, 0.7933])
|
314
|
+
|
315
|
+
def test_read_felosses_ldq_b2(self):
|
316
|
+
bch = self.read_bch('psdqlosses-2024b2.BATCH')
|
317
|
+
self.assertEqual(bch.psidq['losses']['styoke_excess'][0], [2.235, 2.235, 2.839])
|
318
|
+
self.assertEqual(bch.psidq['losses']['stteeth_excess'][0], [6.58, 6.576, 7.176])
|
319
|
+
self.assertEqual(bch.psidq['losses']['rotor_excess'][0], [0.0, 0.0, 0.0])
|
320
|
+
|
310
321
|
if __name__ == '__main__':
|
311
322
|
unittest.main()
|
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) ==
|
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
@@ -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),
|
501
|
+
self.assertEqual(len(fsl), 187)
|
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(),
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|