femagtools 1.3.1__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.
@@ -14,6 +14,7 @@ ag = 0
14
14
  % if model.move_action == 0:
15
15
  % if model.external_rotor:
16
16
  dy2 = ${model.get(['outer_diam'])*1e3}
17
+ % if hasattr(model, 'bore_diam'):
17
18
  % if isinstance(model.get(['bore_diam']), list):
18
19
  <%
19
20
  da2 = '{' + ','.join([str(x*1e3) for x in model.get(['bore_diam'])]) +'}'
@@ -27,9 +28,11 @@ end
27
28
  da2 = ${model.get(['bore_diam'])*1e3}
28
29
  da1 = da2 - 2*ag
29
30
  % endif
31
+ % endif # bore_diam dos not exist
30
32
  dy1 = ${model.get(['inner_diam'])*1e3}
31
33
  % else: # internal rotor
32
34
  dy1 = ${model.get(['outer_diam'])*1e3}
35
+ % if hasattr(model, 'bore_diam'):
33
36
  % if isinstance(model.get(['bore_diam']), list):
34
37
  <%
35
38
  da1 = '{' + ','.join([str(x*1e3) for x in model.get(['bore_diam'])]) +'}'
@@ -43,6 +46,7 @@ end
43
46
  da1 = ${model.get(['bore_diam'])*1e3}
44
47
  da2 = da1 - 2*ag
45
48
  % endif
49
+ % endif
46
50
  % if hasattr(model, 'shaft_diam'):
47
51
  dy2 = ${model.get(['shaft_diam'])*1e3}
48
52
  dsh = ${model.get(['inner_diam'])*1e3}
@@ -66,7 +70,8 @@ m.num_pol_pair = m.num_poles/2
66
70
  m.num_slots = m.num_sl_gen
67
71
  m.npols_gen = m.num_poles * m.num_sl_gen / m.tot_num_slot
68
72
  m.tot_num_sl = m.tot_num_slot
69
- % if model.move_action == 0:
73
+ % if model.move_action == 0: # rotating
74
+ % if hasattr(model, 'bore_diam'):
70
75
  % if isinstance(model.get(['bore_diam']), list):
71
76
  m.fc_radius = (da1[2]/2-ag[2]/2) -- Radius airgap (extern)
72
77
  m.fc_radius1 = (da1[1]/2-ag[1]/2) -- Radius airgap (intern?)
@@ -77,10 +82,26 @@ m.fc_radius1 = m.fc_radius
77
82
  m.sl_radius = m.fc_radius -- radius of sliding area
78
83
  % endif
79
84
  % endif
85
+ % elif hasattr(model, 'pole_width'): # move action linear
86
+ m.pole_width = ${model['pole_width']*1e3}
87
+ % endif
88
+ % if hasattr(model, 'lfe'):
80
89
  m.arm_length = ${model.get(['lfe'])*1e3}
90
+ % endif
81
91
  pre_models("basic_modpar")
82
92
  % endif
83
93
  % if hasattr(model, 'num_agnodes'):
84
- num_agnodes = ${model.num_agnodes}
94
+ num_agnodes = m.npols_gen*${model.num_agnodes}
95
+ % if hasattr(model, 'bore_diam'):
85
96
  agndst = 2*math.pi*m.fc_radius/num_agnodes
97
+ % else:
98
+ if m.pole_width ~= nil then
99
+ agndst = 2*m.pole_width/num_agnodes
100
+ else
101
+ agndst = 1 -- last resort
102
+ end
103
+ % endif
86
104
  % endif
105
+ % if hasattr(model, 'afmtype'):
106
+ m.model_type = "${model['afmtype']}"
107
+ % endif
@@ -1,19 +1,42 @@
1
1
  --
2
2
  -- Cogging
3
3
  --
4
- m.move_action = 0.0 -- rotate
5
4
  % if model.get('lfe', 0):
6
5
  m.arm_length = ${model.get('lfe')*1e3}
7
6
  % endif
8
-
7
+ m.move_action = ${model.get('move_action', 0)}
8
+ % if model.get('move_action', 0) == 0:
9
9
  m.speed = ${model.get('speed')*60}
10
10
  m.skew_angle = ${model.get('skew_angle', 0)}
