emerge 1.0.4__py3-none-any.whl → 1.0.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.
Potentially problematic release.
This version of emerge might be problematic. Click here for more details.
- emerge/__init__.py +1 -1
- emerge/_emerge/geo/operations.py +4 -2
- emerge/_emerge/geo/polybased.py +11 -0
- emerge/_emerge/simmodel.py +2 -0
- emerge/_emerge/solver.py +4 -0
- {emerge-1.0.4.dist-info → emerge-1.0.5.dist-info}/METADATA +2 -2
- {emerge-1.0.4.dist-info → emerge-1.0.5.dist-info}/RECORD +10 -10
- {emerge-1.0.4.dist-info → emerge-1.0.5.dist-info}/WHEEL +0 -0
- {emerge-1.0.4.dist-info → emerge-1.0.5.dist-info}/entry_points.txt +0 -0
- {emerge-1.0.4.dist-info → emerge-1.0.5.dist-info}/licenses/LICENSE +0 -0
emerge/__init__.py
CHANGED
emerge/_emerge/geo/operations.py
CHANGED
|
@@ -51,11 +51,13 @@ def add(main: T, tool: T,
|
|
|
51
51
|
GeoSurface | GeoVolume
|
|
52
52
|
A new object that is the union of the main and tool objects.
|
|
53
53
|
'''
|
|
54
|
+
|
|
54
55
|
out_dim_tags, out_dim_tags_map = gmsh.model.occ.fuse(main.dimtags, tool.dimtags, removeObject=remove_object, removeTool=remove_tool)
|
|
55
56
|
if out_dim_tags[0][0] == 3:
|
|
56
57
|
output = GeoVolume([dt[1] for dt in out_dim_tags])._take_tools(tool,main)
|
|
57
58
|
elif out_dim_tags[0][0] == 2:
|
|
58
59
|
output = GeoSurface([dt[1] for dt in out_dim_tags])._take_tools(tool,main)
|
|
60
|
+
|
|
59
61
|
if remove_object:
|
|
60
62
|
main._exists = False
|
|
61
63
|
if remove_tool:
|
|
@@ -306,10 +308,10 @@ def unite(*objects: GeoObject) -> GeoObject:
|
|
|
306
308
|
|
|
307
309
|
main._exists = False
|
|
308
310
|
dts = []
|
|
309
|
-
for other in
|
|
311
|
+
for other in objects:
|
|
310
312
|
dts.extend(other.dimtags)
|
|
311
313
|
other._exists = False
|
|
312
|
-
new_dimtags, mapping = gmsh.model.occ.fuse(main.dimtags
|
|
314
|
+
new_dimtags, mapping = gmsh.model.occ.fuse(dts, main.dimtags)
|
|
313
315
|
|
|
314
316
|
new_obj = GeoObject.from_dimtags(new_dimtags)._take_tools(*objects)
|
|
315
317
|
new_obj.set_material(main.material)
|
emerge/_emerge/geo/polybased.py
CHANGED
|
@@ -24,6 +24,7 @@ from typing import Generator, Callable
|
|
|
24
24
|
from ..selection import FaceSelection
|
|
25
25
|
from typing import Literal
|
|
26
26
|
from functools import reduce
|
|
27
|
+
from loguru import logger
|
|
27
28
|
|
|
28
29
|
|
|
29
30
|
def _discretize_curve(xfunc: Callable, yfunc: Callable,
|
|
@@ -362,10 +363,20 @@ class XYPolygon:
|
|
|
362
363
|
self._check()
|
|
363
364
|
|
|
364
365
|
ptags = []
|
|
366
|
+
|
|
365
367
|
xg, yg, zg = cs.in_global_cs(self.x, self.y, 0*self.x)
|
|
366
368
|
|
|
367
369
|
points = dict()
|
|
368
370
|
for x,y,z in zip(xg, yg, zg):
|
|
371
|
+
reuse = False
|
|
372
|
+
for key, (px, py, pz) in points.items():
|
|
373
|
+
if ((x-px)**2 + (y-py)**2 + (z-pz)**2)**0.5 < 1e-12:
|
|
374
|
+
ptags.append(key)
|
|
375
|
+
reuse = True
|
|
376
|
+
break
|
|
377
|
+
if reuse:
|
|
378
|
+
logger.warning(f'Reusing {ptags[-1]}')
|
|
379
|
+
continue
|
|
369
380
|
ptag = gmsh.model.occ.add_point(x,y,z)
|
|
370
381
|
points[ptag] = (x,y,z)
|
|
371
382
|
ptags.append(ptag)
|
emerge/_emerge/simmodel.py
CHANGED
|
@@ -241,6 +241,7 @@ class Simulation:
|
|
|
241
241
|
logger.trace('Storing geometries in data.sim')
|
|
242
242
|
self.data.sim['geos'] = {geo.name: geo for geo in _GEOMANAGER.all_geometries()}
|
|
243
243
|
self.data.sim['mesh'] = self.mesh
|
|
244
|
+
self.data.sim.entries.append(self.data.sim.stock)
|
|
244
245
|
############################################################
|
|
245
246
|
# PUBLIC FUNCTIONS #
|
|
246
247
|
############################################################
|
|
@@ -518,6 +519,7 @@ class Simulation:
|
|
|
518
519
|
else:
|
|
519
520
|
geometries_parsed = unpack_lists(geometries + tuple([item for item in self.data.sim.default.values() if isinstance(item, GeoObject)]))
|
|
520
521
|
logger.trace(f'Parsed geometries = {geometries_parsed}')
|
|
522
|
+
|
|
521
523
|
self._save_geometries()
|
|
522
524
|
|
|
523
525
|
self.mesher.submit_objects(geometries_parsed)
|
emerge/_emerge/solver.py
CHANGED
|
@@ -95,6 +95,10 @@ class SolveReport:
|
|
|
95
95
|
for key, value in kwargs.items():
|
|
96
96
|
self.aux[key] = str(value)
|
|
97
97
|
|
|
98
|
+
@property
|
|
99
|
+
def mdof(self) -> float:
|
|
100
|
+
return (self.ndof**2)/((self.simtime+1e-6)*1e6)
|
|
101
|
+
|
|
98
102
|
def logprint(self, print_cal: Callable | None = None):
|
|
99
103
|
if print_cal is None:
|
|
100
104
|
print_cal = print
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: emerge
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.5
|
|
4
4
|
Summary: An open source EM FEM simulator in Python
|
|
5
5
|
Project-URL: Homepage, https://github.com/FennisRobert/EMerge
|
|
6
6
|
Project-URL: Issues, https://github.com/FennisRobert/EMerge/issues
|
|
@@ -32,7 +32,7 @@ Hello everybody. Thanks for showing interest in this repository.
|
|
|
32
32
|
Feel free to download your version of EMerge and start playing around with it!
|
|
33
33
|
If you have suggestions/changes/questions either use the Github issue system or join the Discord using the following link:
|
|
34
34
|
|
|
35
|
-
**https://discord.gg/
|
|
35
|
+
**[Discord Invitation](https://discord.gg/VMftDCZcNz)**
|
|
36
36
|
|
|
37
37
|
## How to install
|
|
38
38
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
emerge/__init__.py,sha256=
|
|
1
|
+
emerge/__init__.py,sha256=F-k_d_Y9IKWo7DzANY_2dTgpkz0EKV6L8Kpl8eLoFr8,3122
|
|
2
2
|
emerge/__main__.py,sha256=WVf16sfrOI910QWohrQDaChZdRifMNoS6VKzCT6f3ZA,92
|
|
3
3
|
emerge/cli.py,sha256=NU1uhwuZ6i50680v3_I4kDZPTHqz74gOYK71UBhb8oE,666
|
|
4
4
|
emerge/ext.py,sha256=IBoHH5PQFj5pYMfp6r-uMpNNgbSe8c0g9x8qjBzzVmU,223
|
|
@@ -24,9 +24,9 @@ emerge/_emerge/periodic.py,sha256=dUuWqjlDR8mHtQR3ecINP2FFjJJ0cKg0blOVZ0PCcAo,12
|
|
|
24
24
|
emerge/_emerge/plot.py,sha256=cf1I9mj7EIUJcq8vmANlUkqoV6QqVaJaP-zlC-T9E18,8041
|
|
25
25
|
emerge/_emerge/selection.py,sha256=ltT8ubMFG3-sFrAh7K7iAgSoBt3r25B02ShzMlOGSXQ,21527
|
|
26
26
|
emerge/_emerge/settings.py,sha256=wZFMzQSnMEEJptatu--67El1L0I_YEv9S8QjqI69bfs,265
|
|
27
|
-
emerge/_emerge/simmodel.py,sha256=
|
|
27
|
+
emerge/_emerge/simmodel.py,sha256=460el1k0gCj8Bt9MMoZMBUXx4YftaTrOvXP0Epmj-Dg,26525
|
|
28
28
|
emerge/_emerge/simulation_data.py,sha256=23o-xbm6Q6s9sYisyK9u1GTmuaXRl0WDGQwzPO7lkr0,15115
|
|
29
|
-
emerge/_emerge/solver.py,sha256=
|
|
29
|
+
emerge/_emerge/solver.py,sha256=z3d0UTFjMkOPlyRi8gOASigKlJ9-1MWsGZfAhGk1xr0,51573
|
|
30
30
|
emerge/_emerge/system.py,sha256=p4HNz7d_LMRNE9Gk75vVdFecDH2iN_groAM9u-yQTpk,1618
|
|
31
31
|
emerge/_emerge/elements/__init__.py,sha256=I3n9aic6lJW-oGeqTEZ-Fpxvyl2i-WqsHdnrM3v1oB8,799
|
|
32
32
|
emerge/_emerge/elements/femdata.py,sha256=ZSB7dICyU3GOWbxpuowBc-Khh2mpXa02ZfMkHwdDol4,8377
|
|
@@ -37,10 +37,10 @@ emerge/_emerge/elements/nedleg2.py,sha256=1SA6AvnbChhU2iodS1PVMUdbSn9wF2XKam12WT
|
|
|
37
37
|
emerge/_emerge/geo/__init__.py,sha256=yTeuT4Oexrsdkr7MxRLeTHEY5iP4IHsWeCvit57fK5g,1161
|
|
38
38
|
emerge/_emerge/geo/horn.py,sha256=otrtPphO2zoRaSOb7NV-iRaydL1uWDAl2xJ6-8Sef24,4148
|
|
39
39
|
emerge/_emerge/geo/modeler.py,sha256=_PMz3lFSa7FmJHWdY-4U1Sqbed-Egy85S_AdjlCldC4,15572
|
|
40
|
-
emerge/_emerge/geo/operations.py,sha256=
|
|
40
|
+
emerge/_emerge/geo/operations.py,sha256=WYWfOXWrT0voeKW9U26g-PhQfqJl3ovRQ8uDQXUr7Nc,12459
|
|
41
41
|
emerge/_emerge/geo/pcb.py,sha256=Mzn7Lho18Xc7A-XShfWZK9Kop4xlLYONMeRhtKkETJU,57577
|
|
42
42
|
emerge/_emerge/geo/pmlbox.py,sha256=gaIG_AoZNQnIyJ8C7x64U-Hw5dsmllWMiZDAH4iRoM0,8784
|
|
43
|
-
emerge/_emerge/geo/polybased.py,sha256=
|
|
43
|
+
emerge/_emerge/geo/polybased.py,sha256=plDHB-67i9tjFc9Ktiq92MOX9mfaxjvFrBYIumR-Pmg,32441
|
|
44
44
|
emerge/_emerge/geo/shapes.py,sha256=LPprT9vR7p6TqSBVKS6eG8P3iYWO7_yC7LNUYw5B8Sk,24196
|
|
45
45
|
emerge/_emerge/geo/step.py,sha256=XcAiEN8W4umNmZdYmrGHX_aJUuiMgc6vgT-UIk8Gbqc,2689
|
|
46
46
|
emerge/_emerge/geo/pcb_tools/calculator.py,sha256=VbMP2xC9i7OFwtqnnwfYgyJSEcJIjr2VIy_Ez1hYqlU,859
|
|
@@ -88,8 +88,8 @@ emerge/beta/dxf.py,sha256=Bw4lVk0TquOgCxTZV23BZN7PrgqxBrMZxbHV1waC5U0,50
|
|
|
88
88
|
emerge/materials/__init__.py,sha256=Z9tu3m_nqj6F9I-FwoVoN0vCTYUlFesH3KxJ38wkZck,19
|
|
89
89
|
emerge/materials/isola.py,sha256=kSDxHJZVn2CcanoUjlwRVKIPvadRbBybURTdIHWx728,18660
|
|
90
90
|
emerge/materials/rogers.py,sha256=4u6ma_XQdXGKWE3WsFkaMTamCQNo9kTYSTU8S1gCAYU,3388
|
|
91
|
-
emerge-1.0.
|
|
92
|
-
emerge-1.0.
|
|
93
|
-
emerge-1.0.
|
|
94
|
-
emerge-1.0.
|
|
95
|
-
emerge-1.0.
|
|
91
|
+
emerge-1.0.5.dist-info/METADATA,sha256=m6vQVIQM-DWznyMQVEOpllXUdsAjbqp-diEb_qgOOrg,3306
|
|
92
|
+
emerge-1.0.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
93
|
+
emerge-1.0.5.dist-info/entry_points.txt,sha256=8rFvAXticpKg4OTC8JEvAksnduW72KIEskCGG9XnFf8,43
|
|
94
|
+
emerge-1.0.5.dist-info/licenses/LICENSE,sha256=VOCXWddrjMN5j7TvnSAOh1Dx7jkugdwq9Lqhycf5inc,17852
|
|
95
|
+
emerge-1.0.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|