femagtools 1.3.0__py3-none-any.whl → 1.3.2__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 (47) hide show
  1. femagtools/__init__.py +1 -1
  2. femagtools/airgap.py +11 -37
  3. femagtools/amela.py +148 -13
  4. femagtools/bch.py +19 -3
  5. femagtools/dxfsl/area.py +68 -15
  6. femagtools/dxfsl/converter.py +15 -6
  7. femagtools/dxfsl/fslrenderer.py +13 -8
  8. femagtools/dxfsl/functions.py +1 -1
  9. femagtools/dxfsl/geom.py +415 -62
  10. femagtools/dxfsl/machine.py +97 -5
  11. femagtools/dxfsl/shape.py +46 -2
  12. femagtools/ecloss.py +393 -0
  13. femagtools/femag.py +25 -1
  14. femagtools/fsl.py +3 -2
  15. femagtools/hxy.py +126 -0
  16. femagtools/isa7.py +37 -24
  17. femagtools/machine/__init__.py +14 -13
  18. femagtools/machine/effloss.py +153 -32
  19. femagtools/machine/im.py +137 -56
  20. femagtools/machine/pm.py +584 -202
  21. femagtools/machine/sm.py +218 -64
  22. femagtools/machine/utils.py +12 -8
  23. femagtools/mcv.py +6 -8
  24. femagtools/model.py +11 -1
  25. femagtools/parstudy.py +1 -1
  26. femagtools/plot.py +159 -35
  27. femagtools/templates/afm_rotor.mako +102 -0
  28. femagtools/templates/afm_stator.mako +141 -0
  29. femagtools/templates/airgapinduc.mako +3 -3
  30. femagtools/templates/basic_modpar.mako +23 -2
  31. femagtools/templates/cogg_calc.mako +28 -5
  32. femagtools/templates/cu_losses.mako +1 -1
  33. femagtools/templates/fieldcalc.mako +39 -0
  34. femagtools/templates/gen_winding.mako +52 -47
  35. femagtools/templates/mesh-airgap.mako +43 -0
  36. femagtools/templates/stator3Linear.mako +5 -4
  37. femagtools/templates/therm-dynamic.mako +12 -6
  38. femagtools/templates/therm-static.mako +12 -0
  39. femagtools/templates/torq_calc.mako +2 -4
  40. femagtools/utils.py +45 -0
  41. femagtools/windings.py +2 -1
  42. {femagtools-1.3.0.dist-info → femagtools-1.3.2.dist-info}/METADATA +1 -1
  43. {femagtools-1.3.0.dist-info → femagtools-1.3.2.dist-info}/RECORD +47 -41
  44. {femagtools-1.3.0.dist-info → femagtools-1.3.2.dist-info}/WHEEL +1 -1
  45. {femagtools-1.3.0.dist-info → femagtools-1.3.2.dist-info}/LICENSE +0 -0
  46. {femagtools-1.3.0.dist-info → femagtools-1.3.2.dist-info}/entry_points.txt +0 -0
  47. {femagtools-1.3.0.dist-info → femagtools-1.3.2.dist-info}/top_level.txt +0 -0
@@ -24,5 +24,5 @@ m.relconlength = ${model.get('rlen', 1)*100} -- rel cond length %
24
24
  pre_models('conduct-data')
25
25
  pre_models("CU-Losses-2") -- inside
26
26
  % else:
27
- pre_models("CU-Losses-1") -- outside
27
+ pre_models("CU-Losses-1")
28
28
  % endif
@@ -0,0 +1,39 @@
1
+
2
+ -- no load single calculation
3
+
4
+ maxit=300
5
+ du_u0=1e-3
6
+
7
+ get_wdg_keys("wkeys")
8
+
9
+ -- check the machine type PSM/ESM
10
+ magn = get_dev_data("magn_remanence")
11
+
12
+ if magn > 0 then -- IPM
13
+ -- set cur to zero
14
+ for i = 1, #wkeys do
15
+ def_curr_wdg(wkeys[i],0, 0)
16
+ end
17
+ else -- ESM
18
+ for i = 1, #wkeys - 1 do
19
+ def_curr_wdg(wkeys[i],0, 0)
20
+ end
21
+ end
22
+
23
+ calc_field_single(maxit, reset, du_u0)
24
+
25
+ post_models("induct(x)","b") -- Calculate field distribution
26
+
27
+ data=io.open("bag.dat","w") -- Output in data file
28
+ N = table.getn(b) -- Number of elements in array
29
+ i = 1
30
+ repeat
31
+ data:write(string.format("%g %g %g\n",b[i],b[i+1],b[i+2]))
32
+ i = i+3
33
+ until i>=N
34
+ io.close(data)
35
+
36
+ color_gradation(0,0,"tot","Babs",0,0,"")
37
+ -- experimental (new femag-classic needed)
38
+ -- without grf_clear, overlay fieldlines with color gradation
39
+ add_field_lines("field.svg", 25)
@@ -47,35 +47,36 @@ add_to_wdg(m.xcoil_2, m.ycoil_2, "wsamekey", "wo", "wser")
47
47
  pre_models("Gen_winding")
48
48
  pre_models("gen_pocfile")
49
49
  % endif
50
- % else:
50
+ % else: # move_action > 0
51
51
  color={"green", "yellow", "magenta", "lightgrey", "darkred", "skyblue", "violet"}
52
52
  wkey={0,0,0,0,0,0}
53
- --
53
+
54
54
  bz = m.width_bz
55
- --
55
+ sw = m.slot_width
56
56
  ys = m.slot_height/2