11
+ m.fc_force_points = 0.0 -- number move points in air gap
12
+ m.phi_start = ${model.get('phi_start', 0)}
13
+ m.range_phi = ${model.get('range_phi', 0)}
14
+ % else:
15
+ m.speed_linear = ${model.get('speed')}
16
+ m.skew_linear = ${model.get('skew_displ',0)}
17
+ m.line = 0
18
+ m.two_pole_wi = 2*m.pole_width
19
+ m.range_x = m.two_pole_wi
20
+ m.range_y = 0.0
21
+
22
+ m.fc_force_points = 5
23
+ m.fcpx_mm1 = m.npols_gen*m.pole_width +1.0
24
+ m.fcpy_mm1 = -ag/2
25
+ m.fcpx_mm2 = -1.0
26
+ m.fcpy_mm2 = m.fcpy_mm1
27
+ m.fcpx_mm3 = m.fcpx_mm2
28
+ m.fcpy_mm3 = -m.magn_height -m.yoke_height -m.gap_ma_yoke -1 -ag
29
+ m.fcpx_mm4 = m.fcpx_mm1
30
+ m.fcpy_mm4 = m.fcpy_mm3
31
+ m.fcpx_mm5 = m.fcpx_mm1
32
+ m.fcpy_mm5 = m.fcpy_mm1
33
+
34
+ --m.npols_gen = 1 -- number of sectors simulated
35
+ % endif
36
+
11
37
  m.nu_skew_steps = ${model.get('num_skew_steps', 0)}
12
38
  m.magn_temp = ${model.get('magn_temp')}
13
39
  m.fc_mult_move_type = 1.0 -- Type of move path in air gap
14
- m.fc_force_points = 0.0 -- number move points in air gap
15
- m.phi_start = ${model.get('phi_start', 0)}
16
- m.range_phi = ${model.get('range_phi', 0)}
17
40
  m.nu_move_steps = ${model.get('num_move_steps', 49)}
18
41
 
19
42
  m.num_par_wdgs = ${model.get('num_par_wdgs',1)}
@@ -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");
@@ -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.1
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=mHJqGCRBRROSJJf-EZPSF5Yft9U8Fq9nbAqJ1a5ZWQ8,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=vakaSPaJLeq9fG_Fvqf1FUt2fF6ubXYl9ntkef_q_YY,14001
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,9 +13,9 @@ 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=qlCwGs6JpuDUt0F3l7SXmdGdeGEOCq3SPEYeSWYkPnU,13156
16
+ femagtools/ecloss.py,sha256=4tO-P6OwBbto2Xk0IJ0T5le7rT2BDWPQAAZwaKhNgcA,13239
17
17
  femagtools/erg.py,sha256=IXKq76P9qLt_ssNOP78v8Qizk3J2Zg80yaKDSjzwoJE,1224
18
- femagtools/femag.py,sha256=nQ6_OCIU1RMmJatZipakY0GMcBnLrMseqtFhEgSXbt0,42176
18
+ femagtools/femag.py,sha256=Vt3JANsphKTKJOBdacYVsMLr5IbabTr_Dxws7tHe0y4,42422
19
19
  femagtools/forcedens.py,sha256=nEM1MHxtpLee2sGFsehzrWEdsCRe_RSRqyNfj6u_l8g,7415
20
20
  femagtools/fsl.py,sha256=ZYT83mAZasoUZWSYGeWdDJz0zyIftenNclDNsY0tQ-c,30989
21
21
  femagtools/getset.py,sha256=yJ6Em35DeWK7WNZW0qjjS5s7LUkVh5mbgxF59HHm5FM,3017
@@ -23,7 +23,7 @@ femagtools/gmsh.py,sha256=IKhNiviIBji4cMxAhxaYXNqBRMNAPSKsBGdnGyxkyQw,3903
23
23
  femagtools/google.py,sha256=rU2GxRxgwdrNkGmXY_E-IWOF69OSu3LmpKFnuegk_0Y,17166
24
24
  femagtools/grid.py,sha256=s7LfKKLm2H4-cza2kSEANq6vwxq10Su3TJl3kHShHRA,1561
25
25
  femagtools/hxy.py,sha256=TU0GoHtStq3VBoc4nGLmtKquY8-tT0UWxLf5FzMBLjE,3738
