femagtools 1.8.6__py3-none-any.whl → 1.8.7__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 +11 -7
- femagtools/femag.py +8 -70
- femagtools/fsl.py +6 -3
- femagtools/isa7.py +47 -3
- femagtools/losscoeffs.py +29 -3
- femagtools/machine/afpm.py +15 -6
- femagtools/mcv.py +162 -7
- femagtools/parstudy.py +3 -1
- femagtools/plot/bch.py +126 -44
- femagtools/plot/nc.py +13 -0
- femagtools/shortcircuit.py +378 -0
- femagtools/templates/psi-torq-rem-rot.mako +127 -0
- {femagtools-1.8.6.dist-info → femagtools-1.8.7.dist-info}/METADATA +1 -1
- {femagtools-1.8.6.dist-info → femagtools-1.8.7.dist-info}/RECORD +20 -18
- tests/test_nc.py +11 -0
- {femagtools-1.8.6.dist-info → femagtools-1.8.7.dist-info}/LICENSE +0 -0
- {femagtools-1.8.6.dist-info → femagtools-1.8.7.dist-info}/WHEEL +0 -0
- {femagtools-1.8.6.dist-info → femagtools-1.8.7.dist-info}/entry_points.txt +0 -0
- {femagtools-1.8.6.dist-info → femagtools-1.8.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,127 @@
|
|
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-rot.dat in current directory with columns:
|
10
|
+
-- displ curr1 curr2 curr3 psi1 psi2 psi3 torq rrem
|
11
|
+
|
12
|
+
function gcd(a, b)
|
13
|
+
return b==0 and a or gcd(b,a%b)
|
14
|
+
end
|
15
|
+
|
16
|
+
function dmg(ek, Br, alfam, murm, Bd, Bq, Hd, Hq, alfahm, Hk)
|
17
|
+
if Hd < Hk then
|
18
|
+
muem = murm*4*math.pi*1e-7
|
19
|
+
Brn = Bd - Hk*1e3*muem
|
20
|
+
if Br < 1e-5 then
|
21
|
+
Brn = 1e-5
|
22
|
+
end
|
23
|
+
return Brn, alfam, 1
|
24
|
+
end
|
25
|
+
return Br, alfam, 1
|
26
|
+
end
|
27
|
+
|
28
|
+
function calc_flux_torq_rem(phi, curvec)
|
29
|
+
for k=1,3 do
|
30
|
+
def_curr_wdg(k, curvec[k]/a, 0)
|
31
|
+
end
|
32
|
+
|
33
|
+
dRR = 0
|
34
|
+
RR = 0
|
35
|
+
maxit=m.num_nonl_it
|
36
|
+
maxcop=m.error_perm -- err_perm in %
|
37
|
+
permode='restore'
|
38
|
+
repeat
|
39
|
+
calc_field_single({
|
40
|
+
maxit=maxit, maxcop=maxcop, -- err_perm in %
|
41
|
+
permode=permode})
|
42
|
+
if(maxit > 1) then
|
43
|
+
maxit = 1
|
44
|
+
permode='actual'
|
45
|
+
maxcop = 0.05
|
46
|
+
end
|
47
|
+
stat, RR, dRR = calc_demag(5, Hk)
|
48
|
+
--printf("%g %g", RR, dRR)
|
49
|
+
until math.abs(dRR) < 1e-5
|
50
|
+
|
51
|
+
psi = {}
|
52
|
+
for k=1,3 do
|
53
|
+
psir, psii = flux_winding_wk(k)
|
54
|
+
psi[k] = {ksym*psir/a*m.arm_length, ksym*psii/a*m.arm_length}
|
55
|
+
end
|
56
|
+
|
57
|
+
fr, ft, tq, fx, fy = force_torque()
|
58
|
+
|
59
|
+
return psi, tq, RR
|
60
|
+
end
|
61
|
+
%if model.get('fc_radius', 0):
|
62
|
+
if m.fc_radius == nil then
|
63
|
+
m.fc_radius = ${model['fc_radius']*1e3}
|
64
|
+
end
|
65
|
+
%endif
|
66
|
+
%if type(model.get('curvec')[0]) is list:
|
67
|
+
curvec = {${','.join(['{'+','.join([str(x) for x in y])+'}' for y in model['curvec']])}} -- A
|
68
|
+
%else:
|
69
|
+
curvec = {{${','.join([str(x) for x in model['curvec']])}}} -- A
|
70
|
+
%endif
|
71
|
+
a=${model.get('num_par_wdgs', 1)} -- parallel branches
|
72
|
+
|
73
|
+
ksym = m.num_poles/m.npols_gen
|
74
|
+
|
75
|
+
if num_agnodes ~= nil then
|
76
|
+
dphi = 360/num_agnodes -- ndst[2] -- deg
|
77
|
+
else
|
78
|
+
post_models("nodedistance", "ndst" )
|
79
|
+
dphi = ndst[2] -- deg
|
80
|
+
end
|
81
|
+
nodes = math.floor(360/m.num_poles/dphi+0.5)
|
82
|
+
printf("Nodes in airgap total %g, Nodes per pole: %d", 360/dphi, nodes)
|
83
|
+
-- find a valid number of steps for a rotation:
|
84
|
+
nrot = nodes
|
85
|
+
while( nrot%2) == 0 do
|
86
|
+
nrot = nrot//2
|
87
|
+
end
|
88
|
+
-- HcB = Brem*tempcoefbr*(magn_temp-20)+1)/muerel/12.565e-7
|
89
|
+
-- Hcmin = HcJ*tempcoefhc*(magn_temp-20.0)+1)/HcB*1e2 -- limit of demagnetization in
|
90
|
+
Hk = ${model.get('Hk', -999)}
|
91
|
+
Q1 = get_dev_data("num_slots")
|
92
|
+
p = m.num_poles//2
|
93
|
+
dphi = 360//gcd(Q1, p)/nrot
|
94
|
+
print(string.format(" rotation steps: %d current steps: %d\n", nrot, #curvec))
|
95
|
+
|
96
|
+
phi = 0
|
97
|
+
-- initialize rotate
|
98
|
+
rotate({
|
99
|
+
airgap = m.fc_radius, -- air gap radius
|
100
|
+
region = "inside", -- region to rotate
|
101
|
+
mode = "save" -- save initial model state
|
102
|
+
})
|
103
|
+
|
104
|
+
for i=1, #curvec do
|
105
|
+
print(string.format(" current: %d/%d %g, %g, %g\n",
|
106
|
+
i, #curvec, curvec[i][1], curvec[i][2], curvec[i][3]))
|
107
|
+
|
108
|
+
file_psi = io.open("psi-torq-rem-rot-"..i..".dat","w")
|
109
|
+
for n=1,nrot+1 do
|
110
|
+
psi, tq, rr = calc_flux_torq_rem(phi, curvec[i])
|
111
|
+
file_psi:write(string.format("%g ", phi))
|
112
|
+
for k=1, 3 do
|
113
|
+
file_psi:write(string.format("%g ", curvec[i][k]))
|
114
|
+
end
|
115
|
+
for k=1, 3 do
|
116
|
+
file_psi:write(string.format("%g ", psi[k][1]))
|
117
|
+
end
|
118
|
+
file_psi:write(string.format("%g ", tq))
|
119
|
+
file_psi:write(string.format("%g ", rr))
|
120
|
+
file_psi:write("\n")
|
121
|
+
|
122
|
+
phi = n*dphi
|
123
|
+
rotate({angle=phi, mode="absolute"})
|
124
|
+
end
|
125
|
+
file_psi:close()
|
126
|
+
rotate({mode = "reset"}) -- restore the initial state (discard any changes)
|
127
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: femagtools
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.7
|
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=ACK3cP4kilKCsL9TszbvzK0Gd3rNR9mdxXLlRxxVOI8,1600
|
2
2
|
femagtools/airgap.py,sha256=hELJXe52yUw82JwZ1tGUXUtRhMG2_WSUBVeGkTZSAM8,1900
|
3
3
|
femagtools/amazon.py,sha256=O1ICuv21XDAJi1qK1Sigs2TdS6hDZP19OzvmE2t76wU,12069
|
4
4
|
femagtools/amela.py,sha256=RFTuQ5EcX19G2YJchnktr6j62mNptrdTreShQDOeuKA,13874
|
5
5
|
femagtools/asm.py,sha256=CiL0KWaF4P7O6-VwmGLdva_icwmPrPiI-TFQ19XYTKk,7660
|
6
|
-
femagtools/bch.py,sha256=
|
6
|
+
femagtools/bch.py,sha256=wLuYbxNPpZ8b-74O_m-85qmbW2pg0ozEXfd2DD7-gvY,74388
|
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,21 +15,21 @@ femagtools/dakotaout.py,sha256=6nn0PXsB40mPKiQLenqAtHy0KXCO7kvqqQ-aD2JhQvw,5573
|
|
15
15
|
femagtools/docker.py,sha256=XDVmLBB0z4sZZpcrx7Wbm84xl4ksj7aqn5-ZOPxdxm4,7460
|
16
16
|
femagtools/ecloss.py,sha256=kTsE9Lx6nt6Ez9PBfD58hPMcnH2PxSc95zJaYMCQd5Q,33957
|
17
17
|
femagtools/erg.py,sha256=IXKq76P9qLt_ssNOP78v8Qizk3J2Zg80yaKDSjzwoJE,1224
|
18
|
-
femagtools/femag.py,sha256=
|
18
|
+
femagtools/femag.py,sha256=y9H7_B4k1lDjQygoNe_amOzsZvLhobIYSFBrhU6BE6s,44799
|
19
19
|
femagtools/forcedens.py,sha256=7NNv75Vg9vQ_fy8W4kM2rlSO970zaSmeurhPmdAxsOU,8485
|
20
|
-
femagtools/fsl.py,sha256=
|
20
|
+
femagtools/fsl.py,sha256=8aFo7a0cf2vOLiYTqKabwZl_1xs2JqJaAHKGckHCL6U,37204
|
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=bP1yl2iwy_5W0QVv2eSXn74EfFOAvtUSpyJGiI3QwTg,61831
|
28
28
|
femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
|
29
29
|
femagtools/job.py,sha256=sIRVXsyoupfRXqGsWyOHMetcKlWIyggxfVURjM8aD54,11322
|
30
|
-
femagtools/losscoeffs.py,sha256=
|
30
|
+
femagtools/losscoeffs.py,sha256=7B29VdEsmv8HSP749X3QBb_E-XN6Z9dvNleKiRLWaMI,7721
|
31
31
|
femagtools/magnet.py,sha256=Nuk060bT4Wa3lX74HdefqTTtUxLaERDSBYTTpbi6KP4,1093
|
32
|
-
femagtools/mcv.py,sha256=
|
32
|
+
femagtools/mcv.py,sha256=IDT0rw67mfennlHnuqJKDUS7vKezXMr_tZsSHDypUoE,48343
|
33
33
|
femagtools/me.py,sha256=z6RJkvSbgMmorCQTxKvq44uIYKh82uYYExjkNePJCmE,1813
|
34
34
|
femagtools/model.py,sha256=dk9x-iqRzgOTdTCeU_ynUZGb1bt4FvU1ZGMPXytMbUg,17965
|
35
35
|
femagtools/moproblem.py,sha256=kOP8pRdD8YXz28_M2WKnFgl3eeJ7tqg49ohoazsmUOg,2825
|
@@ -39,9 +39,10 @@ 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
|
42
|
-
femagtools/parstudy.py,sha256=
|
42
|
+
femagtools/parstudy.py,sha256=WY1LxvN44LBqhmZb2dnNO5lVRW3oNyRiKmyi6QxdmqU,19792
|
43
43
|
femagtools/poc.py,sha256=yPWmpi8Q2g7NmpAi2YV5ezyo0VUj67EK0tcX2wikerw,7207
|
44
44
|
femagtools/semi_fea.py,sha256=WZtYKrzhDruETyuEW2kpiNp9OaA7Hheq3qJiAIYtsjg,3475
|
45
|
+
femagtools/shortcircuit.py,sha256=9LjnX4z3Kt_DI7DO_h-ivZqxvPt8eAnkJ8_RIFB_q-s,13936
|
45
46
|
femagtools/tks.py,sha256=C3lDdS91Yikf3cMnW-OEqmie-q6S24T81cCFrzwOyeI,7532
|
46
47
|
femagtools/ts.py,sha256=x9aCMVASjdBZuyI2pJGMyi1dveGFd_pWQ20cZ-l_moc,47216
|
47
48
|
femagtools/utils.py,sha256=dJkQ5xsoVMzSEB5-2hEiwe2of9mLmsDo8nkrnSN-gPE,1643
|
@@ -69,7 +70,7 @@ femagtools/dxfsl/shape.py,sha256=uQqbgXIA2_KP2XRdhCfVfGWjcjwzhJ5t9RhiqR9R98c,616
|
|
69
70
|
femagtools/dxfsl/svgparser.py,sha256=RY2TU9MK6gOaNmI6w6RNqcw7H9YGmK-NUwvdylKBcsE,3763
|
70
71
|
femagtools/dxfsl/symmetry.py,sha256=dXfZVIqT49nbMirY5YVaRPi8kNB8reaiq-eIbhw1Z54,43936
|
71
72
|
femagtools/machine/__init__.py,sha256=B7yeRZzf29NWCWy8C8iJFdTr9bszAoMRcVEpblhCeg4,7256
|
72
|
-
femagtools/machine/afpm.py,sha256=
|
73
|
+
femagtools/machine/afpm.py,sha256=PTBCvHHW8Z4dhyjhHSEkgfdVU9gzEsHLw2mY3X5LQp8,38272
|
73
74
|
femagtools/machine/effloss.py,sha256=gOgVdAr703Vh9T2Ht14of_I-95QOkH5qXmm11bfHK7s,14414
|
74
75
|
femagtools/machine/im.py,sha256=isMSoCnIk4Hj47MwBNP5PW7a2rI-7N35A9zHGOSl43s,38111
|
75
76
|
femagtools/machine/pm.py,sha256=C4vDdPIsIRUKtzY3b1RNT1v37p1uP3pMUduftNejcPc,68129
|
@@ -84,14 +85,14 @@ femagtools/moo/test/AlgorithmTest.py,sha256=KzR1og4bu6NOE61DDKjEMTQdsysmho4LCYmJ
|
|
84
85
|
femagtools/moo/test/PopulationTest.py,sha256=lG9NeWo0xrslfQRa4tgy1Nj23VJMFIlg_vQ9KUBYnRA,5529
|
85
86
|
femagtools/moo/test/ProblemTest.py,sha256=r5XEfY4LPscDb35TxxPd0lbP3nUmL6_G6vrRo1I3RSg,505
|
86
87
|
femagtools/plot/__init__.py,sha256=LFrHy_9L6FxJqhYND2z1534s3ebPXkfXVagFeNA1wWk,978
|
87
|
-
femagtools/plot/bch.py,sha256=
|
88
|
+
femagtools/plot/bch.py,sha256=C054GIbgghiyyuwiDQw-ikmUlBZVWAYT3zSJ_T7rW_I,33397
|
88
89
|
femagtools/plot/char.py,sha256=xv4cNOTorK-fy7eUFhmyR-013TFI2A2999xXKgL2AnA,12469
|
89
90
|
femagtools/plot/fieldlines.py,sha256=_7ykKhnQLeS4fz34pnzovH1gIhcUSKJ3gl1GUgWYix8,1137
|
90
91
|
femagtools/plot/fluxdens.py,sha256=NlexRJ3f_8CgKoWrV82ZIsAXPrLhwj98uOe8_fUks7A,1082
|
91
92
|
femagtools/plot/forcedens.py,sha256=Vloi9czy7qbGXI-Vm7Cow6IfHTsFhCLI1YWduFOR55c,4075
|
92
93
|
femagtools/plot/machine.py,sha256=fVLOZTc19Ru8eXLdtoTeIYsHRWhGLkn_YVZ6qO6KgrE,2654
|
93
94
|
femagtools/plot/mcv.py,sha256=ijZg6KPwZC7sDxEzGEUfVWvDoSEfgcaH-hzQMt7E90I,3671
|
94
|
-
femagtools/plot/nc.py,sha256=
|
95
|
+
femagtools/plot/nc.py,sha256=E7_7WNG3MNrV4QPJJqng1nfuXf3ZbjAGeonthqQlMss,11349
|
95
96
|
femagtools/plot/phasor.py,sha256=5QG1GkXKVksc8P6Q4thKADf6W1l8rDKeArIHFYvbXlw,4858
|
96
97
|
femagtools/plot/wdg.py,sha256=Orw2XGThHpOuJ_raSRnQTzj5tOmwllNWweByoOXbA7I,9820
|
97
98
|
femagtools/svgfsl/converter.py,sha256=5q4LognshXNTpUWLnU5rtgCfAwZnEuPzqsgyeRYC-VM,3019
|
@@ -148,6 +149,7 @@ femagtools/templates/pm_sym_fast.mako,sha256=wD_bwszJ5svPOL1AtWThbkuMyxi-wRAPpP3
|
|
148
149
|
femagtools/templates/pm_sym_loss.mako,sha256=FNAvi_gmTXsGylrpi7lLKPoOOcNCV1mG6rc8gnXQ8u0,1098
|
149
150
|
femagtools/templates/prepare_thermal.mako,sha256=V3W6BGW7gjY8Lg2qzvGDi8rxx3JvPzrWoABDvHKyq54,9539
|
150
151
|
femagtools/templates/psd_psq_fast.mako,sha256=IOZx04JhVleAAbBOPWk9gEwDyT28z0zkF9tyEBteRPU,1428
|
152
|
+
femagtools/templates/psi-torq-rem-rot.mako,sha256=A1KOsYNSJhIJfumF-egnU-HUfNMPeX-XSPL_WsoE1Cw,3579
|
151
153
|
femagtools/templates/ring.mako,sha256=Cuc_FuCPWZM-g3TxHqzTdjknYEJSUgP-y64gp8pekDI,643
|
152
154
|
femagtools/templates/rot_hsm.mako,sha256=eh50TbpWNUALK9_7wOOJ7KPewHos7JExAfMACbPlXYc,973
|
153
155
|
femagtools/templates/rotorAsyn.mako,sha256=r_gce0oic24nPdI7BmERM1sokXpC5vvm8Sm0TIPb2zI,2280
|
@@ -195,7 +197,7 @@ tests/test_mcv.py,sha256=Vv51WU3WU0AkgcSpyujMdJ2KvSdLNsks5HGtY0pWMOY,4749
|
|
195
197
|
tests/test_mcvreader.py,sha256=3cgq22b_iaWLrs4WWOUNHqJREnv0YoFivNpAb4teEJs,2118
|
196
198
|
tests/test_me.py,sha256=En00OrOhZclBO4u74q5Os0FgVP4TGFLzz99LF0QHXHA,196
|
197
199
|
tests/test_model.py,sha256=kYjjFgZPIex3foX3skiOdD5MCcmA2JP7oDDuE9txv_U,2698
|
198
|
-
tests/test_nc.py,sha256=
|
200
|
+
tests/test_nc.py,sha256=QUf01YigPYtwkRsmt7_8ap9tQUJgIeDmWo53llVucTM,4668
|
199
201
|
tests/test_parident.py,sha256=zwj-f-Q_s5dBr_fEvzd5iZqNVIcLwkoi_FF2_FNTiaw,1393
|
200
202
|
tests/test_parstudy.py,sha256=wk7WfYQrx5dtv6MnmWCfNAEInvRKsbVXYEUIIR9zLbQ,3200
|
201
203
|
tests/test_pocfile.py,sha256=eiMLBRQxDnHIGiqku6EXcQ3fb7wGIxhXmb20iyLlPRU,5816
|
@@ -216,9 +218,9 @@ tests/moo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
216
218
|
tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
|
217
219
|
tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
|
218
220
|
tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
|
219
|
-
femagtools-1.8.
|
220
|
-
femagtools-1.8.
|
221
|
-
femagtools-1.8.
|
222
|
-
femagtools-1.8.
|
223
|
-
femagtools-1.8.
|
224
|
-
femagtools-1.8.
|
221
|
+
femagtools-1.8.7.dist-info/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
|
222
|
+
femagtools-1.8.7.dist-info/METADATA,sha256=FjouSutX0CXyaLR8K4xThZIFopGoxvhm6151vMBW95A,6190
|
223
|
+
femagtools-1.8.7.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
224
|
+
femagtools-1.8.7.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
|
225
|
+
femagtools-1.8.7.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
|
226
|
+
femagtools-1.8.7.dist-info/RECORD,,
|
tests/test_nc.py
CHANGED
@@ -92,6 +92,17 @@ def test_areas(pm):
|
|
92
92
|
assert a[1]['slots'] == 0
|
93
93
|
assert a[1]['magnets'] == pytest.approx(0.000345, abs=1e-5)
|
94
94
|
|
95
|
+
def test_geom(pm):
|
96
|
+
mag_spels = pm.magnet_super_elements()
|
97
|
+
assert len(mag_spels) == 5
|
98
|
+
g = mag_spels[0].get_rect_geom()
|
99
|
+
assert g['w'] == pytest.approx(0.0112, abs=1e-4)
|
100
|
+
assert g['h'] == pytest.approx(0.00308, abs=1e-5)
|
101
|
+
assert g['x0'] == pytest.approx(0.02317, abs=1e-5)
|
102
|
+
assert g['y0'] == pytest.approx(0.007528, abs=1e-5)
|
103
|
+
assert g['area'] == pytest.approx(3.45e-05, abs=1e-6)
|
104
|
+
assert g['alpha'] == pytest.approx(1.885, abs=1e-3)
|
105
|
+
|
95
106
|
def test_calc_iron_loss(pm):
|
96
107
|
import numpy as np
|
97
108
|
def pfe(Bxnu, Bynu, fnu, losscoeffs):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|