57
-
58
- dirl = 1
59
- for i=1, m.num_phases do
60
- wdg = "w"..i
61
- for g=1, m.num_sl_gen/m.num_phases/2 do
62
- xs = 2*bz*((i-1) + (g-1)*m.num_phases)
63
- if g == 1 then
64
- wkey[i]=def_new_wdg(xs + bz/3, ys, color[i], wdg, m.num_wires, 0, dirl)
65
- else
66
- add_to_wdg(xs + bz/3, ys, color[i], wkey[i], dirl, "wser")
67
- end
68
- if m.num_layers > 1 then
69
- add_to_wdg(xs + bz - bz/3, ys, wkey[i], dirl, "wser")
70
- end
71
- dirl = -dirl
72
- if i > 1 or g > 1 then
73
- add_to_wdg(xs - bz/3, ys, wkey[i], dirl, "wser")
74
- else
75
- add_to_wdg(m.num_sl_gen*bz - bz/3, ys, wkey[i], -dirl, "wser")
76
- end
77
- if m.num_layers > 1 then
78
- add_to_wdg(xs + bz + bz/3, ys, wkey[i], dirl, "wser")
57
+ wdgscheme = ${model.windings.get('wdgscheme', '{}')}
58
+ -- TODO: m.middle_line = 1 only
59
+ for l=1, #wdgscheme do
60
+ for z=1, #wdgscheme[l] do
61
+ for i=1, #wdgscheme[l][z] do
62
+ k = wdgscheme[l][z][i]
63
+ if math.abs(k) < m.num_sl_gen+1 then
64
+ xs = (2*math.abs(k)-1)*bz/2
65
+ dir = 1
66
+ if k < 0 then
67
+ dir = -1
68
+ end
69
+ if wkey[z] == 0 then
70
+ wdg = "wdg"..z
71
+ wkey[z]=def_new_wdg(xs + sw/4, ys, color[z], wdg, m.num_wires, 0, dir)
72
+ else
73
+ if l == 1 then
74
+ add_to_wdg(xs + sw/4, ys, wkey[z], dir, "wser")
75
+ else
76
+ add_to_wdg(xs - sw/4, ys, wkey[z], dir, "wser")
77
+ end
78
+ end
79
+ end
79
80
  end
80
81
  end
81
82
  end
@@ -104,7 +105,7 @@ f = assert(io.open(model..'_'..m.num_poles.."p.poc","w"));
104
105
  elseif period<1000 then f:write(string.format(" %10.6f\n",period));
105
106
  end
106
107
  f:write("sin\n");
107
- f:write(" 0.00000000\n");
108
+ f:write(" 0.0\n");
108
109
  f:write(" 0\n");
109
110
  io.close(f);
110
111
 
@@ -116,27 +117,31 @@ m.num_poles = ${model.poles}
116
117
 
117
118
  % if 'thcap' in model.windings:
118
119
  -- Thermal Material properties
119
- rw = da1/2 +(m.slot_height-m.slot_h1)/2
120
- dw = 0
121
- dr = 0
122
- if m.middle_line == 1 then
123
- dw = 1/60
124
- elseif m.middle_line == 2 then
125
- dr = 1
126
- end
127
- lamCu = 400
128
- capCu = 385
129
- da = 1.0785
130
- dCu = 1.0
131
- lam = lamCu*(dCu/(da-dCu)+(da-dCu)/da)
132
- cap = capCu*da^2/(dCu^2*math.pi/4)
133
- for i=1,m.num_sl_gen do
134
- a = (2*i-1)*math.pi/m.tot_num_sl + m.zeroangl/180*math.pi
135
- xwl,ywl = pr2c(rw+dr,a+dw)
136
- def_mat_therm(xwl,ywl,'yellow',8920,lam,cap,1)
137
- if m.middle_line > 0 then
138
- xwr,ywr = pr2c(rw-dr,a-dw)
139
- def_mat_therm(xwr,ywr,'yellow',8920,lam,cap,1)
120
+ if m.slot_height ~= nil then
121
+ -- FEMAG slot model
122
+ -- TODO: slot model from user
123
+ rw = da1/2 +(m.slot_height-m.slot_h1)/2
124
+ dw = 0
125
+ dr = 0
126
+ if m.middle_line == 1 then
127
+ dw = 1/60
128
+ elseif m.middle_line == 2 then
129
+ dr = 1
130
+ end
131
+ lamCu = 400
132
+ capCu = 385
133
+ da = 1.0785
134
+ dCu = 1.0
135
+ lam = lamCu*(dCu/(da-dCu)+(da-dCu)/da)
136
+ cap = capCu*da^2/(dCu^2*math.pi/4)
137
+ for i=1,m.num_sl_gen do
138
+ a = (2*i-1)*math.pi/m.tot_num_sl + m.zeroangl/180*math.pi
139
+ xwl,ywl = pr2c(rw+dr,a+dw)
140
+ def_mat_therm(xwl,ywl,'yellow',8920,lam,cap,1)
141
+ if m.middle_line > 0 then
142
+ xwr,ywr = pr2c(rw-dr,a-dw)
143
+ def_mat_therm(xwr,ywr,'yellow',8920,lam,cap,1)
144
+ end
140
145
  end
141
146
  end
142
147
  %endif
@@ -12,6 +12,7 @@ if not airgap_created then
12
12
  if alfa == nil then
13
13
  alfa = m.npols_gen*2*math.pi/m.num_poles
14
14
  end
15
+ % if hasattr(model, 'bore_diam'):
15
16
  r1 = m.fc_radius - ag/6
16
17
  x1, y1 = pr2c(r1, alfa)
17
18
  n = math.floor(m.fc_radius*alfa/agndst + 1.5)
@@ -41,4 +42,46 @@ if not airgap_created then
41
42
  create_mesh_se(x0, y0)
42
43
  x0, y0 = pr2c(r2+ag/6, alfa/2)
43
44
  create_mesh_se(x0, y0)