26
- femagtools/isa7.py,sha256=UpgFVJxhO4MB66x4eBhDKNs3Hz6fdFp1JUmUnmHDnLw,41578
26
+ femagtools/isa7.py,sha256=9uV20bmT4qZs4vZybzVfyJH-lN3wmN9KqogsE5juKms,42052
27
27
  femagtools/jcf2msh.py,sha256=pqVF3w_fr7WjqXldQrJTEDqdsQzO_m13XSC65JRulBw,2790
28
28
  femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
29
29
  femagtools/job.py,sha256=dOatzr10nIda76CjVRSS0SfEWC8_BAw0kowli523qbY,11320
@@ -31,7 +31,7 @@ femagtools/losscoeffs.py,sha256=IKq_Lbeeh05sPYdTFZUEg5GhHTYhioqzLwxBYUcj78Q,2261
31
31
  femagtools/magnet.py,sha256=Nuk060bT4Wa3lX74HdefqTTtUxLaERDSBYTTpbi6KP4,1093
32
32
  femagtools/mcv.py,sha256=GcM7lf7dHvHsX9QMMMYCwkB5K5rThcLV73X-7fe-dr0,39696
33
33
  femagtools/me.py,sha256=XNK0l-aroNYfKyxV_uslE8q3vJb_KuntAYTWd-4FQaQ,1833
34
- femagtools/model.py,sha256=PymQug4__iOa6JmHtPR-lxM82bqarvOUC4cu43JFgaw,14068
34
+ femagtools/model.py,sha256=6AuHsaNLdsjBg_DC8HUigzyn4t36OU6EHC6GuEAxxQA,14696
35
35
  femagtools/moproblem.py,sha256=kOP8pRdD8YXz28_M2WKnFgl3eeJ7tqg49ohoazsmUOg,2825
36
36
  femagtools/multiproc.py,sha256=NmfUOcGrgAdHpHUanTakiYA48mPaV5oCbYgxvYj49LE,8506
37
37
  femagtools/mxw2msh.py,sha256=6FytyRtxMAO5vWRgZRWCQs04RFq7qiRy6hjOGb8NwpM,1841
@@ -40,51 +40,55 @@ 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=Oak-C1_5iFZonwokB3ezB52fcZi5yiUEffjG1Tmgag8,8685
42
42
  femagtools/parstudy.py,sha256=YbCpDL9m3MQtClOPzc0xDO8WWRWAd8jLnw4y5rHp3Gk,18717
43
- femagtools/plot.py,sha256=3JpKnAnRV-FD26A55yycvqLrN9lK0apfZ4IaCnY3rIM,61312
43
+ femagtools/plot.py,sha256=9y19IJIz6U3LGcdnTwkIy_b5aWsZ1R-NaON_ublq_kk,62239
44
44
  femagtools/poc.py,sha256=MN5DRL4vHycNzXSTt9kjuZP1yZ2I02NmrKQFsmRcbF0,6536
45
45
  femagtools/tks.py,sha256=jgQ5dpKNPZg0ydwNGLBVjsL5WRsjfk9FtkZt3eoX79I,5791
46
46
  femagtools/ts.py,sha256=vm3GzLG6lzkg_Z84U-ZCgYHhev-PPtNuGs1q-CKJ4rA,47280
47
+ femagtools/utils.py,sha256=LDvKfyKY5UmBLqA8OxzZXJ8uzS7j6nx76FPtrP-ssEk,1265
47
48
  femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
48
49
  femagtools/vtu.py,sha256=DA0uRYW9121Ay9Je0xeJ1DXeCtE6fiCMEiuvkSSGg0U,8595
49
- femagtools/windings.py,sha256=vx2AFGSQpCBnVqrh7DIWonkuP9Gf79g7Bplzlw3tS4k,22279
50
+ femagtools/windings.py,sha256=1O9fLTEu8x_HeibVG0ia72ROLrcAVjNyJ24Y8TAfGWQ,22310
50
51
  femagtools/dxfsl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- femagtools/dxfsl/area.py,sha256=Bqza-uDrulHJyEulONJT3_GbXicvj-sAWKYHwat32BY,52804
52
+ femagtools/dxfsl/area.py,sha256=TmTJy7T8pCpxdk_DM345mLwJez6nat5OIgVosXYsq6E,54793
52
53
  femagtools/dxfsl/conv.py,sha256=xOCj0vPlyRVP1FVNPLtKx_Fe88emjaht_DD4bfycD6A,8990
