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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  """
4
4
  __title__ = 'femagtools'
5
- __version__ = '1.7.4'
5
+ __version__ = '1.7.5'
6
6
  __author__ = 'Ronald Tanner'
7
7
  __license__ = 'BSD'
8
8
  __copyright__ = 'Copyright 2023-2024 Gamma Technology'
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
@@ -84,6 +84,7 @@ class Area(object):
84
84
  self.is_child = False
85
85
  self.areas_inside = {}
86
86
  self.areas_of_group = []
87
+ self.group_is_inside = False
87
88
 
88
89
  def identifier(self):
89
90
  return "{}-{}".format(self.id, self.type)
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 grouplist:
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
- lambda iqd: np.linalg.norm(iqd), self.io, method='SLSQP',
1501
+ np.linalg.norm, i0, method='SLSQP',
1501
1502
  constraints=(
1502
- {'type': 'eq',
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.4
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=LQSh6OjWbECaFlDSZXzy-njc7_TUylPuMfvbQVJYH9I,1600
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=aWTOQ8Hq2ygLPQpf5k9W0nWUPK0UXe0YewArrPI7IBk,73550
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=cYnDtnEuwuDW5R1NKV0s8PUzzQzxhgCUktFqHAjP9K8,56581
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=-hPErBLyAsDh-aq2s54psFqG2AaNr9jVeKMeEVUQF5E,165356
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=4gqYLWACE7C9FzmiHVwh6M2WT7ofNezEIazkAxLae8Q,61704
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.4.dist-info/LICENSE,sha256=NaQe4uvkszQPJmiRPHecfk-Ab9VSRXo8xQLGNVHTeFo,1362
216
- femagtools-1.7.4.dist-info/METADATA,sha256=mDq3sIVGX9_9OYQa4NObTZud2BH92rKQUJe7GR9bZNM,6156
217
- femagtools-1.7.4.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
218
- femagtools-1.7.4.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
219
- femagtools-1.7.4.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
220
- femagtools-1.7.4.dist-info/RECORD,,
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,,