45
+ % else:
46
+ -- airgap nodechains for axial flux
47
+ x1, y1 = 0, -ag/2 -- airgap center
48
+ x2, y2 = m.num_slots*(m.tooth_width+m.slot_width), y1
49
+ nc_line(x1, -ag/3, x2, -ag/3, num_agnodes+1)
50
+ nc_line(x1, -ag/3, x1, 0, 1)
51
+ nc_line(x2, -ag/3, x2, 0, 1)
52
+ create_mesh_se((x1+x2)/2, -ag/6)
53
+
54
+ nc_line(x1, -2*ag/3, x2, -2*ag/3, num_agnodes+1)
55
+ nc_line(x1, -2*ag/3, x1, -ag, 1)
56
+ nc_line(x2, -2*ag/3, x2, -ag, 1)
57
+ create_mesh_se((x1+x2)/2, -5*ag/6)
58
+
59
+ nc_line(x1, -ag/3, x1, -2*ag/3, 1)
60
+ nc_line(x2, -ag/3, x2, -2*ag/3, 1)
61
+ create_mesh_se((x1+x2)/2, -ag/2)
62
+
63
+ -- set boundary conditions
64
+ del_bcond()
65
+ if m.st_yoke_height > 0 then
66
+ sh = m.slot_height
67
+ else
68
+ sh = m.slot_height/2
69
+ end
70
+ x1,y1 = 0, sh+m.st_yoke_height
71
+ x2,y2 = x1, -ag - m.magn_height -m.yoke_height
72
+ x3,y3 = m.npols_gen*m.pole_width, y2
73
+ x4,y4 = x3, y1
74
+ if m.npols_gen%2 == 1 then
75
+ def_bcond_only(x1,y1, x2,y2, x3,y3, x4,y4, 3)
76
+ else
77
+ def_bcond_only(x1,y1, x2,y2, x3,y3, x4,y4, 4)
78
+ end
79
+ if (m.model_type ~= "S1R2") then
80
+ def_bcond_vpo(x4,y4, x1,y1)
81
+ end
82
+ if (m.model_type ~= "S2R1") then
83
+ def_bcond_vpo(x2,y2, x3,y3)
84
+ end
85
+
86
+ % endif
44
87
  end
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- m.cood_system = ${model.get('coord_system', 1)} -- 1: x/y or 2: r/z
3
+ m.cood_system = ${model.get('coord_system', 1)} -- 1: x/y or 2: r/z
4
4
 
5
5
  m.l_corner_x0 = 0.0
6
6
  m.l_corner_y0 = 0.0
@@ -13,10 +13,11 @@ m.slot_r1 = ${model['slot_r1']*1e3}
13
13
  m.slot_r2 = ${model['slot_r2']*1e3}
14
14
  m.width_bz = ${model['width_bz']*1e3}
15
15
  m.tooth_width = ${model['tooth_width']*1e3}
16
+ m.slot_width = m.width_bz - m.tooth_width
16
17
 
17
18
  m.middle_line = ${model['middle_line']}
18
- m.zeroangl = 0.000 -- Reference angle to x-axis [grad]
19
-
19
+ m.zeroangl = 0.000 -- Reference angle to x-axis [grad]
20
+
20
21
  m.mcvkey_yoke = mcvkey_yoke
21
-
22
+
22
23
  pre_models("STATOR3_Linear");
@@ -56,14 +56,22 @@ xcoil, ycoil = ${model['temp_coords'][0]},${model['temp_coords'][1]}
56
56
  local load = read_load_file("load.csv")
57
57
 
58
58
  f = io.open('temperature.dat', 'w')
59
+ f:write(string.format("0.0 0.0\n"))
60
+
59
61
  i = 1
60
62
  for _, load_data in ipairs(load) do -- use pairs or ipairs to iterate over tables
61
63
  if i == 1 then
62
64
  t1 = load_data.t