53
- femagtools/dxfsl/converter.py,sha256=d2n486pqbriBujrESi078shyDnsZ6mHB_WKXMJ1VciU,19131
54
+ femagtools/dxfsl/converter.py,sha256=kOFaY8XMt2KAvmKNoGtaAZAL246WtOJrM2AL4prbY_0,19237
54
55
  femagtools/dxfsl/corner.py,sha256=UI1MLlVmiTBURywsOnXnXV7eBABoENc6ortkW_3GYH8,1266
55
56
  femagtools/dxfsl/dumprenderer.py,sha256=n4AvInjvGIaC2iKZtQaYXXDyJVSQ3uEOFOLD4-xfKRY,1861
56
57
  femagtools/dxfsl/fslrenderer.py,sha256=jrn5JGltco8cyk83IxxmG0M36Uco-_xaUqPUZMZBeZo,23372
57
58
  femagtools/dxfsl/functions.py,sha256=CVEfdYgIlXFPoeRgljOGQt-FlPsk6ZzCn2G1D8wlGho,9835
58
- femagtools/dxfsl/geom.py,sha256=W5Sr-4Bf7h0cVzF_nUnmbzsc7R6S2oW9TiE_KX7lIq8,141862
59
- femagtools/dxfsl/machine.py,sha256=0r5fakeiS8kMC-tKMKzG9bhRJcejO8HJ5toIw_smYJk,28135
59
+ femagtools/dxfsl/geom.py,sha256=c4ubHZdiZr2zjVEErpJRiZS4ExsL5p3keOnag6CGefg,146625
60
+ femagtools/dxfsl/machine.py,sha256=LC8D9FmZPcoMHzd-whswtCEapdAVkIgQyrL5ydjIol8,31058
60
61
  femagtools/dxfsl/plotrenderer.py,sha256=f7ZTnD0HCLBzurUsVAqqZskTzLeKfhqtfHL32mXZcA4,12311
61
62
  femagtools/dxfsl/shape.py,sha256=G1Y6tEc_gj3BcGVx2BVOkGI9_Jhd824cUvo2CtigWAM,44863
62
63
  femagtools/machine/__init__.py,sha256=AYFgOw8Apy_BAYFNYXfX_AzrP5C3LrmWL5j3qgainng,7413
63
- femagtools/machine/effloss.py,sha256=b89omyfla-EdCORPuVGh-Pv4KyTCBNypLOcSxa_pycE,11371
64
+ femagtools/machine/effloss.py,sha256=vN7VEvhelXaq0BXoxj_K69ZY_OCYWpRiXI_TSV1XJU8,11467
64
65
  femagtools/machine/im.py,sha256=enHiNrOUJhhjt8InmRt3m6txlQvLMhGR-wSLNRZ6pp4,38093
65
66
  femagtools/machine/pm.py,sha256=WJxUwnJ547gsx4TH4HgWbvUwCJspIz55tw7qaQZy0fg,51280
66
67
  femagtools/machine/sizing.py,sha256=4y4nShJYHBJTepl70tGUNqKhR2rd1bY5jZ0wektiDng,21743
67
68
  femagtools/machine/sm.py,sha256=6KoXHsN7OFeUjTq7W6UqRaGHtXIKlngu8OFjh3Xz8Mw,32810
68
- femagtools/machine/utils.py,sha256=0AF-26LwiOx9_p56VyGXH0NMdTKdhlAJDxI-RMfs6O0,16617
69
+ femagtools/machine/utils.py,sha256=HNWv3jm1ISCehK8Re_peqPIcU35lLE3p5Ba03HpfrKo,16747
69
70
  femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
70
71
  femagtools/moo/algorithm.py,sha256=scHmwwa1LyJKod_hZ_Mm5ZKz86ptF_psAFWI2JyqqH8,5493
71
72
  femagtools/moo/population.py,sha256=gi8PSVUXkYY5vzgAwWvxfMbH_z51fN58O4-NKoarwzI,10100
72
73
  femagtools/moo/problem.py,sha256=McIGKAXK97Jygumns0qmFeYxTG6KDRSQj2aENeC9F9A,2391
73
74
  femagtools/templates/FE-losses.mako,sha256=Rql5_8Q6_uthpr-uFXMUo7tdHehfZYND-7M-ohJXVU8,874
