femagtools 1.7.4__py3-none-any.whl → 1.7.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/bch.py +4 -1
- femagtools/dxfsl/area.py +1 -0
- femagtools/dxfsl/geom.py +39 -1
- femagtools/machine/pm.py +3 -2
- {femagtools-1.7.4.dist-info → femagtools-1.7.5.dist-info}/METADATA +1 -1
- {femagtools-1.7.4.dist-info → femagtools-1.7.5.dist-info}/RECORD +11 -11
- {femagtools-1.7.4.dist-info → femagtools-1.7.5.dist-info}/LICENSE +0 -0
- {femagtools-1.7.4.dist-info → femagtools-1.7.5.dist-info}/WHEEL +0 -0
- {femagtools-1.7.4.dist-info → femagtools-1.7.5.dist-info}/entry_points.txt +0 -0
- {femagtools-1.7.4.dist-info → femagtools-1.7.5.dist-info}/top_level.txt +0 -0
femagtools/__init__.py
CHANGED
femagtools/bch.py
CHANGED
@@ -613,6 +613,7 @@ class Reader:
|
|
613
613
|
|
614
614
|
def __read_general_machine_data(self, content):
|
615
615
|
mcfiles = []
|
616
|
+
slotsides = 1
|
616
617
|
for l in content:
|
617
618
|
try:
|
618
619
|
if l.find('Armature Length') > -1:
|
@@ -631,8 +632,10 @@ class Reader:
|
|
631
632
|
self.machine['p_sim'] = int(l.split()[-1])
|
632
633
|
elif l.find('Total Number of Slots') > -1:
|
633
634
|
self.machine['Q'] = int(l.split()[-1])
|
635
|
+
elif l.find('Total Number of Slot-Sides') > -1:
|
636
|
+
slotsides = int(l.split()[-1])
|
634
637
|
elif l.find('Number of Slot-Sides sim.') > -1:
|
635
|
-
self.machine['qs_sim'] = int(l.split()[-1])
|
638
|
+
self.machine['qs_sim'] = int(l.split()[-1])*self.machine['Q']//slotsides
|
636
639
|
elif l.find('POC-File used in calculation') > -1:
|
637
640
|
self.machine['pocfile'] = l.split(
|
638
641
|
':')[-1].strip().replace('\\', '\\\\')
|
femagtools/dxfsl/area.py
CHANGED
femagtools/dxfsl/geom.py
CHANGED
@@ -2478,7 +2478,8 @@ class Geometry(object):
|
|
2478
2478
|
groups_inside = {g.id: g for g in grouplist}
|
2479
2479
|
area.areas_inside = groups_inside
|
2480
2480
|
areas_outside.append(area)
|
2481
|
-
for g in
|
2481
|
+
for g in grouplist:
|
2482
|
+
g.group_is_inside = True
|
2482
2483
|
alist = groups.get(g.id, [])
|
2483
2484
|
alist.append(area)
|
2484
2485
|
groups[g.id] = alist
|
@@ -2532,6 +2533,11 @@ class Geometry(object):
|
|
2532
2533
|
for area in area_list:
|
2533
2534
|
if self.create_aux_lines(area, rightangle, leftangle):
|
2534
2535
|
done = True
|
2536
|
+
main_groups = [g for g in self.areagroup_list
|
2537
|
+
if not g.group_is_inside]
|
2538
|
+
if len(main_groups) > 1:
|
2539
|
+
if self.create_outside_aux_lines(main_groups):
|
2540
|
+
done = True
|
2535
2541
|
else:
|
2536
2542
|
logger.debug("-> start create_auxiliary_lines")
|
2537
2543
|
self.set_areas_inside_for_all_areas()
|
@@ -2856,6 +2862,38 @@ class Geometry(object):
|
|
2856
2862
|
area.get_id())
|
2857
2863
|
return done
|
2858
2864
|
|
2865
|
+
def create_outside_aux_lines(self, grouplist):
|
2866
|
+
done = False
|
2867
|
+
aux_color = 'blue'
|
2868
|
+
aux_linestyle = 'dotted'
|
2869
|
+
|
2870
|
+
i = 0
|
2871
|
+
gaps = []
|
2872
|
+
for group in grouplist:
|
2873
|
+
i += 1
|
2874
|
+
for g in grouplist[i:]:
|
2875
|
+
gaps += group.get_lowest_gap_list(g,
|
2876
|
+
self.center, self.max_radius,
|
2877
|
+
None, None)
|
2878
|
+
gaps.sort()
|
2879
|
+
|
2880
|
+
l = len(grouplist) -1
|
2881
|
+
for d, points, token, id in gaps[:l]:
|
2882
|
+
logger.info("Token %s", token)
|
2883
|
+
line = Line(Element(start=points[0],
|
2884
|
+
end=points[1]),
|
2885
|
+
color=aux_color,
|
2886
|
+
linestyle=aux_linestyle,
|
2887
|
+
attr='outside_auxline')
|
2888
|
+
n1 = self.find_the_node(line.node1(ndec))
|
2889
|
+
n2 = self.find_the_node(line.node2(ndec))
|
2890
|
+
if n1 and n2:
|
2891
|
+
self.add_element(line,
|
2892
|
+
rtol=self.rtol,
|
2893
|
+
atol=self.atol)
|
2894
|
+
done = True
|
2895
|
+
return done
|
2896
|
+
|
2859
2897
|
def set_rotor(self):
|
2860
2898
|
self.sym_counterpart = 1
|
2861
2899
|
self.sym_part = 0
|
femagtools/machine/pm.py
CHANGED
@@ -1496,10 +1496,11 @@ class PmRelMachinePsidq(PmRelMachine):
|
|
1496
1496
|
|
1497
1497
|
tshort = 0
|
1498
1498
|
w1 = 2*np.pi*self.p*speed
|
1499
|
+
i0 = self.iqd_torque(tload)
|
1499
1500
|
res = so.minimize(
|
1500
|
-
|
1501
|
+
np.linalg.norm, i0, method='SLSQP',
|
1501
1502
|
constraints=(
|
1502
|
-
{'type': '
|
1503
|
+
{'type': 'ineq',
|
1503
1504
|
'fun': lambda iqd: self.tmech_iqd(*iqd, speed) - tload},
|
1504
1505
|
{'type': 'ineq',
|
1505
1506
|
'fun': lambda iqd: np.sqrt(2)*u1
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: femagtools
|
3
|
-
Version: 1.7.
|
3
|
+
Version: 1.7.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,9 +1,9 @@
|
|
1
|
-
femagtools/__init__.py,sha256=
|
1
|
+
femagtools/__init__.py,sha256=z_m3ZYsmxn72xMFMzy-WxDxEWeieBELwuwUF3kzJssE,1600
|
2
2
|
femagtools/airgap.py,sha256=hELJXe52yUw82JwZ1tGUXUtRhMG2_WSUBVeGkTZSAM8,1900
|
3
3
|
femagtools/amazon.py,sha256=O1ICuv21XDAJi1qK1Sigs2TdS6hDZP19OzvmE2t76wU,12069
|
4
4
|
femagtools/amela.py,sha256=pHjfXzpANI-7oz8MtrqNcyDZ6PxVM91vCJuvYhHy1rk,13891
|
5
5
|
femagtools/asm.py,sha256=CiL0KWaF4P7O6-VwmGLdva_icwmPrPiI-TFQ19XYTKk,7660
|
6
|
-
femagtools/bch.py,sha256=
|
6
|
+
femagtools/bch.py,sha256=FYpQsbCaJB6GJHwUto4aCq94Yz1DtYAbaj7l-gGjmY4,73716
|
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
|
@@ -48,7 +48,7 @@ femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
|
|
48
48
|
femagtools/vtu.py,sha256=Sf83dHIfCKY2km-MIUHKKoj-JKN4PDX7kkPLZXyIYY4,10723
|
49
49
|
femagtools/windings.py,sha256=-PDqzatXJUaMTR4hI1bbY__AAb3fjwfjiS9FEuR-8N8,22305
|
50
50
|
femagtools/dxfsl/__init__.py,sha256=MywcCdpKPKs4qJBJJgeDsikJFJ2P48dbTuNk303f5pM,76
|
51
|
-
femagtools/dxfsl/area.py,sha256=
|
51
|
+
femagtools/dxfsl/area.py,sha256=VTRYoIRDFM0bp5nWZF3_DtyUNA86ZwtD4eYfb3mnGY4,56618
|
52
52
|
femagtools/dxfsl/areabuilder.py,sha256=Siu11yRcNJiSCWwc865-OvuVhSmLtRQWysbe1-rUcN0,34197
|
53
53
|
femagtools/dxfsl/concat.py,sha256=F6scwesxyOmfmKQ5kGspNCxA71Yz6QgxFL7lTj3hsaI,13385
|
54
54
|
femagtools/dxfsl/conv.py,sha256=GeRYUvbdcP5vKtNm5S5gU1yyMboGkGNyOqzkHpYbEEo,10086
|
@@ -59,7 +59,7 @@ femagtools/dxfsl/dxfparser.py,sha256=kyXG0kZfNyOgn96MqBgP8RhOQhppfB5NbyRNNybs1C0
|
|
59
59
|
femagtools/dxfsl/femparser.py,sha256=O8940Q1Mz8MKng6W8M3s9KfTvhDLJ56tfQWtZEW3xMM,2134
|
60
60
|
femagtools/dxfsl/fslrenderer.py,sha256=PBy3KUlNIqItcxCFnWC-d3OrSrsNFj5vDLLGZW2oq3Q,25081
|
61
61
|
femagtools/dxfsl/functions.py,sha256=F0AjzHfIfq3v-mhDzUOeq3zeYQCEsJl1-XpEyJQsSnQ,11805
|
62
|
-
femagtools/dxfsl/geom.py,sha256=-
|
62
|
+
femagtools/dxfsl/geom.py,sha256=-yIlxM1Mb93qdqTYwNYgs-RUI0-9qf9MB7f58q-bKFw,166805
|
63
63
|
femagtools/dxfsl/journal.py,sha256=S17B7wsrq5QzIUbjgg0ntvnpgH0thHq9aQXO7GdYlQQ,4265
|
64
64
|
femagtools/dxfsl/machine.py,sha256=3leWkjdMCLX2HgMhw8gNdxTKROhNCKU7KQrDVbBQ8DI,49337
|
65
65
|
femagtools/dxfsl/plotrenderer.py,sha256=q2cORuxJEf1Ws6oCY9c0gF6N3kDrcI6WOz3u5Vl6R_c,13823
|
@@ -70,7 +70,7 @@ femagtools/machine/__init__.py,sha256=U8W65K7jr7jDdC1KnJh0WjYd8DFaLnIFVvlh-TKcV9
|
|
70
70
|
femagtools/machine/afpm.py,sha256=hNyDFRLGmCuWRPZl_u1ztJ4pA-Y_mxLaVvg3UJkzRuE,24766
|
71
71
|
femagtools/machine/effloss.py,sha256=sLB8AXYVAE_AL1Ca41A2EDbn9_7u6xNjaYFjmRPoTDg,13578
|
72
72
|
femagtools/machine/im.py,sha256=3Y54AHMZfAjkvgexx2E-5jxNWzaVQ-SyaETCh7gNBYA,38008
|
73
|
-
femagtools/machine/pm.py,sha256=
|
73
|
+
femagtools/machine/pm.py,sha256=njWa9YRV2W80xqjT9Dj9Jro73Y3zJtg0HYdJ75Ye0Vk,61720
|
74
74
|
femagtools/machine/sizing.py,sha256=nWCfxbyWfbw5-7xu0qZ6zjWNquEPn3fUH-fQeGb6QUc,24307
|
75
75
|
femagtools/machine/sm.py,sha256=G4fHmZngQSRN9Dum7mHaf36b_CvD-u_AQogIFixlnys,37899
|
76
76
|
femagtools/machine/utils.py,sha256=zi659wCszhXEioKXtRdeyQik2etRFGpoykqfOGiLtTo,21223
|
@@ -212,9 +212,9 @@ tests/moo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
212
212
|
tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
|
213
213
|
tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
|
214
214
|
tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
|
215
|
-
femagtools-1.7.
|
216
|
-
femagtools-1.7.
|
217
|
-
femagtools-1.7.
|
218
|
-
femagtools-1.7.
|
219
|
-
femagtools-1.7.
|
220
|
-
femagtools-1.7.
|
215
|
+
femagtools-1.7.5.dist-info/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
|
216
|
+
femagtools-1.7.5.dist-info/METADATA,sha256=IK9wuI7T0Bxd3Vo1nyzRSRZ1rKqncHaJwlAP57Uk5Tg,6156
|
217
|
+
femagtools-1.7.5.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
218
|
+
femagtools-1.7.5.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
|
219
|
+
femagtools-1.7.5.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
|
220
|
+
femagtools-1.7.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|