65
+ i1 = load_data.i1
66
+ beta = load_data.beta
67
+ speed = load_data.n
63
68
  printf("\nTotal steps: %d\n", #load)
64
69
  else
65
70
  t2 = load_data.t
66
71
  end_time = t2 - t1
72
+ i1 = load_data.i1
73
+ beta = load_data.beta
74
+ speed = load_data.n
67
75
 
68
76
  m.current = i1 * math.sqrt(2)/m.num_par_wdgs
69
77
  m.angl_i_up = beta
@@ -82,20 +90,18 @@ for _, load_data in ipairs(load) do -- use pairs or ipairs to iterate over tabl
82
90
  else
83
91
  start_mode = temp_load
84
92
  end
85
- time_step = 10
93
+ time_step = end_time/5
86
94
  calc_therm_field_tstep(start_mode,time_step,end_time)
87
95
 
88
96
  export_calc_results("temp-"..string.format("%03d",i)..".vtu")
89
97
  temp = temperature_xy(xcoil, ycoil)
90
- printf(" %f\n", temp)
98
+ printf("%4d, time: %6.1fs, current: %5.1fA, speed: %6.1frpm, Temp incr.: %2.2fK, time-step: %3.1fs\n", i-1, t2, i1, m.speed, temp, time_step)
91
99
  f:write(string.format("%g %g\n", t2, temp))
92
100
  t1 = t2
93
101
  end
94
102
 
95
- i1 = load_data.i1
96
- beta = load_data.beta
97
- speed = load_data.n
98
- i = i+1
103
+ i = i+1
104
+
99
105
  end
100
106
  f:close()
101
107
  save_model('close')
@@ -23,6 +23,18 @@ def_heat_transfer(x,y,yellow,heat_transfer_coefficient, area_factor)
23
23
  ---------------------------------------------
24
24
  -- import losses
25
25
  import_losses_from_femag_dc()
26
+ -- overwrite magnet losses (IALH)
27
+ %if not isinstance(model.get('magnet_loss_th', 0), list):
28
+ printf('magnet losses from B2 Method')
29
+ %else:
30
+ printf('magnet losses from IAlH Method')
31
+ %for i in model['magnet_loss_th']:
32
+ elkeys = get_spel_data("elkeys", ${i[0]})
33
+ x, y = get_elem_data("xycp", elkeys[1])
34
+ def_losses ( x,y,'red', ${i[1]})
35
+ %endfor
36
+ %endif
37
+
26
38
  color_gradation_th(0,0,tot,Losses,0,0,model.."_losses.svg")
27
39
 
28
40
  ---------------------------------------------
@@ -25,18 +25,16 @@ m.range_y = 0.0
25
25
 
26
26
  m.fc_force_points = 5
27
27
  m.fcpx_mm1 = m.npols_gen*m.pole_width +1.0
28
- m.fcpy_mm1 = -3*ag/4
28
+ m.fcpy_mm1 = -ag/2
29
29
  m.fcpx_mm2 = -1.0
30
30
  m.fcpy_mm2 = m.fcpy_mm1
31
31
  m.fcpx_mm3 = m.fcpx_mm2
32
- m.fcpy_mm3 = -m.magn_height -m.yoke_height -m.gap_ma_yoke -4
32
+ m.fcpy_mm3 = -m.magn_height -m.yoke_height -m.gap_ma_yoke -ag -1
33
33
  m.fcpx_mm4 = m.fcpx_mm1
34
34
  m.fcpy_mm4 = m.fcpy_mm3
35
35
  m.fcpx_mm5 = m.fcpx_mm1
36
36
  m.fcpy_mm5 = m.fcpy_mm1
37
37
 
38
- m.npols_gen = 1 -- number of sectors simulated
39
-
40
38
  % endif
41
39
  m.nu_force_pat = 0.0
42
40
  m.nu_skew_steps = ${model.get('num_skew_steps',0)}
femagtools/utils.py ADDED
@@ -0,0 +1,45 @@
1
+ import numpy as np
2
+
3
+ def fft(pos, y, pmod=0):
4
+ """calculate fft spectrum of y and return samples,
5
+ values, amplitude and phase of base harmonic
6
+
7
+ Arguments:
8
+ pos: (list of floats) sample positions
9
+ y: (list of floats) y values
10
+ pmod: number of poles in model (ignored if 0)
11
+ """
12
+ model_angle = pos[-1] - pos[0]
13
+ ntiles = int(round(360/model_angle))
14
+
15
+ if pmod:
16
+ negative_periodic = pmod % 2
17
+ else:
18
+ negative_periodic = np.abs(y[0] - y[-1])/np.max(y) > 1
19
+
20
+ if negative_periodic:
21
+ yx = np.append(
22
+ np.concatenate(
23
+ [n*y[:-1]
24
+ for n in [m % 2 or -1
25
+ for m in range(1, ntiles+1)]]),
26
+ y[0])
27
+ else:
28
+ yx = np.append(
29
+ np.tile(y[:-1], ntiles),
30
+ y[0])
31
+
32
+ N = len(yx)
33
+ # compute DFT from induction
34
+ Y = np.fft.fft(yx)
35
+
36
+ # find the peak (amplitude of base harmonic)
37
+ i = np.argmax(np.abs(Y[:N//2]))
38
+ a = 2*np.abs(Y[i])/N
39
+ freq = np.fft.fftfreq(N, d=pos[1]-pos[0])
40
+ T0 = np.abs(1/freq[i])
41
+ npoles = 2*int(np.ceil(360/T0))
42
+
43
+ return {'a': a, 'freq': freq, 'T0': T0, 'alfa0': np.angle(Y[i]),
44
+ 'nue': (2*np.abs(Y[:9*npoles])/N).tolist(),
45
+ 'yi': yx.tolist()}
femagtools/windings.py CHANGED
@@ -583,5 +583,6 @@ if __name__ == "__main__":
583
583
  plt.show()
584
584
 
585
585
  svg = wdgs.diagram()
586
- ET.ElementTree(svg).write('wind.svg')
586
+ tree = ET.ElementTree(ET.fromstring(svg))
587
+ tree.write('wind.svg')
587
588
  print('SVG file "wind.svg" created')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: femagtools
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Summary: Python API for FEMAG
5
5
  Author-email: Ronald Tanner <tar@semafor.ch>, Dapu Zhang <d.zhan@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=akKAFnGKhR7lokOCuUfkqAy-m3Mxqj46W99VLS-8ZiU,1630
2
- femagtools/airgap.py,sha256=E3VywQpzJ5aaw7StGaf0xgbDqrWqO7vWhFXPh0I76bY,2250
1
+ femagtools/__init__.py,sha256=z_fNAxGXyLOmiYKuS-2RP37KC2IJUR3n6UnUcpMt3q4,1630
2
+ femagtools/airgap.py,sha256=ohp5GMuJGcrPhkpJHjlcsPZLlMJn2KDfk8gdNX7zyE8,1550
3
3
  femagtools/amazon.py,sha256=r9RRZVjKe6A7HUoRHmVpP-y1zfgJNvcPgW7mmeukvpk,12122
4
- femagtools/amela.py,sha256=3z5X0DIF560CjrKH9xUeejDzCVyBkbCUg6ZbK5uoU1Q,9741
4
+ femagtools/amela.py,sha256=jLGbTJU-ldK-dF9WbSDfuJYPtlmombqxZQ_K6t-IG28,14056
5
5
  femagtools/asm.py,sha256=5nSrgY3s9iWgnQYBjz6AVbk6IutLzBgcsuGZZo4KbkU,7706
6
- femagtools/bch.py,sha256=4JpLJ9Z23sfpML_cecPGaRe4tpySllQUwMyQT-d0XV4,68745
6
+ femagtools/bch.py,sha256=rxMi68HUa_D-s626FheXiXimzYthohPqQ7lPjnHPUuM,69488
7
7
  femagtools/bchxml.py,sha256=O6DlNS5xL8CPNLH9DV86bDAkl4pnvhpvbByUYMB6bhI,2923
8
8
  femagtools/condor.py,sha256=J8z9iBdvrGu3I1eFNoyKV8AXzRoTEPGLSak6cXUQxAM,10766
9
9
  femagtools/conductor.py,sha256=rXO7c7Qh_s7JpgILmLd4IbG64vP6Eh143YF9u25Mdwg,1076
@@ -13,23 +13,25 @@ femagtools/dakota.py,sha256=OBPxicuZiw1X-7WJ05MvEQXocH-GPgRiOoRjY_jOVW4,7017
13
13
  femagtools/dakota_femag.py,sha256=FGGXg1uYkTDNdElqsyMwtHJQKFzGV9f_3FaA55JEfuk,4064
14
14
  femagtools/dakotaout.py,sha256=6nn0PXsB40mPKiQLenqAtHy0KXCO7kvqqQ-aD2JhQvw,5573
15
15
  femagtools/docker.py,sha256=XDVmLBB0z4sZZpcrx7Wbm84xl4ksj7aqn5-ZOPxdxm4,7460
16
+ femagtools/ecloss.py,sha256=4tO-P6OwBbto2Xk0IJ0T5le7rT2BDWPQAAZwaKhNgcA,13239
16
17
  femagtools/erg.py,sha256=IXKq76P9qLt_ssNOP78v8Qizk3J2Zg80yaKDSjzwoJE,1224
17
- femagtools/femag.py,sha256=k0jeYFljxT0ahaCsT7mh_NYkaj7iSbu3vY6pB1KFkZs,41410
18
+ femagtools/femag.py,sha256=Vt3JANsphKTKJOBdacYVsMLr5IbabTr_Dxws7tHe0y4,42422
18
19
  femagtools/forcedens.py,sha256=nEM1MHxtpLee2sGFsehzrWEdsCRe_RSRqyNfj6u_l8g,7415
19
- femagtools/fsl.py,sha256=gCp9j3VVClgSGHGM8Erv_G_96xGrZIMO70B7UzBRjDQ,30964
20
+ femagtools/fsl.py,sha256=ZYT83mAZasoUZWSYGeWdDJz0zyIftenNclDNsY0tQ-c,30989
20
21
  femagtools/getset.py,sha256=yJ6Em35DeWK7WNZW0qjjS5s7LUkVh5mbgxF59HHm5FM,3017
21
22
  femagtools/gmsh.py,sha256=IKhNiviIBji4cMxAhxaYXNqBRMNAPSKsBGdnGyxkyQw,3903
22
23
  femagtools/google.py,sha256=rU2GxRxgwdrNkGmXY_E-IWOF69OSu3LmpKFnuegk_0Y,17166
23
24
  femagtools/grid.py,sha256=s7LfKKLm2H4-cza2kSEANq6vwxq10Su3TJl3kHShHRA,1561
24
- femagtools/isa7.py,sha256=zrn_g7_0SkGkz7r2STbDxUod1GklIF-Moy3xpgw1tk4,41556
25
+ femagtools/hxy.py,sha256=TU0GoHtStq3VBoc4nGLmtKquY8-tT0UWxLf5FzMBLjE,3738
26
+ femagtools/isa7.py,sha256=9uV20bmT4qZs4vZybzVfyJH-lN3wmN9KqogsE5juKms,42052
25
27
  femagtools/jcf2msh.py,sha256=pqVF3w_fr7WjqXldQrJTEDqdsQzO_m13XSC65JRulBw,2790
26
28
  femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
27
29
  femagtools/job.py,sha256=dOatzr10nIda76CjVRSS0SfEWC8_BAw0kowli523qbY,11320
28
30
  femagtools/losscoeffs.py,sha256=IKq_Lbeeh05sPYdTFZUEg5GhHTYhioqzLwxBYUcj78Q,2261
29
31
  femagtools/magnet.py,sha256=Nuk060bT4Wa3lX74HdefqTTtUxLaERDSBYTTpbi6KP4,1093
30
- femagtools/mcv.py,sha256=Kc_bvjc4xvbREkp3VOJRjX0frZkupQQ7uvU3GA667co,39691
32
+ femagtools/mcv.py,sha256=GcM7lf7dHvHsX9QMMMYCwkB5K5rThcLV73X-7fe-dr0,39696
31
33
  femagtools/me.py,sha256=XNK0l-aroNYfKyxV_uslE8q3vJb_KuntAYTWd-4FQaQ,1833
32
- femagtools/model.py,sha256=PymQug4__iOa6JmHtPR-lxM82bqarvOUC4cu43JFgaw,14068
34
+ femagtools/model.py,sha256=6AuHsaNLdsjBg_DC8HUigzyn4t36OU6EHC6GuEAxxQA,14696
33
35
  femagtools/moproblem.py,sha256=kOP8pRdD8YXz28_M2WKnFgl3eeJ7tqg49ohoazsmUOg,2825
34
36
  femagtools/multiproc.py,sha256=NmfUOcGrgAdHpHUanTakiYA48mPaV5oCbYgxvYj49LE,8506
35
37
  femagtools/mxw2msh.py,sha256=6FytyRtxMAO5vWRgZRWCQs04RFq7qiRy6hjOGb8NwpM,1841
@@ -37,52 +39,56 @@ femagtools/nc.py,sha256=o2-pjhl6EBh0ffriYkAVkvxQYwcmeEv_tlaeQ9ZD1X4,12781
37
39
  femagtools/netlist.py,sha256=CSCl8setLZ_L8DCnNWaNA3-wLe1yo-fmzARZoVvYfaA,2052
38
40
  femagtools/ntib.py,sha256=76g1ZO3Fq_kN-HTMBvaKvJmMMlJMyEPFeNAcJPq3w7Y,3099
39
41
  femagtools/opt.py,sha256=Oak-C1_5iFZonwokB3ezB52fcZi5yiUEffjG1Tmgag8,8685
40
- femagtools/parstudy.py,sha256=MB-U4rKD0_oftHCb22MCWrh-_Vn_VikFfRWeyFC4cVQ,18714
41
- femagtools/plot.py,sha256=dUsFb-Zq5NKyG-n-7DK9l0fCMWeNDNwiyORgsNKKJjU,58203
42
+ femagtools/parstudy.py,sha256=YbCpDL9m3MQtClOPzc0xDO8WWRWAd8jLnw4y5rHp3Gk,18717
43
+ femagtools/plot.py,sha256=9y19IJIz6U3LGcdnTwkIy_b5aWsZ1R-NaON_ublq_kk,62239
42
44
  femagtools/poc.py,sha256=MN5DRL4vHycNzXSTt9kjuZP1yZ2I02NmrKQFsmRcbF0,6536
43
45
  femagtools/tks.py,sha256=jgQ5dpKNPZg0ydwNGLBVjsL5WRsjfk9FtkZt3eoX79I,5791
44
46
  femagtools/ts.py,sha256=vm3GzLG6lzkg_Z84U-ZCgYHhev-PPtNuGs1q-CKJ4rA,47280
47
+ femagtools/utils.py,sha256=LDvKfyKY5UmBLqA8OxzZXJ8uzS7j6nx76FPtrP-ssEk,1265
45
48
  femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
46
49
  femagtools/vtu.py,sha256=DA0uRYW9121Ay9Je0xeJ1DXeCtE6fiCMEiuvkSSGg0U,8595
47
- femagtools/windings.py,sha256=vx2AFGSQpCBnVqrh7DIWonkuP9Gf79g7Bplzlw3tS4k,22279
50
+ femagtools/windings.py,sha256=1O9fLTEu8x_HeibVG0ia72ROLrcAVjNyJ24Y8TAfGWQ,22310
48
51
  femagtools/dxfsl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- femagtools/dxfsl/area.py,sha256=jmOJKIH0Xv16mbTdR_agYQ9dJMXG7D4lrm5GYKzO65I,52503
52
+ femagtools/dxfsl/area.py,sha256=TmTJy7T8pCpxdk_DM345mLwJez6nat5OIgVosXYsq6E,54793
50
53
  femagtools/dxfsl/conv.py,sha256=xOCj0vPlyRVP1FVNPLtKx_Fe88emjaht_DD4bfycD6A,8990
51
- femagtools/dxfsl/converter.py,sha256=w1mKu6sjhy_OmLEoLxhiDlqhRdTFfj8pLdWhGujAw_A,18787
54
+ femagtools/dxfsl/converter.py,sha256=kOFaY8XMt2KAvmKNoGtaAZAL246WtOJrM2AL4prbY_0,19237
52
55
  femagtools/dxfsl/corner.py,sha256=UI1MLlVmiTBURywsOnXnXV7eBABoENc6ortkW_3GYH8,1266
53
56
  femagtools/dxfsl/dumprenderer.py,sha256=n4AvInjvGIaC2iKZtQaYXXDyJVSQ3uEOFOLD4-xfKRY,1861
54
- femagtools/dxfsl/fslrenderer.py,sha256=5a0NGQs-nDPjplpozNDc3nEGXQGahuOZ0XnAsIse6Eo,23233
55
- femagtools/dxfsl/functions.py,sha256=5YB7BWd2JeyNUwmkLX8U6vn644nulbV4hPT1rVJf9hY,9835
56
- femagtools/dxfsl/geom.py,sha256=_VqqYv2tVqcxHzhNgk8_gWlLVaRPnhTGerkOI0OGB-E,132506
57
- femagtools/dxfsl/machine.py,sha256=nSWp0CaGrqBNSXEUDZ5qbuSVw5zUTsb7H1LfnNj0syY,27661
57
+ femagtools/dxfsl/fslrenderer.py,sha256=jrn5JGltco8cyk83IxxmG0M36Uco-_xaUqPUZMZBeZo,23372
58
+ femagtools/dxfsl/functions.py,sha256=CVEfdYgIlXFPoeRgljOGQt-FlPsk6ZzCn2G1D8wlGho,9835
59
+ femagtools/dxfsl/geom.py,sha256=c4ubHZdiZr2zjVEErpJRiZS4ExsL5p3keOnag6CGefg,146625
60
+ femagtools/dxfsl/machine.py,sha256=LC8D9FmZPcoMHzd-whswtCEapdAVkIgQyrL5ydjIol8,31058
58
61
  femagtools/dxfsl/plotrenderer.py,sha256=f7ZTnD0HCLBzurUsVAqqZskTzLeKfhqtfHL32mXZcA4,12311
59
- femagtools/dxfsl/shape.py,sha256=Y8P30bCHwUFsL4j-dy2hFiKi_1SPH9b6pNFI3vt9b0A,43088
60
- femagtools/machine/__init__.py,sha256=61E2CJB6WZlpGk6KjaweCW6-DM3OkrpIliHXM1se1bk,7392
61
- femagtools/machine/effloss.py,sha256=zUl3wmtXUAfP4YO9afE6PsY32H87tktyCBHEvwZj-_k,6387
62
- femagtools/machine/im.py,sha256=hZlt66sf8x9H2Z5jdSzYoLPVUE11i1G1frPpYYuDi64,34847
63
- femagtools/machine/pm.py,sha256=h8n0BgiRnZA02RMasqymL3u_3yDTiZ0fQBuBAtft5jQ,35696
62
+ femagtools/dxfsl/shape.py,sha256=G1Y6tEc_gj3BcGVx2BVOkGI9_Jhd824cUvo2CtigWAM,44863
63
+ femagtools/machine/__init__.py,sha256=AYFgOw8Apy_BAYFNYXfX_AzrP5C3LrmWL5j3qgainng,7413
64
+ femagtools/machine/effloss.py,sha256=vN7VEvhelXaq0BXoxj_K69ZY_OCYWpRiXI_TSV1XJU8,11467
65
+ femagtools/machine/im.py,sha256=enHiNrOUJhhjt8InmRt3m6txlQvLMhGR-wSLNRZ6pp4,38093
66
+ femagtools/machine/pm.py,sha256=WJxUwnJ547gsx4TH4HgWbvUwCJspIz55tw7qaQZy0fg,51280
64
67
  femagtools/machine/sizing.py,sha256=4y4nShJYHBJTepl70tGUNqKhR2rd1bY5jZ0wektiDng,21743
65
- femagtools/machine/sm.py,sha256=ejI0C5CN7THHKNZhfThVq69dJNnxmBZbvyTKPDO7bPA,26608
66
- femagtools/machine/utils.py,sha256=0AF-26LwiOx9_p56VyGXH0NMdTKdhlAJDxI-RMfs6O0,16617
68
+ femagtools/machine/sm.py,sha256=6KoXHsN7OFeUjTq7W6UqRaGHtXIKlngu8OFjh3Xz8Mw,32810
69
+ femagtools/machine/utils.py,sha256=HNWv3jm1ISCehK8Re_peqPIcU35lLE3p5Ba03HpfrKo,16747
67
70
  femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
68
71
  femagtools/moo/algorithm.py,sha256=scHmwwa1LyJKod_hZ_Mm5ZKz86ptF_psAFWI2JyqqH8,5493
69
72
  femagtools/moo/population.py,sha256=gi8PSVUXkYY5vzgAwWvxfMbH_z51fN58O4-NKoarwzI,10100
70
73
  femagtools/moo/problem.py,sha256=McIGKAXK97Jygumns0qmFeYxTG6KDRSQj2aENeC9F9A,2391
71
74
  femagtools/templates/FE-losses.mako,sha256=Rql5_8Q6_uthpr-uFXMUo7tdHehfZYND-7M-ohJXVU8,874
72
- femagtools/templates/airgapinduc.mako,sha256=qxf6aCPh_5Rq7Gj_qgySBI78I_kGDaT8nEm7cCO62wg,242
75
+ femagtools/templates/afm_rotor.mako,sha256=cVdfuHMfOwsBkU3TdBodBhBLzCQ4PFDU7OyPDAj4uSw,3062
76
+ femagtools/templates/afm_stator.mako,sha256=WcoC3FF0jXDYi03kDBDXhQGZeM6e1qye54jIsOpP83g,4618
77
+ femagtools/templates/airgapinduc.mako,sha256=aCMLZ7P4vjeSGikIetkwymgDjESdftPN_aYx2LfjfsY,246
73
78
  femagtools/templates/asyn_motor.mako,sha256=vvZ0SIJj4ORaCbE1Hl5NeCU_j2CWdOltVpSKP7ESJTQ,2879
74
- femagtools/templates/basic_modpar.mako,sha256=a4j-g3EtvlLIc_nvB3ae_guETdieT1VjFtIzP1WuytE,2483
79
+ femagtools/templates/basic_modpar.mako,sha256=7qXIYrqJqI3xRnxXKG5zSwBNsiQotc94Q37X4sbAXxQ,3036
75
80
  femagtools/templates/calc_field_ts.mako,sha256=hNs7INzk92U8LljQvQHnKf20fD2HU6igtx1rhsOvPkc,1911
76
81
  femagtools/templates/calc_therm_field.mako,sha256=Q1aAulucLjrtNiCnFGin3ObK13R1KG6dWjJTWwdfxds,1600
77
- femagtools/templates/cogg_calc.mako,sha256=2RlObGCf-23SvUYfaY4ZjtToPq4tzAiYI78qXJPlqTU,997
82
+ femagtools/templates/cogg_calc.mako,sha256=aKGbAVP4ZkhAjZmtDIx2sBIhbTNOUPDV1Rx1J4Um_zc,1746
78
83
  femagtools/templates/colorgrad.mako,sha256=H1wbqukj3SspVBtbMKPjiuaUyDa6uIUJDgfWXwBi5eE,400
79
84
  femagtools/templates/com_motor_sim.mako,sha256=XvLTOCGX8VXzrMS7NJAo1rPc7BnnYV8oVqYcg0ko154,1264
80
85
  femagtools/templates/conduct-data.mako,sha256=quT9S1cq2C2GyeoUe-erxV6w20KvRPuJVJQQw33L9kk,472
81
86
  femagtools/templates/connect_models.mako,sha256=8j1hzBMeoDJ7-GL5BH-S5p53Bu5jtqqsC2_w6MSwWnI,663
82
- femagtools/templates/cu_losses.mako,sha256=i3b5-TvB47-eimY-iNCALctxkc54MXiDXJTAIKX2Pcc,1350
87
+ femagtools/templates/cu_losses.mako,sha256=EeNwINYuwBuhbo9LH3STdQOTxOyyWw_BANgh_BSV9TE,1339
83
88
  femagtools/templates/ec-rotorbar.mako,sha256=RbA1TVNczEEddTNjvGLPxILExxp4rIgoxXe1YT6a4Is,1672
84
89
  femagtools/templates/fe-contr.mako,sha256=NoP7FQ62ITxgNmwP6GmkCnGhjEn5gPLUFgdLdhkKylY,1983
85
- femagtools/templates/gen_winding.mako,sha256=yHXt4OluYjjON6Jv6btXNocjXyDi0beGQ81ZpVJ0BVU,4820
90
+ femagtools/templates/fieldcalc.mako,sha256=-KgomjTDoWIJH-9nMyfkIWvfSjHnYYeuL8eIGyvZnCs,905
91
+ femagtools/templates/gen_winding.mako,sha256=O4e2yTgFb4GfOBsMvxUwqF6rUSOpek4AU4wRvQ7DVDg,4983
86
92
  femagtools/templates/inductances.mako,sha256=OpcW3E7LW09J8eoXylzfq2R16LKKxzJDr0PGCdHzixM,560
87
93
  femagtools/templates/ld_lq_fast.mako,sha256=bS6YmQ8jR2xFqKEyKiyBxR27SIoqiByigY3YrnmtMqQ,1270
88
94
  femagtools/templates/leak_dist_wind.mako,sha256=vs8fpxcM203kL8BVNuR8BKSmMsQM6U1_vTtYXZIfdSc,600
@@ -100,7 +106,7 @@ femagtools/templates/magnetSector.mako,sha256=HYguaQX_DUvplLKhwa_4IR5aBlwRP34vL8
100
106
  femagtools/templates/magnetSectorLinear.mako,sha256=ez2rkZslw66Zy4DCDiLjI2K45nEjGgunl0jsXseO_Zs,727
101
107
  femagtools/templates/magnetShell.mako,sha256=vpyZIZ5tOsrmUVM00Kime7zyu1lK9P61xq78jB8BLdo,1295
102
108
  femagtools/templates/magnetShell2.mako,sha256=4IJBfBTPxuYHr1SAcVvNdQoGd8emwsx8vMKQPI9pRlc,4080
103
- femagtools/templates/mesh-airgap.mako,sha256=H02W4d6DXN9VaYLSF2mc-G-OhEJvIMkucBi4HdLNkuk,1094
109
+ femagtools/templates/mesh-airgap.mako,sha256=rqOsQ6IQXwR8VFo-FUyMDreK4-OlFcl0_NzOTm_WHuU,2250
104
110
  femagtools/templates/modal_analysis.mako,sha256=Thf62FBqL738qnp1ongPr196GJY27vwElKqPfMWF45s,2298
105
111
  femagtools/templates/mult_cal_fast.mako,sha256=Kuy3ngSJRFBkeKPC_wX_2dCdxqrV3jF5UALnICMpRl8,1202
106
112
  femagtools/templates/new_model.mako,sha256=P7658h99bKrA6YbP1D365ImIZPGEAZoBeYCdq0DT0AA,345
@@ -123,18 +129,18 @@ femagtools/templates/shortcircuit.mako,sha256=Mr1zRtF_Y2QZ1qpTn8_-PASYrTFRYWpByh
123
129
  femagtools/templates/srm.mako,sha256=NneriEFv1wurQCGBI2xozzF2pTzlzS8pEPqtKm0SASQ,2077
124
130
  femagtools/templates/stator1.mako,sha256=1sf0lzLXsjwiBNk3OGLwlio3GUVFogfxqEwaySVO6cs,761
125
131
  femagtools/templates/stator2.mako,sha256=7Ae9sfaX7H4ummL6-g8iG42ArUvl6J809TW2tOdPpYE,599
126
- femagtools/templates/stator3Linear.mako,sha256=CNIM3UMfZbswfHunh9egka5JE3pmhKl8zwV2Gwpu-jY,724
132
+ femagtools/templates/stator3Linear.mako,sha256=pNe3C1wT0W2C0qePo3sEyebW1z_dpTuJzg0r5kf3JQY,760
127
133
  femagtools/templates/stator4.mako,sha256=Jq8pfIuOmmpyGOL1z2aQZfbwMS5-Zyn6OGJ51LCBVKs,1179
128
134
  femagtools/templates/statorBG.mako,sha256=fh0cVOZVWyLojlGxWJoFz2pvdL6Yxy4xzhY-Joc2xeg,893
129
135
  femagtools/templates/statorRing.mako,sha256=sDgDmk71EoE8d4e9cmyqKqRldfC8uKMmpHEjXJGIt_k,2071
130
136
  femagtools/templates/statorRotor3.mako,sha256=MrU_JCSH8tJEUH09fftJJslkbEeIwOB1WGBSxXqUqeI,4942
131
137
  femagtools/templates/stator_msh.mako,sha256=Neze1ielMCk7TrARyhOra91fFQVT8Phsgk2Omt_aMG8,1799
132
- femagtools/templates/therm-dynamic.mako,sha256=cCT3DtZ-DV83jh3M0kkNGSdwAKodEKmdnlwF8v5r4p0,2906
133
- femagtools/templates/therm-static.mako,sha256=hJ6sUuZ9MaQTwzqYzp3Jt-6BJQ52Nktz5ZxpN5lKbn0,1002
134
- femagtools/templates/torq_calc.mako,sha256=EYk-tn0RUJQqh1xBgnTROvgY5I3J9SmcnhEOUa9-aGM,1782
135
- femagtools-1.3.0.dist-info/LICENSE,sha256=V5OED7AzEaOtvbfgNheKOSUeNtijvKQuo84FtSJNkJU,1316
136
- femagtools-1.3.0.dist-info/METADATA,sha256=nxsm0606uivJGauqFMW_ekxMPHpD4hAuidb1lj3S01s,5714
137
- femagtools-1.3.0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
138
- femagtools-1.3.0.dist-info/entry_points.txt,sha256=FZpd7JumQdJo-AZUyRA8-aJthK85jg37_qjRoDTY-Mo,191
139
- femagtools-1.3.0.dist-info/top_level.txt,sha256=DScrn5RiUYKtaEVgcG3AMSWDUd2N8uqxk-gZY-2CaYk,11
140
- femagtools-1.3.0.dist-info/RECORD,,
138
+ femagtools/templates/therm-dynamic.mako,sha256=pEz7jrUpopK1-RqgulNnrkSaCZDjfLelsVo6cBqmpac,3142
139
+ femagtools/templates/therm-static.mako,sha256=koAz72K64fP1SlzCaj_fcJv7mYW0IBtkKTCGVusiux0,1348
140
+ femagtools/templates/torq_calc.mako,sha256=R4HdtiPwcOcudzW7Pd2GhPqjfQnCfYj2ZIxfz6bsEx0,1729
141
+ femagtools-1.3.2.dist-info/LICENSE,sha256=V5OED7AzEaOtvbfgNheKOSUeNtijvKQuo84FtSJNkJU,1316
142
+ femagtools-1.3.2.dist-info/METADATA,sha256=FF6YUcPElZE8KS7ReASBs0q6NB4k8qH_rfd1VKEXb8I,5714
143
+ femagtools-1.3.2.dist-info/WHEEL,sha256=AtBG6SXL3KF_v0NxLf0ehyVOh0cold-JbJYXNGorC6Q,92
144
+ femagtools-1.3.2.dist-info/entry_points.txt,sha256=FZpd7JumQdJo-AZUyRA8-aJthK85jg37_qjRoDTY-Mo,191
145
+ femagtools-1.3.2.dist-info/top_level.txt,sha256=DScrn5RiUYKtaEVgcG3AMSWDUd2N8uqxk-gZY-2CaYk,11
146
+ femagtools-1.3.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: bdist_wheel (0.41.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5