femagtools 1.8.4__py3-none-any.whl → 1.8.5__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/dxfsl/converter.py +0 -5
- femagtools/machine/afpm.py +275 -0
- femagtools/machine/utils.py +2 -1
- femagtools/plot/char.py +19 -8
- femagtools/utils.py +1 -1
- femagtools/zmq.py +0 -1
- {femagtools-1.8.4.dist-info → femagtools-1.8.5.dist-info}/METADATA +1 -1
- {femagtools-1.8.4.dist-info → femagtools-1.8.5.dist-info}/RECORD +13 -13
- {femagtools-1.8.4.dist-info → femagtools-1.8.5.dist-info}/LICENSE +0 -0
- {femagtools-1.8.4.dist-info → femagtools-1.8.5.dist-info}/WHEEL +0 -0
- {femagtools-1.8.4.dist-info → femagtools-1.8.5.dist-info}/entry_points.txt +0 -0
- {femagtools-1.8.4.dist-info → femagtools-1.8.5.dist-info}/top_level.txt +0 -0
femagtools/__init__.py
CHANGED
femagtools/dxfsl/converter.py
CHANGED
@@ -21,7 +21,6 @@ import sys
|
|
21
21
|
import multiprocessing
|
22
22
|
|
23
23
|
logger = logging.getLogger(__name__)
|
24
|
-
journal = None
|
25
24
|
|
26
25
|
|
27
26
|
def plot_geom(doit, plt, geom, title="Plot", areas=True):
|
@@ -279,7 +278,6 @@ def symmetry_search(machine,
|
|
279
278
|
|
280
279
|
|
281
280
|
def build_machine_rotor(machine, inner, mindist, plt, EESM=False, single=False):
|
282
|
-
global journal
|
283
281
|
logger.debug("Begin of build_machine_rotor")
|
284
282
|
|
285
283
|
if machine.has_windings():
|
@@ -350,14 +348,12 @@ def build_machine_rotor(machine, inner, mindist, plt, EESM=False, single=False):
|
|
350
348
|
title="Final Rotor")
|
351
349
|
|
352
350
|
t = timer.stop("-- rotor created in %0.4f seconds --")
|
353
|
-
journal.put('time_rotor_created', t)
|
354
351
|
|
355
352
|
logger.debug("End of build_machine_rotor")
|
356
353
|
return machine_temp
|
357
354
|
|
358
355
|
|
359
356
|
def build_machine_stator(machine, inner, mindist, plt, EESM=False, single=False):
|
360
|
-
global journal
|
361
357
|
logger.debug("Begin of build_machine_stator")
|
362
358
|
timer = Timer(start_it=True)
|
363
359
|
|
@@ -424,7 +420,6 @@ def build_machine_stator(machine, inner, mindist, plt, EESM=False, single=False)
|
|
424
420
|
title="Final Stator")
|
425
421
|
|
426
422
|
t = timer.stop("-- stator created in %0.4f seconds --")
|
427
|
-
journal.put('time_stator_created', t)
|
428
423
|
|
429
424
|
logger.debug("End of build_machine_stator")
|
430
425
|
return machine_temp
|
femagtools/machine/afpm.py
CHANGED
@@ -14,6 +14,7 @@ from .. import femag
|
|
14
14
|
from scipy.interpolate import make_interp_spline, RegularGridInterpolator, RectBivariateSpline
|
15
15
|
from scipy.integrate import quad
|
16
16
|
import copy
|
17
|
+
from matplotlib.colors import to_rgb
|
17
18
|
|
18
19
|
logger = logging.getLogger(__name__)
|
19
20
|
|
@@ -598,6 +599,280 @@ def _get_copper_losses(scale_factor, bch):
|
|
598
599
|
return 0 # noload calc has no winding losses
|
599
600
|
|
600
601
|
|
602
|
+
def _set_plot_attributes(ax):
|
603
|
+
ax.set_aspect('equal')
|
604
|
+
for loc, spine in ax.spines.items():
|
605
|
+
spine.set_color('none') # don't draw spine
|
606
|
+
ax.yaxis.set_ticks([])
|
607
|
+
ax.xaxis.set_ticks([])
|
608
|
+
|
609
|
+
|
610
|
+
def _get_colors(colors, delta):
|
611
|
+
if delta == 0.0:
|
612
|
+
return colors
|
613
|
+
new_colors = []
|
614
|
+
for col in colors:
|
615
|
+
rgb = to_rgb(col)
|
616
|
+
r, g, b = rgb
|
617
|
+
col = (max(0.0, min(r+delta, 1.0)),
|
618
|
+
max(0.0, min(g+delta, 1.0)),
|
619
|
+
max(0.0, min(b+delta, 1.0)))
|
620
|
+
new_colors.append(col)
|
621
|
+
return new_colors
|
622
|
+
|
623
|
+
|
624
|
+
def _draw_vertical_magnets(ax,
|
625
|
+
poles,
|
626
|
+
xr, yr,
|
627
|
+
Rr,
|
628
|
+
xoff, yoff,
|
629
|
+
delta=0.0):
|
630
|
+
color = ['green', 'red']
|
631
|
+
color = _get_colors(color, delta)
|
632
|
+
for i in range(poles):
|
633
|
+
ax.fill(xr+xoff, yr+yoff,
|
634
|
+
facecolor=color[i%2], edgecolor=color[i%2])
|
635
|
+
xr, yr = np.dot(Rr, [xr, yr])
|
636
|
+
return
|
637
|
+
|
638
|
+
|
639
|
+
def _draw_vertical_slots(ax,
|
640
|
+
Q,
|
641
|
+
r,
|
642
|
+
alpha,
|
643
|
+
xoff, yoff,
|
644
|
+
delta=0.0):
|
645
|
+
color = ['skyblue', 'blue']
|
646
|
+
color = _get_colors(color, delta)
|
647
|
+
taus = 2*np.pi/Q
|
648
|
+
for n in range(Q):
|
649
|
+
beta = np.array([[n*taus+alpha[0], (n+1)*taus-alpha[0]],
|
650
|
+
[(n+1)*taus-alpha[1], n*taus+alpha[1]]])
|
651
|
+
ax.fill(np.hstack((r * np.cos(beta[0, 0]),
|
652
|
+
(r[::-1] * np.cos(beta[0, 1]))))+xoff,
|
653
|
+
np.hstack((r * np.sin(beta[0, 0]),
|
654
|
+
(r[::-1] * np.sin(beta[0, 1]))))+yoff,
|
655
|
+
facecolor=color[0], edgecolor=color[0])
|
656
|
+
|
657
|
+
|
658
|
+
def vertical_plot(machine, ax):
|
659
|
+
"""plots afpm stator and rotor (vertical section)
|
660
|
+
Args:
|
661
|
+
dy1, dy1: float outer, inner diameter
|
662
|
+
rel_magn_width: float rel magnet width 0..1
|
663
|
+
Q: number of stator slots
|
664
|
+
poles: number of poles
|
665
|
+
slot_width: width of stator slot
|
666
|
+
"""
|
667
|
+
logger.debug("begin of vertical_plot()")
|
668
|
+
|
669
|
+
model_type = machine['afmtype'][0:4]
|
670
|
+
dy1 = machine['outer_diam']*1e3
|
671
|
+
dy2 = machine['inner_diam']*1e3
|
672
|
+
rel_magn_width = machine['magnet']['afm_rotor']['rel_magn_width']
|
673
|
+
Q = machine['stator']['num_slots']
|
674
|
+
slot_width = machine['stator']['afm_stator']['slot_width']*1e3
|
675
|
+
poles = machine['poles']
|
676
|
+
|
677
|
+
# prepare Magnets
|
678
|
+
theta = np.linspace(np.pi/poles*(1-rel_magn_width),
|
679
|
+
np.pi/poles*(1+rel_magn_width),
|
680
|
+
10)
|
681
|
+
xr = np.concatenate((dy1/2 * np.cos(theta), dy2/2 * np.cos(theta[::-1])))
|
682
|
+
yr = np.concatenate((dy1/2 * np.sin(theta), dy2/2 * np.sin(theta[::-1])))
|
683
|
+
rtheta = 2*np.pi/poles
|
684
|
+
Rr = np.array([
|
685
|
+
[np.cos(rtheta), -np.sin(rtheta)],
|
686
|
+
[np.sin(rtheta), np.cos(rtheta)]
|
687
|
+
])
|
688
|
+
|
689
|
+
# prepare Slots
|
690
|
+
taus = 2*np.pi/Q
|
691
|
+
r = np.array([dy2/2, dy1/2])
|
692
|
+
alpha = np.arctan2(slot_width/2, r)
|
693
|
+
|
694
|
+
yoff = 0.0
|
695
|
+
xoff = 0.0
|
696
|
+
y_shift = -2
|
697
|
+
x_shift = dy1-dy2
|
698
|
+
ma_delta = 0.0 # color
|
699
|
+
sl_delta = 0.0 # color
|
700
|
+
|
701
|
+
# Draw
|
702
|
+
if model_type in ("S1R2"): # 2 rotor
|
703
|
+
_draw_vertical_magnets(ax, poles, xr, yr, Rr, xoff, yoff, delta=-0.1)
|
704
|
+
yoff += y_shift
|
705
|
+
xoff += x_shift
|
706
|
+
|
707
|
+
if model_type in ("S2R1"): # 2 stator
|
708
|
+
sl_delta = -0.1
|
709
|
+
|
710
|
+
_draw_vertical_slots(ax, Q, r, alpha, xoff, yoff, delta=sl_delta)
|
711
|
+
yoff += y_shift
|
712
|
+
xoff += x_shift
|
713
|
+
|
714
|
+
if model_type in ("S1R2"): # 2 rotor
|
715
|
+
ma_delta = 0.1
|
716
|
+
|
717
|
+
_draw_vertical_magnets(ax, poles, xr, yr, Rr, xoff, yoff, delta=ma_delta)
|
718
|
+
yoff += y_shift
|
719
|
+
xoff += x_shift
|
720
|
+
|
721
|
+
if model_type in ("S2R1"): # 2 stator
|
722
|
+
sl_delta = 0.0
|
723
|
+
_draw_vertical_slots(ax, Q, r, alpha, xoff, yoff, delta=sl_delta)
|
724
|
+
|
725
|
+
_set_plot_attributes(ax)
|
726
|
+
logger.debug("end of vertical_plot()")
|
727
|
+
|
728
|
+
|
729
|
+
IRON_NO = 0
|
730
|
+
IRON_UP = 1
|
731
|
+
IRON_DOWN = 2
|
732
|
+
|
733
|
+
def _draw_horizontal_magnets(ax,
|
734
|
+
poles,
|
735
|
+
magn_height,
|
736
|
+
magn_width,
|
737
|
+
yoke_height,
|
738
|
+
Q,
|
739
|
+
g,
|
740
|
+
taus,
|
741
|
+
dy2,
|
742
|
+
yoff=0.0,
|
743
|
+
iron=IRON_NO
|
744
|
+
):
|
745
|
+
color = ['green', 'red']
|
746
|
+
xy = (0, Q//g*taus, Q//g*taus, 0)
|
747
|
+
|
748
|
+
if iron == IRON_UP:
|
749
|
+
yy = (yoff-yoke_height,
|
750
|
+
yoff-yoke_height,
|
751
|
+
yoff,
|
752
|
+
yoff)
|
753
|
+
yoff -= yoke_height
|
754
|
+
ax.fill(xy, yy, color='skyblue')
|
755
|
+
|
756
|
+
taum = dy2*np.pi/poles
|
757
|
+
ym = np.array([yoff-magn_height,
|
758
|
+
yoff-magn_height,
|
759
|
+
yoff,
|
760
|
+
yoff])
|
761
|
+
yoff -= magn_height
|
762
|
+
|
763
|
+
for n in range(poles//g):
|
764
|
+
xl = taum*n + taum*(1 - magn_width)
|
765
|
+
xr = taum*(n + 1) - taum*(1 - magn_width)
|
766
|
+
xm = (xl, xr, xr, xl)
|
767
|
+
ax.fill(xm, ym, color=color[n%2])
|
768
|
+
|
769
|
+
if iron == IRON_DOWN:
|
770
|
+
yy = (yoff-yoke_height,
|
771
|
+
yoff-yoke_height,
|
772
|
+
yoff,
|
773
|
+
yoff)
|
774
|
+
yoff -= yoke_height
|
775
|
+
ax.fill(xy, yy, color='skyblue')
|
776
|
+
return yoff
|
777
|
+
|
778
|
+
|
779
|
+
TOOTH_UP = 0
|
780
|
+
TOOTH_DOWN = 1
|
781
|
+
TOOTH_ONLY = 2
|
782
|
+
|
783
|
+
|
784
|
+
def _draw_horizontal_slots(ax,
|
785
|
+
slot_height, slot_width, yoke_height,
|
786
|
+
Q, g, taus,
|
787
|
+
yoff=0.0,
|
788
|
+
tooth=TOOTH_DOWN):
|
789
|
+
if not tooth == TOOTH_ONLY:
|
790
|
+
xx = (0, Q//g*taus, Q//g*taus, 0)
|
791
|
+
if tooth == TOOTH_DOWN:
|
792
|
+
yy = (yoff-yoke_height,
|
793
|
+
yoff-yoke_height,
|
794
|
+
yoff,
|
795
|
+
yoff)
|
796
|
+
else:
|
797
|
+
yy = (yoff-slot_height,
|
798
|
+
yoff-slot_height,
|
799
|
+
yoff-slot_height-yoke_height,
|
800
|
+
yoff-slot_height-yoke_height)
|
801
|
+
ax.fill(xx, yy, color='skyblue')
|
802
|
+
|
803
|
+
yt = (yoff-slot_height-yoke_height,
|
804
|
+
yoff-slot_height-yoke_height,
|
805
|
+
yoff, yoff)
|
806
|
+
for n in range(Q//g):
|
807
|
+
xt = np.array((n*taus, n*taus+(taus-slot_width)/2,
|
808
|
+
n*taus+(taus-slot_width)/2, n*taus))
|
809
|
+
ax.fill(xt, yt, color='skyblue')
|
810
|
+
xt += slot_width + (taus-slot_width)/2
|
811
|
+
ax.fill(xt, yt, color='skyblue')
|
812
|
+
return yoff - slot_height - yoke_height
|
813
|
+
|
814
|
+
|
815
|
+
def horizontal_plot(machine, ax):
|
816
|
+
logger.debug("begin of horizontal_plot()")
|
817
|
+
|
818
|
+
model_type = machine['afmtype'][0:4]
|
819
|
+
dy1 = machine['outer_diam']*1e3
|
820
|
+
dy2 = machine['inner_diam']*1e3
|
821
|
+
rel_magn_width = machine['magnet']['afm_rotor']['rel_magn_width']
|
822
|
+
magn_height = machine['magnet']['afm_rotor']['magn_height']*1e3
|
823
|
+
magn_yoke_height = machine['magnet']['afm_rotor']['yoke_height']*1e3
|
824
|
+
|
825
|
+
Q = machine['stator']['num_slots']
|
826
|
+
slot_width = machine['stator']['afm_stator']['slot_width']*1e3
|
827
|
+
poles = machine['poles']
|
828
|
+
m = 3
|
829
|
+
slot_height = machine['stator']['afm_stator']['slot_height']*1e3
|
830
|
+
if model_type in ('S2R1', 'S2R1_all'):
|
831
|
+
slot_height /= 2
|
832
|
+
yoke_height = machine['stator']['afm_stator']['yoke_height']*1e3
|
833
|
+
ag = machine['airgap']*1e3
|
834
|
+
|
835
|
+
g = np.gcd(Q, m*poles)//m
|
836
|
+
taus = dy2*np.pi/Q
|
837
|
+
|
838
|
+
yoff = 0.0
|
839
|
+
if model_type in ('S1R2', 'S1R2_all'): # 2 rotor
|
840
|
+
yoff = _draw_horizontal_magnets(ax, poles,
|
841
|
+
magn_height, rel_magn_width,
|
842
|
+
magn_yoke_height,
|
843
|
+
Q, g, taus, dy2,
|
844
|
+
yoff=yoff,
|
845
|
+
iron=IRON_UP)
|
846
|
+
yoff -= ag
|
847
|
+
|
848
|
+
tooth = TOOTH_ONLY if model_type in ('S1R2', 'S1R2_all') else TOOTH_DOWN
|
849
|
+
yoff = _draw_horizontal_slots(ax,
|
850
|
+
slot_height, slot_width, yoke_height,
|
851
|
+
Q, g, taus,
|
852
|
+
yoff=yoff,
|
853
|
+
tooth=tooth)
|
854
|
+
yoff -= ag
|
855
|
+
|
856
|
+
iron = IRON_DOWN if model_type in ('S1R1', 'S1R2', 'S1R2_all') else IRON_NO
|
857
|
+
yoff = _draw_horizontal_magnets(ax, poles,
|
858
|
+
magn_height, rel_magn_width,
|
859
|
+
magn_yoke_height,
|
860
|
+
Q, g, taus, dy2,
|
861
|
+
yoff=yoff,
|
862
|
+
iron=iron)
|
863
|
+
yoff -= ag
|
864
|
+
|
865
|
+
if model_type in ('S2R1', 'S2R1_all'): # 2 rotor
|
866
|
+
yoff = _draw_horizontal_slots(ax,
|
867
|
+
slot_height, slot_width, yoke_height,
|
868
|
+
Q, g, taus,
|
869
|
+
yoff=yoff,
|
870
|
+
tooth=TOOTH_UP)
|
871
|
+
|
872
|
+
_set_plot_attributes(ax)
|
873
|
+
logger.debug("end of horizontal_plot()")
|
874
|
+
|
875
|
+
|
601
876
|
class AFPM:
|
602
877
|
"""Axial Flux PM
|
603
878
|
Arguments:
|
femagtools/machine/utils.py
CHANGED
@@ -366,7 +366,8 @@ def dqparident(workdir, engine, temp, machine,
|
|
366
366
|
num_beta_steps: number of current steps (default 7 per quadrant)
|
367
367
|
speed: rotor speed in 1/s (default 160/p)
|
368
368
|
i1_max: maximum current in A rms (default approx 3*i1nom)
|
369
|
-
period_frac: fraction of rotating angle (default 6)
|
369
|
+
period_frac: (int) fraction of rotating angle (default 6)
|
370
|
+
dqtype: (str) type of identification: 'ldq' (default), 'psidq'
|
370
371
|
cmd: femag executable
|
371
372
|
"""
|
372
373
|
import pathlib
|
femagtools/plot/char.py
CHANGED
@@ -333,10 +333,14 @@ def _plot_contour(speed, torque, z, ax, title='', levels=[],
|
|
333
333
|
clippath = Path(_get_nT_boundary(x, y))
|
334
334
|
patch = PathPatch(clippath, facecolor='none')
|
335
335
|
ax.add_patch(patch)
|
336
|
-
|
337
|
-
c.
|
338
|
-
|
339
|
-
c.
|
336
|
+
try:
|
337
|
+
for c in cont.collections:
|
338
|
+
c.set_clip_path(patch)
|
339
|
+
for c in contf.collections:
|
340
|
+
c.set_clip_path(patch)
|
341
|
+
except AttributeError: # matplotlib >= 3.10
|
342
|
+
cont.set_clip_path(patch)
|
343
|
+
contf.set_clip_path(patch)
|
340
344
|
|
341
345
|
if xscale > 1:
|
342
346
|
def format_fn(tick_val, tick_pos):
|
@@ -367,9 +371,16 @@ def efficiency_map(rmap, ax=0, title='', clabel=True,
|
|
367
371
|
|
368
372
|
|
369
373
|
def losses_map(rmap, ax=0, title='Losses Map / kW', clabel=True,
|
370
|
-
cmap='YlOrRd', cbar=False):
|
374
|
+
cmap='YlOrRd', cbar=False, key='losses'):
|
375
|
+
"""
|
376
|
+
plot losses map
|
377
|
+
Args:
|
378
|
+
rmap: (dict) result of efficiency_losses_map
|
379
|
+
key: (str) type of losses: 'plfe1', 'plfe2', 'plmag', 'plcu1', 'plcu2', 'plfric', 'losses';
|
380
|
+
"""
|
381
|
+
|
371
382
|
if ax == 0:
|
372
383
|
fig, ax = plt.subplots(figsize=(12, 12))
|
373
|
-
return _plot_contour(rmap['n'], rmap['T'], np.asarray(rmap[
|
374
|
-
|
375
|
-
|
384
|
+
return _plot_contour(rmap['n'], rmap['T'], np.asarray(rmap[key])/1e3, ax,
|
385
|
+
title=title, levels=14, clabel=clabel,
|
386
|
+
cmap=cmap, cbar=cbar)
|
femagtools/utils.py
CHANGED
@@ -17,7 +17,7 @@ def fft(pos, y, pmod=0):
|
|
17
17
|
else:
|
18
18
|
#negative_periodic = np.abs(y[0] - y[-1])/np.max(y) > 1
|
19
19
|
# count zero crossings
|
20
|
-
ypos = np.asarray(y
|
20
|
+
ypos = np.asarray(y)-np.mean(y) > 0
|
21
21
|
nypos = ~ypos
|
22
22
|
nzc = len(((ypos[:-1] & nypos[1:])
|
23
23
|
| (nypos[:-1] & ypos[1:])).nonzero()[0])
|
femagtools/zmq.py
CHANGED
@@ -147,7 +147,6 @@ class SubscriberTask(threading.Thread):
|
|
147
147
|
def send_notify():
|
148
148
|
logger.debug(f"Send loop: {SubscriberTask.notify_send_loop}")
|
149
149
|
while SubscriberTask.notify_send_loop:
|
150
|
-
logger.debug(f"Send data: {SubscriberTask.notify_send_header}")
|
151
150
|
if 'progress_logger' in SubscriberTask.notify_send_header:
|
152
151
|
# collect data from different threads
|
153
152
|
SubscriberTask.notify_send_header.remove('progress_logger')
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: femagtools
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.5
|
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,4 +1,4 @@
|
|
1
|
-
femagtools/__init__.py,sha256=
|
1
|
+
femagtools/__init__.py,sha256=AYG-i1TsOTL54WdFZq9UcxAcqn7kj3GFb6Q_xMGw0jc,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
|
@@ -44,17 +44,17 @@ femagtools/poc.py,sha256=wMwOxMhPLFRiGPMsKQwWWuGr6UZPzRBajhfVMfXptNU,6794
|
|
44
44
|
femagtools/semi_fea.py,sha256=WZtYKrzhDruETyuEW2kpiNp9OaA7Hheq3qJiAIYtsjg,3475
|
45
45
|
femagtools/tks.py,sha256=C3lDdS91Yikf3cMnW-OEqmie-q6S24T81cCFrzwOyeI,7532
|
46
46
|
femagtools/ts.py,sha256=x9aCMVASjdBZuyI2pJGMyi1dveGFd_pWQ20cZ-l_moc,47216
|
47
|
-
femagtools/utils.py,sha256=
|
47
|
+
femagtools/utils.py,sha256=IXMk5ZI7B8CPePT523o_9doTKaaWuFe93AVwkBxkp00,1587
|
48
48
|
femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
|
49
49
|
femagtools/vtu.py,sha256=Sf83dHIfCKY2km-MIUHKKoj-JKN4PDX7kkPLZXyIYY4,10723
|
50
50
|
femagtools/windings.py,sha256=RS3QSx1JY0FXzItDuWimC9zYzRxq9n6BbY5fZt1dMFg,23780
|
51
|
-
femagtools/zmq.py,sha256=
|
51
|
+
femagtools/zmq.py,sha256=fsPvLbL7UB1CarTgixbWclIlVmCCsU4JLTKGEdg1wcU,8508
|
52
52
|
femagtools/dxfsl/__init__.py,sha256=MywcCdpKPKs4qJBJJgeDsikJFJ2P48dbTuNk303f5pM,76
|
53
53
|
femagtools/dxfsl/area.py,sha256=CXLf4lagLGGMkGZLfwowpH50djsZkepYSU5F3Juyxqo,69679
|
54
54
|
femagtools/dxfsl/areabuilder.py,sha256=6dfWryYjXzGIVDOsX2zb1VKIhUzmpL43XhF-wtdesAg,35882
|
55
55
|
femagtools/dxfsl/concat.py,sha256=F6scwesxyOmfmKQ5kGspNCxA71Yz6QgxFL7lTj3hsaI,13385
|
56
56
|
femagtools/dxfsl/conv.py,sha256=9ki4PGyKuPpsSifKrBPu5_IvbhePv3sQU-Sq8A64s4w,12606
|
57
|
-
femagtools/dxfsl/converter.py,sha256=
|
57
|
+
femagtools/dxfsl/converter.py,sha256=SYz5JWh485EeLA5K4gtz2jsVo8z0CXUjVn5tJ4JoEuM,43453
|
58
58
|
femagtools/dxfsl/corner.py,sha256=-XPBcnEau-2-SRHLYzlBqCQGaFfgm_DH2qR1mSaFoAs,1311
|
59
59
|
femagtools/dxfsl/dumprenderer.py,sha256=n4AvInjvGIaC2iKZtQaYXXDyJVSQ3uEOFOLD4-xfKRY,1861
|
60
60
|
femagtools/dxfsl/dxfparser.py,sha256=kyXG0kZfNyOgn96MqBgP8RhOQhppfB5NbyRNNybs1C0,13451
|
@@ -69,13 +69,13 @@ femagtools/dxfsl/shape.py,sha256=uQqbgXIA2_KP2XRdhCfVfGWjcjwzhJ5t9RhiqR9R98c,616
|
|
69
69
|
femagtools/dxfsl/svgparser.py,sha256=RY2TU9MK6gOaNmI6w6RNqcw7H9YGmK-NUwvdylKBcsE,3763
|
70
70
|
femagtools/dxfsl/symmetry.py,sha256=dXfZVIqT49nbMirY5YVaRPi8kNB8reaiq-eIbhw1Z54,43936
|
71
71
|
femagtools/machine/__init__.py,sha256=B7yeRZzf29NWCWy8C8iJFdTr9bszAoMRcVEpblhCeg4,7256
|
72
|
-
femagtools/machine/afpm.py,sha256=
|
72
|
+
femagtools/machine/afpm.py,sha256=6P84lMVGgpnNcZBNkelTMNmaGGjydan_0loZ_n0K7Zc,35658
|
73
73
|
femagtools/machine/effloss.py,sha256=gOgVdAr703Vh9T2Ht14of_I-95QOkH5qXmm11bfHK7s,14414
|
74
74
|
femagtools/machine/im.py,sha256=isMSoCnIk4Hj47MwBNP5PW7a2rI-7N35A9zHGOSl43s,38111
|
75
75
|
femagtools/machine/pm.py,sha256=C4vDdPIsIRUKtzY3b1RNT1v37p1uP3pMUduftNejcPc,68129
|
76
76
|
femagtools/machine/sizing.py,sha256=6IUSdp6HNGHlSaWMy0mjzLGxp3UtxFLfdzQ_4MYx7TI,30069
|
77
77
|
femagtools/machine/sm.py,sha256=SLaSuGJ8zXIFq6uBR2iu4uLXyWJZjA3iHAaTC8Jm-gw,39117
|
78
|
-
femagtools/machine/utils.py,sha256=
|
78
|
+
femagtools/machine/utils.py,sha256=25QNxP8lp31W7kB-gcIA1Vd_9UcYlxrahqZ-k3ALU_s,20985
|
79
79
|
femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
|
80
80
|
femagtools/moo/algorithm.py,sha256=e-Cgp2rp_hG9DXqWqluzQGNIWvCfthUgLD8O-aVPofA,5763
|
81
81
|
femagtools/moo/population.py,sha256=krIl8tOJXPhCgBemkqn-jwvZg1VzsGniqMN_KAFxbuw,10203
|
@@ -85,7 +85,7 @@ femagtools/moo/test/PopulationTest.py,sha256=lG9NeWo0xrslfQRa4tgy1Nj23VJMFIlg_vQ
|
|
85
85
|
femagtools/moo/test/ProblemTest.py,sha256=r5XEfY4LPscDb35TxxPd0lbP3nUmL6_G6vrRo1I3RSg,505
|
86
86
|
femagtools/plot/__init__.py,sha256=f0yNw9NhadltPIu7zRWwTAY6FgHKeq9ul-3UcnK8Fmk,949
|
87
87
|
femagtools/plot/bch.py,sha256=_EEPPEqtEPeWco3xlQqUuZft1eF-IXbMNnXyd8pYEJs,28873
|
88
|
-
femagtools/plot/char.py,sha256=
|
88
|
+
femagtools/plot/char.py,sha256=xv4cNOTorK-fy7eUFhmyR-013TFI2A2999xXKgL2AnA,12469
|
89
89
|
femagtools/plot/fieldlines.py,sha256=_7ykKhnQLeS4fz34pnzovH1gIhcUSKJ3gl1GUgWYix8,1137
|
90
90
|
femagtools/plot/fluxdens.py,sha256=NlexRJ3f_8CgKoWrV82ZIsAXPrLhwj98uOe8_fUks7A,1082
|
91
91
|
femagtools/plot/forcedens.py,sha256=Vloi9czy7qbGXI-Vm7Cow6IfHTsFhCLI1YWduFOR55c,4075
|
@@ -215,9 +215,9 @@ tests/moo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
215
215
|
tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
|
216
216
|
tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
|
217
217
|
tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
|
218
|
-
femagtools-1.8.
|
219
|
-
femagtools-1.8.
|
220
|
-
femagtools-1.8.
|
221
|
-
femagtools-1.8.
|
222
|
-
femagtools-1.8.
|
223
|
-
femagtools-1.8.
|
218
|
+
femagtools-1.8.5.dist-info/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
|
219
|
+
femagtools-1.8.5.dist-info/METADATA,sha256=CxspB9_deq3AqzLvZWTL8kn0ZpMD6yiUKo67ppIZ1y4,6190
|
220
|
+
femagtools-1.8.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
221
|
+
femagtools-1.8.5.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
|
222
|
+
femagtools-1.8.5.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
|
223
|
+
femagtools-1.8.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|