75
+ femagtools/templates/afm_rotor.mako,sha256=cVdfuHMfOwsBkU3TdBodBhBLzCQ4PFDU7OyPDAj4uSw,3062
76
+ femagtools/templates/afm_stator.mako,sha256=WcoC3FF0jXDYi03kDBDXhQGZeM6e1qye54jIsOpP83g,4618
74
77
  femagtools/templates/airgapinduc.mako,sha256=aCMLZ7P4vjeSGikIetkwymgDjESdftPN_aYx2LfjfsY,246
75
78
  femagtools/templates/asyn_motor.mako,sha256=vvZ0SIJj4ORaCbE1Hl5NeCU_j2CWdOltVpSKP7ESJTQ,2879
76
- femagtools/templates/basic_modpar.mako,sha256=a4j-g3EtvlLIc_nvB3ae_guETdieT1VjFtIzP1WuytE,2483
79
+ femagtools/templates/basic_modpar.mako,sha256=7qXIYrqJqI3xRnxXKG5zSwBNsiQotc94Q37X4sbAXxQ,3036
77
80
  femagtools/templates/calc_field_ts.mako,sha256=hNs7INzk92U8LljQvQHnKf20fD2HU6igtx1rhsOvPkc,1911
78
81
  femagtools/templates/calc_therm_field.mako,sha256=Q1aAulucLjrtNiCnFGin3ObK13R1KG6dWjJTWwdfxds,1600
79
- femagtools/templates/cogg_calc.mako,sha256=2RlObGCf-23SvUYfaY4ZjtToPq4tzAiYI78qXJPlqTU,997
82
+ femagtools/templates/cogg_calc.mako,sha256=aKGbAVP4ZkhAjZmtDIx2sBIhbTNOUPDV1Rx1J4Um_zc,1746
80
83
  femagtools/templates/colorgrad.mako,sha256=H1wbqukj3SspVBtbMKPjiuaUyDa6uIUJDgfWXwBi5eE,400
81
84
  femagtools/templates/com_motor_sim.mako,sha256=XvLTOCGX8VXzrMS7NJAo1rPc7BnnYV8oVqYcg0ko154,1264
82
85
  femagtools/templates/conduct-data.mako,sha256=quT9S1cq2C2GyeoUe-erxV6w20KvRPuJVJQQw33L9kk,472
83
86
  femagtools/templates/connect_models.mako,sha256=8j1hzBMeoDJ7-GL5BH-S5p53Bu5jtqqsC2_w6MSwWnI,663
84
- femagtools/templates/cu_losses.mako,sha256=i3b5-TvB47-eimY-iNCALctxkc54MXiDXJTAIKX2Pcc,1350
87
+ femagtools/templates/cu_losses.mako,sha256=EeNwINYuwBuhbo9LH3STdQOTxOyyWw_BANgh_BSV9TE,1339
85
88
  femagtools/templates/ec-rotorbar.mako,sha256=RbA1TVNczEEddTNjvGLPxILExxp4rIgoxXe1YT6a4Is,1672
86
89
  femagtools/templates/fe-contr.mako,sha256=NoP7FQ62ITxgNmwP6GmkCnGhjEn5gPLUFgdLdhkKylY,1983
87
- 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
88
92
  femagtools/templates/inductances.mako,sha256=OpcW3E7LW09J8eoXylzfq2R16LKKxzJDr0PGCdHzixM,560
89
93
  femagtools/templates/ld_lq_fast.mako,sha256=bS6YmQ8jR2xFqKEyKiyBxR27SIoqiByigY3YrnmtMqQ,1270
90
94
  femagtools/templates/leak_dist_wind.mako,sha256=vs8fpxcM203kL8BVNuR8BKSmMsQM6U1_vTtYXZIfdSc,600
@@ -102,7 +106,7 @@ femagtools/templates/magnetSector.mako,sha256=HYguaQX_DUvplLKhwa_4IR5aBlwRP34vL8
102
106
  femagtools/templates/magnetSectorLinear.mako,sha256=ez2rkZslw66Zy4DCDiLjI2K45nEjGgunl0jsXseO_Zs,727
103
107
  femagtools/templates/magnetShell.mako,sha256=vpyZIZ5tOsrmUVM00Kime7zyu1lK9P61xq78jB8BLdo,1295
