emerge 1.0.2__py3-none-any.whl → 1.0.4__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 +7 -3
- emerge/_emerge/elements/femdata.py +5 -1
- emerge/_emerge/elements/ned2_interp.py +73 -30
- emerge/_emerge/elements/nedelec2.py +1 -0
- emerge/_emerge/emerge_update.py +63 -0
- emerge/_emerge/geo/operations.py +2 -1
- emerge/_emerge/geo/polybased.py +26 -5
- emerge/_emerge/geometry.py +5 -0
- emerge/_emerge/logsettings.py +26 -1
- emerge/_emerge/material.py +29 -8
- emerge/_emerge/mesh3d.py +16 -13
- emerge/_emerge/mesher.py +70 -3
- emerge/_emerge/physics/microwave/assembly/assembler.py +5 -4
- emerge/_emerge/physics/microwave/assembly/curlcurl.py +0 -1
- emerge/_emerge/physics/microwave/assembly/generalized_eigen.py +1 -2
- emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py +1 -1
- emerge/_emerge/physics/microwave/assembly/robin_abc_order2.py +0 -1
- emerge/_emerge/physics/microwave/microwave_3d.py +37 -16
- emerge/_emerge/physics/microwave/microwave_bc.py +15 -4
- emerge/_emerge/physics/microwave/microwave_data.py +14 -11
- emerge/_emerge/plot/pyvista/cmap_maker.py +70 -0
- emerge/_emerge/plot/pyvista/display.py +101 -37
- emerge/_emerge/simmodel.py +75 -21
- emerge/_emerge/simulation_data.py +22 -4
- emerge/_emerge/solver.py +78 -51
- {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/METADATA +2 -3
- {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/RECORD +30 -28
- {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/WHEEL +0 -0
- {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/entry_points.txt +0 -0
- {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/licenses/LICENSE +0 -0
emerge/_emerge/solver.py
CHANGED
|
@@ -29,10 +29,6 @@ import platform
|
|
|
29
29
|
import time
|
|
30
30
|
from typing import Literal, Callable
|
|
31
31
|
from enum import Enum
|
|
32
|
-
import importlib.util
|
|
33
|
-
|
|
34
|
-
def module_exists(name: str) -> bool:
|
|
35
|
-
return importlib.util.find_spec(name) is not None
|
|
36
32
|
|
|
37
33
|
_PARDISO_AVAILABLE = False
|
|
38
34
|
_UMFPACK_AVAILABLE = False
|
|
@@ -56,26 +52,26 @@ if 'arm' not in platform.processor():
|
|
|
56
52
|
# UMFPACK #
|
|
57
53
|
############################################################
|
|
58
54
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
55
|
+
|
|
56
|
+
try:
|
|
57
|
+
import scikits.umfpack as um # type: ignore
|
|
58
|
+
_UMFPACK_AVAILABLE = True
|
|
59
|
+
except ModuleNotFoundError:
|
|
60
|
+
logger.debug('UMFPACK not found, defaulting to SuperLU')
|
|
65
61
|
|
|
66
62
|
############################################################
|
|
67
63
|
# CUDSS #
|
|
68
64
|
############################################################
|
|
69
65
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
66
|
+
|
|
67
|
+
try:
|
|
68
|
+
from .solve_interfaces.cudss_interface import CuDSSInterface
|
|
69
|
+
_CUDSS_AVAILABLE = True
|
|
70
|
+
except ModuleNotFoundError:
|
|
71
|
+
pass
|
|
72
|
+
except ImportError as e:
|
|
73
|
+
logger.error('Error while importing CuDSS dependencies:')
|
|
74
|
+
logger.exception(e)
|
|
79
75
|
|
|
80
76
|
############################################################
|
|
81
77
|
# SOLVE REPORT #
|
|
@@ -99,7 +95,40 @@ class SolveReport:
|
|
|
99
95
|
for key, value in kwargs.items():
|
|
100
96
|
self.aux[key] = str(value)
|
|
101
97
|
|
|
98
|
+
def logprint(self, print_cal: Callable | None = None):
|
|
99
|
+
if print_cal is None:
|
|
100
|
+
print_cal = print
|
|
101
|
+
|
|
102
|
+
def fmt(key, val):
|
|
103
|
+
return f"{key}={val:.4f}" if isinstance(val, float) else f"{key}={val}"
|
|
104
|
+
|
|
105
|
+
parts = []
|
|
106
|
+
parts.append(fmt("Solver", self.solver))
|
|
107
|
+
parts.append(fmt("Sorter", self.sorter))
|
|
108
|
+
parts.append(fmt("Precon", self.precon))
|
|
109
|
+
parts.append(fmt("JobID", self.jobid))
|
|
110
|
+
parts.append(fmt("SimTime[s]", self.simtime))
|
|
111
|
+
parts.append(fmt("DOFsTot", self.ndof))
|
|
112
|
+
parts.append(fmt("NNZTot", self.nnz))
|
|
113
|
+
parts.append(fmt("DOFsSolve", self.ndof_solve))
|
|
114
|
+
parts.append(fmt("NNZSolve", self.nnz_solve))
|
|
115
|
+
parts.append(fmt("Exit", self.exit_code))
|
|
116
|
+
|
|
117
|
+
if self.aux:
|
|
118
|
+
for k, v in self.aux.items():
|
|
119
|
+
parts.append(fmt(str(k), v))
|
|
120
|
+
|
|
121
|
+
# Group into multiple lines (6 items per line for readability)
|
|
122
|
+
print_cal(f"FEM Report [JobID={self.jobid}]")
|
|
123
|
+
for i in range(0, len(parts), 6):
|
|
124
|
+
print_cal(" " + ", ".join(parts[i:i+6]))
|
|
125
|
+
|
|
102
126
|
def pretty_print(self, print_cal: Callable | None = None):
|
|
127
|
+
"""Print the solve report in the terminal in a table format
|
|
128
|
+
|
|
129
|
+
Args:
|
|
130
|
+
print_cal (Callable | None, optional): _description_. Defaults to None.
|
|
131
|
+
"""
|
|
103
132
|
if print_cal is None:
|
|
104
133
|
print_cal = print
|
|
105
134
|
# Set column widths
|
|
@@ -627,7 +656,7 @@ class SolverPardiso(Solver):
|
|
|
627
656
|
return x, SolveReport(solver=str(self), exit_code=error, aux=aux)
|
|
628
657
|
|
|
629
658
|
|
|
630
|
-
class
|
|
659
|
+
class SolverCuDSS(Solver):
|
|
631
660
|
real_only = False
|
|
632
661
|
def __init__(self):
|
|
633
662
|
super().__init__()
|
|
@@ -842,34 +871,31 @@ class EMSolver(Enum):
|
|
|
842
871
|
SMART_ARPACK_BMA = 7
|
|
843
872
|
CUDSS = 8
|
|
844
873
|
|
|
845
|
-
def
|
|
846
|
-
if self==EMSolver.
|
|
847
|
-
return
|
|
848
|
-
elif self==EMSolver.
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
elif self==EMSolver.PARDISO:
|
|
854
|
-
if _PARDISO_AVAILABLE is False:
|
|
855
|
-
return None
|
|
856
|
-
else:
|
|
857
|
-
return SolverPardiso()
|
|
858
|
-
elif self==EMSolver.LAPACK:
|
|
859
|
-
return SolverLAPACK()
|
|
860
|
-
elif self==EMSolver.ARPACK:
|
|
861
|
-
return SolverARPACK()
|
|
862
|
-
elif self==EMSolver.SMART_ARPACK:
|
|
863
|
-
return SmartARPACK()
|
|
864
|
-
elif self==EMSolver.SMART_ARPACK_BMA:
|
|
865
|
-
return SmartARPACK_BMA()
|
|
866
|
-
elif self==EMSolver.CUDSS:
|
|
867
|
-
if _CUDSS_AVAILABLE is False:
|
|
868
|
-
return None
|
|
869
|
-
else:
|
|
870
|
-
return CuDSSSolver()
|
|
871
|
-
raise ValueError(f'An unsupported Enum case has been reached: {self}')
|
|
874
|
+
def create_solver(self) -> Solver | EigSolver | None:
|
|
875
|
+
if self==EMSolver.UMFPACK and not _UMFPACK_AVAILABLE:
|
|
876
|
+
return None
|
|
877
|
+
elif self==EMSolver.PARDISO and not _PARDISO_AVAILABLE:
|
|
878
|
+
return None
|
|
879
|
+
if self==EMSolver.CUDSS and not _CUDSS_AVAILABLE:
|
|
880
|
+
return None
|
|
881
|
+
return self._clss()
|
|
872
882
|
|
|
883
|
+
@property
|
|
884
|
+
def _clss(self) -> type[Solver]:
|
|
885
|
+
mapper = {1: SolverSuperLU,
|
|
886
|
+
2: SolverUMFPACK,
|
|
887
|
+
3: SolverPardiso,
|
|
888
|
+
4: SolverLAPACK,
|
|
889
|
+
5: SolverARPACK,
|
|
890
|
+
6: SmartARPACK,
|
|
891
|
+
7: SmartARPACK_BMA,
|
|
892
|
+
8: SolverCuDSS
|
|
893
|
+
|
|
894
|
+
}
|
|
895
|
+
return mapper.get(self.value, None)
|
|
896
|
+
|
|
897
|
+
def istype(self, solver: Solver) -> bool:
|
|
898
|
+
return isinstance(solver, self._clss)
|
|
873
899
|
############################################################
|
|
874
900
|
# SOLVE ROUTINE #
|
|
875
901
|
############################################################
|
|
@@ -885,7 +911,7 @@ class SolveRoutine:
|
|
|
885
911
|
|
|
886
912
|
self.sorter: Sorter = ReverseCuthillMckee()
|
|
887
913
|
self.precon: Preconditioner = ILUPrecon()
|
|
888
|
-
self.solvers: dict[EMSolver, Solver | EigSolver] = {slv: slv.
|
|
914
|
+
self.solvers: dict[EMSolver, Solver | EigSolver] = {slv: slv.create_solver() for slv in EMSolver}
|
|
889
915
|
self.solvers = {key: solver for key, solver in self.solvers.items() if solver is not None}
|
|
890
916
|
|
|
891
917
|
self.parallel: Literal['SI','MT','MP'] = 'SI'
|
|
@@ -925,7 +951,6 @@ class SolveRoutine:
|
|
|
925
951
|
@property
|
|
926
952
|
def all_eig_solvers(self) -> list[EigSolver]:
|
|
927
953
|
return list([solver for solver in self.solvers.values() if isinstance(solver, EigSolver)])
|
|
928
|
-
|
|
929
954
|
|
|
930
955
|
def _try_solver(self, solver_type: EMSolver) -> Solver:
|
|
931
956
|
"""Try to use the selected solver or else find another one that is working.
|
|
@@ -971,7 +996,7 @@ class SolveRoutine:
|
|
|
971
996
|
"""
|
|
972
997
|
for solver in solvers:
|
|
973
998
|
if isinstance(solver, EMSolver):
|
|
974
|
-
self.forced_solver.append(solver
|
|
999
|
+
self.forced_solver.append(self.solvers[solver])
|
|
975
1000
|
else:
|
|
976
1001
|
self.forced_solver.append(solver)
|
|
977
1002
|
|
|
@@ -984,7 +1009,7 @@ class SolveRoutine:
|
|
|
984
1009
|
"""
|
|
985
1010
|
for solver in solvers:
|
|
986
1011
|
if isinstance(solver, EMSolver):
|
|
987
|
-
self.disabled_solver.append(solver.
|
|
1012
|
+
self.disabled_solver.append(solver.create_solver().__class__)
|
|
988
1013
|
else:
|
|
989
1014
|
self.disabled_solver.append(solver.__class__)
|
|
990
1015
|
|
|
@@ -1047,6 +1072,8 @@ class SolveRoutine:
|
|
|
1047
1072
|
|
|
1048
1073
|
"""
|
|
1049
1074
|
for solver in self.forced_solver:
|
|
1075
|
+
if solver is None:
|
|
1076
|
+
continue
|
|
1050
1077
|
if not self._legal_solver(solver):
|
|
1051
1078
|
continue
|
|
1052
1079
|
if isinstance(solver, Solver):
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: emerge
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
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
|
|
7
7
|
License-File: LICENSE
|
|
8
8
|
Requires-Python: <4.0,>=3.10
|
|
9
|
-
Requires-Dist: cloudpickle>=3.1.1
|
|
10
9
|
Requires-Dist: gmsh<4.14.0,>=4.13.0
|
|
11
10
|
Requires-Dist: joblib>=1.5.1
|
|
12
11
|
Requires-Dist: loguru>=0.7.3
|
|
@@ -33,7 +32,7 @@ Hello everybody. Thanks for showing interest in this repository.
|
|
|
33
32
|
Feel free to download your version of EMerge and start playing around with it!
|
|
34
33
|
If you have suggestions/changes/questions either use the Github issue system or join the Discord using the following link:
|
|
35
34
|
|
|
36
|
-
**https://discord.gg/
|
|
35
|
+
**https://discord.gg/uArxywnz**
|
|
37
36
|
|
|
38
37
|
## How to install
|
|
39
38
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
emerge/__init__.py,sha256=
|
|
1
|
+
emerge/__init__.py,sha256=hgaavnd2z2brL5QWk8XSNpqE3GDT54YHyQ9eeLgcCdA,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
|
|
@@ -12,34 +12,35 @@ emerge/_emerge/const.py,sha256=PTZZTSDOP5NsZ8XnJrKTY2P0tPUhmutBJ1yrm-t7xsI,129
|
|
|
12
12
|
emerge/_emerge/coord.py,sha256=BKvyrcnHY-_bgHqysnByy5k9_DK4VVfr9KKkRaawG2E,4371
|
|
13
13
|
emerge/_emerge/cs.py,sha256=gULfov6s0jODOdQkH6NmGBbG5wvny1-bJU8fdAlpCHo,19730
|
|
14
14
|
emerge/_emerge/dataset.py,sha256=UcSAJ_siLrOjNBBWRWsS3GUZUpayp63EM6pP6ClwKDI,1534
|
|
15
|
+
emerge/_emerge/emerge_update.py,sha256=0G91xr7k7Me5gOlk3pXbKWe-6ALXtoCJ5syTa1Y5Bhw,2042
|
|
15
16
|
emerge/_emerge/geo2d.py,sha256=e_HkX1GQ2iYrdO0zeEgzVOzfGyU1WGJyjeGBAobOttE,3323
|
|
16
|
-
emerge/_emerge/geometry.py,sha256
|
|
17
|
+
emerge/_emerge/geometry.py,sha256=-QLLDyYXCXfZW01aKwW8IfkvtAr5PVjsM4r-xtEbOzY,24677
|
|
17
18
|
emerge/_emerge/howto.py,sha256=c4UxUNpA1tygr3OoR-LH-h0UZv-Tf9K8tpCiAU18BKE,8173
|
|
18
|
-
emerge/_emerge/logsettings.py,sha256=
|
|
19
|
-
emerge/_emerge/material.py,sha256=
|
|
20
|
-
emerge/_emerge/mesh3d.py,sha256=
|
|
21
|
-
emerge/_emerge/mesher.py,sha256=
|
|
19
|
+
emerge/_emerge/logsettings.py,sha256=OpsH_1dQAdZry_as8y0OQt4yKP_AMFfQG2d5Nz5yywg,4789
|
|
20
|
+
emerge/_emerge/material.py,sha256=q6dhtfxPfy1PbCRjG7-jOimR5dVE6vf1kyfpBdoYrK4,16038
|
|
21
|
+
emerge/_emerge/mesh3d.py,sha256=6NWTqJVwyaOhFKQgNghkH3zgrYFWbI0qAEBpvq-JOwI,35790
|
|
22
|
+
emerge/_emerge/mesher.py,sha256=64hMTe2sSQgytnf8ryXUH8PIkUOsV5KJEXpibgJOhSg,16052
|
|
22
23
|
emerge/_emerge/periodic.py,sha256=dUuWqjlDR8mHtQR3ecINP2FFjJJ0cKg0blOVZ0PCcAo,12087
|
|
23
24
|
emerge/_emerge/plot.py,sha256=cf1I9mj7EIUJcq8vmANlUkqoV6QqVaJaP-zlC-T9E18,8041
|
|
24
25
|
emerge/_emerge/selection.py,sha256=ltT8ubMFG3-sFrAh7K7iAgSoBt3r25B02ShzMlOGSXQ,21527
|
|
25
26
|
emerge/_emerge/settings.py,sha256=wZFMzQSnMEEJptatu--67El1L0I_YEv9S8QjqI69bfs,265
|
|
26
|
-
emerge/_emerge/simmodel.py,sha256=
|
|
27
|
-
emerge/_emerge/simulation_data.py,sha256=
|
|
28
|
-
emerge/_emerge/solver.py,sha256=
|
|
27
|
+
emerge/_emerge/simmodel.py,sha256=8p82_R_hFAd1gOaLn6kaeFyQGJAQKjE04iZethx3V_o,26458
|
|
28
|
+
emerge/_emerge/simulation_data.py,sha256=23o-xbm6Q6s9sYisyK9u1GTmuaXRl0WDGQwzPO7lkr0,15115
|
|
29
|
+
emerge/_emerge/solver.py,sha256=Li8CYXuK-B-iXZ2z9SD-g8xJs0t86CtJsT3_7BxqKgE,51469
|
|
29
30
|
emerge/_emerge/system.py,sha256=p4HNz7d_LMRNE9Gk75vVdFecDH2iN_groAM9u-yQTpk,1618
|
|
30
31
|
emerge/_emerge/elements/__init__.py,sha256=I3n9aic6lJW-oGeqTEZ-Fpxvyl2i-WqsHdnrM3v1oB8,799
|
|
31
|
-
emerge/_emerge/elements/femdata.py,sha256=
|
|
32
|
+
emerge/_emerge/elements/femdata.py,sha256=ZSB7dICyU3GOWbxpuowBc-Khh2mpXa02ZfMkHwdDol4,8377
|
|
32
33
|
emerge/_emerge/elements/index_interp.py,sha256=02CTHaokaAepBRvt7cHVwh3EpOA3sVE3qvEAkDjmwro,2072
|
|
33
|
-
emerge/_emerge/elements/ned2_interp.py,sha256=
|
|
34
|
-
emerge/_emerge/elements/nedelec2.py,sha256=
|
|
34
|
+
emerge/_emerge/elements/ned2_interp.py,sha256=BGRdJGXCcDdqMBf3pOvc_-m-vngRI1VvE5MUsqqf9Cw,27981
|
|
35
|
+
emerge/_emerge/elements/nedelec2.py,sha256=OssFCnPp7wkMBcUISGvTgT94jayfGOmX0x-RctIYSuI,6645
|
|
35
36
|
emerge/_emerge/elements/nedleg2.py,sha256=1SA6AvnbChhU2iodS1PVMUdbSn9wF2XKam12WTBDtsw,9049
|
|
36
37
|
emerge/_emerge/geo/__init__.py,sha256=yTeuT4Oexrsdkr7MxRLeTHEY5iP4IHsWeCvit57fK5g,1161
|
|
37
38
|
emerge/_emerge/geo/horn.py,sha256=otrtPphO2zoRaSOb7NV-iRaydL1uWDAl2xJ6-8Sef24,4148
|
|
38
39
|
emerge/_emerge/geo/modeler.py,sha256=_PMz3lFSa7FmJHWdY-4U1Sqbed-Egy85S_AdjlCldC4,15572
|
|
39
|
-
emerge/_emerge/geo/operations.py,sha256=
|
|
40
|
+
emerge/_emerge/geo/operations.py,sha256=cKQfVjN0Qt9tj91w7zevm7EKsYPxcD8TRFCeQMQZFwY,12446
|
|
40
41
|
emerge/_emerge/geo/pcb.py,sha256=Mzn7Lho18Xc7A-XShfWZK9Kop4xlLYONMeRhtKkETJU,57577
|
|
41
42
|
emerge/_emerge/geo/pmlbox.py,sha256=gaIG_AoZNQnIyJ8C7x64U-Hw5dsmllWMiZDAH4iRoM0,8784
|
|
42
|
-
emerge/_emerge/geo/polybased.py,sha256=
|
|
43
|
+
emerge/_emerge/geo/polybased.py,sha256=G4oJG7I7oZ69PKiQVoAOPSNAWnjhuYUDdqibZhUdiv4,32059
|
|
43
44
|
emerge/_emerge/geo/shapes.py,sha256=LPprT9vR7p6TqSBVKS6eG8P3iYWO7_yC7LNUYw5B8Sk,24196
|
|
44
45
|
emerge/_emerge/geo/step.py,sha256=XcAiEN8W4umNmZdYmrGHX_aJUuiMgc6vgT-UIk8Gbqc,2689
|
|
45
46
|
emerge/_emerge/geo/pcb_tools/calculator.py,sha256=VbMP2xC9i7OFwtqnnwfYgyJSEcJIjr2VIy_Ez1hYqlU,859
|
|
@@ -53,28 +54,29 @@ emerge/_emerge/mth/pairing.py,sha256=i8bBvTeMmzgF0JdiDNJiTXxx913x4f10777pzD6FJo0
|
|
|
53
54
|
emerge/_emerge/physics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
55
|
emerge/_emerge/physics/microwave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
56
|
emerge/_emerge/physics/microwave/adaptive_freq.py,sha256=aWhijhCVAbnuwkru-I1AaRdY20uyozf6OWRIh9r2ijg,9786
|
|
56
|
-
emerge/_emerge/physics/microwave/microwave_3d.py,sha256=
|
|
57
|
-
emerge/_emerge/physics/microwave/microwave_bc.py,sha256=
|
|
58
|
-
emerge/_emerge/physics/microwave/microwave_data.py,sha256=
|
|
57
|
+
emerge/_emerge/physics/microwave/microwave_3d.py,sha256=FYUczByjAVTR3F15B2S1u7KPbYv4oABEqcj-uxemlGY,44396
|
|
58
|
+
emerge/_emerge/physics/microwave/microwave_bc.py,sha256=n8lO-jUCKyQfsXVTWgFASxa3EcoFYz5uKXm-WiDKvIY,43655
|
|
59
|
+
emerge/_emerge/physics/microwave/microwave_data.py,sha256=CwFg7lukrN5KrgCo-kZT6jSwqbU3I2xC5Xo621zm2Rk,49639
|
|
59
60
|
emerge/_emerge/physics/microwave/periodic.py,sha256=wYSUgLFVtCLqSG3EDKoCDRU93iPUzBdXzVRdHTRmbpI,3000
|
|
60
61
|
emerge/_emerge/physics/microwave/port_functions.py,sha256=d-W1D-7P05MfXdOs7WlhPi_RqlSpC0HkYU6yl3GrxgE,2173
|
|
61
62
|
emerge/_emerge/physics/microwave/sc.py,sha256=WZvoPhmHkfEv619RhmN09sXDBV0ryTqybwErA8Rc7lU,4735
|
|
62
63
|
emerge/_emerge/physics/microwave/simjob.py,sha256=aCWCs7IXBfVBWWYhwyHvXSRHY3FOd3CK5ABcaFEsNnM,4927
|
|
63
64
|
emerge/_emerge/physics/microwave/sparam.py,sha256=1SXGyr1UsrPnCIi4ffwobM4pzgkj50y4LrWCr_J5IRY,4946
|
|
64
65
|
emerge/_emerge/physics/microwave/touchstone.py,sha256=pMcCOLWVqIKctcShcJxyaV-0rhRWXMSS1Jz14dVQEyY,5799
|
|
65
|
-
emerge/_emerge/physics/microwave/assembly/assembler.py,sha256=
|
|
66
|
-
emerge/_emerge/physics/microwave/assembly/curlcurl.py,sha256=
|
|
67
|
-
emerge/_emerge/physics/microwave/assembly/generalized_eigen.py,sha256=
|
|
68
|
-
emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py,sha256=
|
|
66
|
+
emerge/_emerge/physics/microwave/assembly/assembler.py,sha256=cHmWu5NOCPXbXPK1BkiHAUSvVOYs6aP-44GF7RuRTXA,23926
|
|
67
|
+
emerge/_emerge/physics/microwave/assembly/curlcurl.py,sha256=ksK7CcRrix2FMTXwV5SCVKcRcyfih39qhR6brqmt7ds,18663
|
|
68
|
+
emerge/_emerge/physics/microwave/assembly/generalized_eigen.py,sha256=7jNU_hWd7q-ni53wmlhB5kmyJxp2xsx_WyBXZ6hPwo0,16907
|
|
69
|
+
emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py,sha256=tGf9EOzmp-dqtTodwYzcswuT_eLeZRtgdAZvgPz9QJo,17340
|
|
69
70
|
emerge/_emerge/physics/microwave/assembly/periodicbc.py,sha256=N64uGx49Qs0PJxi_EH5pLx0zcrgJxqMy6DI1TqVXfmQ,4645
|
|
70
|
-
emerge/_emerge/physics/microwave/assembly/robin_abc_order2.py,sha256=
|
|
71
|
+
emerge/_emerge/physics/microwave/assembly/robin_abc_order2.py,sha256=HRGe6ezRVfcNak3pjiGkQfX5dj57xJyNMMGi1OWM528,13449
|
|
71
72
|
emerge/_emerge/physics/microwave/assembly/robinbc.py,sha256=uaaxlw7Vh-6ni5Gaz07WzpUsRvZ0hAru9E2wnNPp_fY,17614
|
|
72
73
|
emerge/_emerge/plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
74
|
emerge/_emerge/plot/display.py,sha256=TQLlKb-LkaG5ZOSLfxp9KXPlZPRFTxNj1LhVQ-Lp1-s,18476
|
|
74
75
|
emerge/_emerge/plot/simple_plots.py,sha256=szIpmQmO8o6ubzB_E3zTJfEx16mJ3-OXrMYdD_wjAcs,25256
|
|
75
76
|
emerge/_emerge/plot/matplotlib/mpldisplay.py,sha256=e8V6EhGdCW7nRkSFvjHCcRO5uR-FcD0yHQ1nxPQCbp4,8674
|
|
76
77
|
emerge/_emerge/plot/pyvista/__init__.py,sha256=CPclatEu6mFnJZzCQk09g6T6Fh20WTbiLAJGSwAnPXU,30
|
|
77
|
-
emerge/_emerge/plot/pyvista/
|
|
78
|
+
emerge/_emerge/plot/pyvista/cmap_maker.py,sha256=_GVXYdtXpJwAO9O-Iekjzn6YcR0MVT8LNh12nqvF2IA,2498
|
|
79
|
+
emerge/_emerge/plot/pyvista/display.py,sha256=IemCSptqlO7EfUZnLNetGiVxn0CgLD8qJ5B9SNTxCOo,41704
|
|
78
80
|
emerge/_emerge/plot/pyvista/display_settings.py,sha256=gV5hjRGEAl3oQeBPobas6b6JzYfMFrXIGtVSaeml4N0,1074
|
|
79
81
|
emerge/_emerge/projects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
82
|
emerge/_emerge/projects/_gen_base.txt,sha256=DqQz36PZg6v1ovQjHvPjd0t4AIbmikZdb9dmrNYsK3w,598
|
|
@@ -86,8 +88,8 @@ emerge/beta/dxf.py,sha256=Bw4lVk0TquOgCxTZV23BZN7PrgqxBrMZxbHV1waC5U0,50
|
|
|
86
88
|
emerge/materials/__init__.py,sha256=Z9tu3m_nqj6F9I-FwoVoN0vCTYUlFesH3KxJ38wkZck,19
|
|
87
89
|
emerge/materials/isola.py,sha256=kSDxHJZVn2CcanoUjlwRVKIPvadRbBybURTdIHWx728,18660
|
|
88
90
|
emerge/materials/rogers.py,sha256=4u6ma_XQdXGKWE3WsFkaMTamCQNo9kTYSTU8S1gCAYU,3388
|
|
89
|
-
emerge-1.0.
|
|
90
|
-
emerge-1.0.
|
|
91
|
-
emerge-1.0.
|
|
92
|
-
emerge-1.0.
|
|
93
|
-
emerge-1.0.
|
|
91
|
+
emerge-1.0.4.dist-info/METADATA,sha256=AaEHuRZDRdnr-OyyDKli2libsKPtis2OmCRB33Uak-g,3282
|
|
92
|
+
emerge-1.0.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
93
|
+
emerge-1.0.4.dist-info/entry_points.txt,sha256=8rFvAXticpKg4OTC8JEvAksnduW72KIEskCGG9XnFf8,43
|
|
94
|
+
emerge-1.0.4.dist-info/licenses/LICENSE,sha256=VOCXWddrjMN5j7TvnSAOh1Dx7jkugdwq9Lqhycf5inc,17852
|
|
95
|
+
emerge-1.0.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|