104
108
  femagtools/templates/magnetShell2.mako,sha256=4IJBfBTPxuYHr1SAcVvNdQoGd8emwsx8vMKQPI9pRlc,4080
105
- femagtools/templates/mesh-airgap.mako,sha256=H02W4d6DXN9VaYLSF2mc-G-OhEJvIMkucBi4HdLNkuk,1094
109
+ femagtools/templates/mesh-airgap.mako,sha256=rqOsQ6IQXwR8VFo-FUyMDreK4-OlFcl0_NzOTm_WHuU,2250
106
110
  femagtools/templates/modal_analysis.mako,sha256=Thf62FBqL738qnp1ongPr196GJY27vwElKqPfMWF45s,2298
107
111
  femagtools/templates/mult_cal_fast.mako,sha256=Kuy3ngSJRFBkeKPC_wX_2dCdxqrV3jF5UALnICMpRl8,1202
108
112
  femagtools/templates/new_model.mako,sha256=P7658h99bKrA6YbP1D365ImIZPGEAZoBeYCdq0DT0AA,345
@@ -125,18 +129,18 @@ femagtools/templates/shortcircuit.mako,sha256=Mr1zRtF_Y2QZ1qpTn8_-PASYrTFRYWpByh
125
129
  femagtools/templates/srm.mako,sha256=NneriEFv1wurQCGBI2xozzF2pTzlzS8pEPqtKm0SASQ,2077
126
130
  femagtools/templates/stator1.mako,sha256=1sf0lzLXsjwiBNk3OGLwlio3GUVFogfxqEwaySVO6cs,761
127
131
  femagtools/templates/stator2.mako,sha256=7Ae9sfaX7H4ummL6-g8iG42ArUvl6J809TW2tOdPpYE,599
128
- femagtools/templates/stator3Linear.mako,sha256=CNIM3UMfZbswfHunh9egka5JE3pmhKl8zwV2Gwpu-jY,724
132
+ femagtools/templates/stator3Linear.mako,sha256=pNe3C1wT0W2C0qePo3sEyebW1z_dpTuJzg0r5kf3JQY,760
129
133
  femagtools/templates/stator4.mako,sha256=Jq8pfIuOmmpyGOL1z2aQZfbwMS5-Zyn6OGJ51LCBVKs,1179
130
134
  femagtools/templates/statorBG.mako,sha256=fh0cVOZVWyLojlGxWJoFz2pvdL6Yxy4xzhY-Joc2xeg,893
131
135
  femagtools/templates/statorRing.mako,sha256=sDgDmk71EoE8d4e9cmyqKqRldfC8uKMmpHEjXJGIt_k,2071
132
136
  femagtools/templates/statorRotor3.mako,sha256=MrU_JCSH8tJEUH09fftJJslkbEeIwOB1WGBSxXqUqeI,4942
133
137
  femagtools/templates/stator_msh.mako,sha256=Neze1ielMCk7TrARyhOra91fFQVT8Phsgk2Omt_aMG8,1799
134
138
  femagtools/templates/therm-dynamic.mako,sha256=pEz7jrUpopK1-RqgulNnrkSaCZDjfLelsVo6cBqmpac,3142
135
- femagtools/templates/therm-static.mako,sha256=hJ6sUuZ9MaQTwzqYzp3Jt-6BJQ52Nktz5ZxpN5lKbn0,1002
136
- femagtools/templates/torq_calc.mako,sha256=EYk-tn0RUJQqh1xBgnTROvgY5I3J9SmcnhEOUa9-aGM,1782
137
- femagtools-1.3.1.dist-info/LICENSE,sha256=V5OED7AzEaOtvbfgNheKOSUeNtijvKQuo84FtSJNkJU,1316
138
- femagtools-1.3.1.dist-info/METADATA,sha256=L8sYPQzYm059dvEHPdI--nz6cjJ4igVB0nCyC5mISWQ,5714
139
- femagtools-1.3.1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
140
- femagtools-1.3.1.dist-info/entry_points.txt,sha256=FZpd7JumQdJo-AZUyRA8-aJthK85jg37_qjRoDTY-Mo,191
141
- femagtools-1.3.1.dist-info/top_level.txt,sha256=DScrn5RiUYKtaEVgcG3AMSWDUd2N8uqxk-gZY-2CaYk,11
142
- femagtools-1.3.1.dist-info/RECORD,,
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