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.

Files changed (30) hide show
  1. emerge/__init__.py +7 -3
  2. emerge/_emerge/elements/femdata.py +5 -1
  3. emerge/_emerge/elements/ned2_interp.py +73 -30
  4. emerge/_emerge/elements/nedelec2.py +1 -0
  5. emerge/_emerge/emerge_update.py +63 -0
  6. emerge/_emerge/geo/operations.py +2 -1
  7. emerge/_emerge/geo/polybased.py +26 -5
  8. emerge/_emerge/geometry.py +5 -0
  9. emerge/_emerge/logsettings.py +26 -1
  10. emerge/_emerge/material.py +29 -8
  11. emerge/_emerge/mesh3d.py +16 -13
  12. emerge/_emerge/mesher.py +70 -3
  13. emerge/_emerge/physics/microwave/assembly/assembler.py +5 -4
  14. emerge/_emerge/physics/microwave/assembly/curlcurl.py +0 -1
  15. emerge/_emerge/physics/microwave/assembly/generalized_eigen.py +1 -2
  16. emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py +1 -1
  17. emerge/_emerge/physics/microwave/assembly/robin_abc_order2.py +0 -1
  18. emerge/_emerge/physics/microwave/microwave_3d.py +37 -16
  19. emerge/_emerge/physics/microwave/microwave_bc.py +15 -4
  20. emerge/_emerge/physics/microwave/microwave_data.py +14 -11
  21. emerge/_emerge/plot/pyvista/cmap_maker.py +70 -0
  22. emerge/_emerge/plot/pyvista/display.py +101 -37
  23. emerge/_emerge/simmodel.py +75 -21
  24. emerge/_emerge/simulation_data.py +22 -4
  25. emerge/_emerge/solver.py +78 -51
  26. {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/METADATA +2 -3
  27. {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/RECORD +30 -28
  28. {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/WHEEL +0 -0
  29. {emerge-1.0.2.dist-info → emerge-1.0.4.dist-info}/entry_points.txt +0 -0
  30. {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
- if module_exists('scikits.umfpack'):
60
- try:
61
- import scikits.umfpack as um # type: ignore
62
- _UMFPACK_AVAILABLE = True
63
- except ModuleNotFoundError:
64
- logger.debug('UMFPACK not found, defaulting to SuperLU')
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
- if module_exists('cupy'):
71
- try:
72
- from .solve_interfaces.cudss_interface import CuDSSInterface
73
- _CUDSS_AVAILABLE = True
74
- except ModuleNotFoundError:
75
- pass
76
- except ImportError as e:
77
- logger.error('Error while importing CuDSS dependencies:')
78
- logger.exception(e)
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 CuDSSSolver(Solver):
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 get_solver(self) -> Solver | EigSolver | None:
846
- if self==EMSolver.SUPERLU:
847
- return SolverSuperLU()
848
- elif self==EMSolver.UMFPACK:
849
- if _UMFPACK_AVAILABLE is False:
850
- return None
851
- else:
852
- return SolverUMFPACK()
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.get_solver() for slv in EMSolver}
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.get_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.get_solver().__class__)
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.2
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/7PF4WcS6uA**
35
+ **https://discord.gg/uArxywnz**
37
36
 
38
37
  ## How to install
39
38
 
@@ -1,4 +1,4 @@
1
- emerge/__init__.py,sha256=Oseb-0WQ8-QmOEyxjarrrrCDl7D69_9P30pEqWVAbgY,2921
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=vkHt4glXl8U3UiPBrx-XTMBdQ0uNW0G3HTVyhIUrMZM,24490
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=s8UboFEtB0aIuLB2FSL2WIbw0_kB363iHNIy4uGQi7w,3711
19
- emerge/_emerge/material.py,sha256=X1CUrtaMh3oWU0NdLIXbknuSABsKtd4TpYKgW_dbvO8,15543
20
- emerge/_emerge/mesh3d.py,sha256=OQzR1yrbzH-ayRxegsMUzeEfJ8_fObW-99fe1zhhgn8,35597
21
- emerge/_emerge/mesher.py,sha256=fKgPb6oZe_bqp0XYfZ6UNgBfRaAS3-tjUtZX8NalJe8,13199
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=F7HfV1QXyigAlTKbw9qsZnAslBQ_sdy8K-gx_cwIP8k,24488
27
- emerge/_emerge/simulation_data.py,sha256=r9-9lpLeA1Z5HU3jDVOXV1H80GVawnXL5K81_dvmlE4,14506
28
- emerge/_emerge/solver.py,sha256=Zn_euSTlI8-1uM3hNDBq8YAhO-covk2ty-xmnQGaFC8,50517
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=hzwyxQE71Hzfwj-vYZoy2Ry2d0qL7cEvU1aaaHxBqxg,8093
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=TwZr6f7USERIHrSShhEWofq_mMwFV5xHqSIRLLiUz48,32650
34
- emerge/_emerge/elements/nedelec2.py,sha256=LFfrXlafjQJGETPzwDtF9wTgKRusLxfA0_VrMkzI2bA,6640
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=lqfCU99uiLc0vDGqILpMP1YgKs1e-gwEcSLbI_gE6TA,12441
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=g-dyR_58knyQK4q72dLZzAkquVCaZ_GhRcPy1a_veQE,31323
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=EZez0kKTSFWbgdDxm3Mv5Zgh3Lcd6Bi8mIv66SmghNw,43314
57
- emerge/_emerge/physics/microwave/microwave_bc.py,sha256=CWX03bkBqZ7GKDV4vcIfC-XGp5tGne5DdOPHk88ErMA,43281
58
- emerge/_emerge/physics/microwave/microwave_data.py,sha256=1p1EbHO1Bz8dYwQJhRlO08fA_2D-JGr1WH2dkd7at9c,49463
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=c0XdSpTsb55-nQm-lV8hradxtynx1IOCYAEghrJD3ic,23883
66
- emerge/_emerge/physics/microwave/assembly/curlcurl.py,sha256=iYHTNI48bmC6SjCiCMPoY4yqsf__e_h_vbW0fNKQpNQ,18686
67
- emerge/_emerge/physics/microwave/assembly/generalized_eigen.py,sha256=LOybnxdy1x6R6d0lPnfnKckZSiYRfWOW9MUFlV_ygfs,16945
68
- emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py,sha256=9YaBtUkYxXT_Sc247PkDAgAJkHjfeKi39-5KGR06IKE,17355
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=muG5TurwkZiFmFAjH0ecigFc67P5eniQtY34Uv2tMMY,13485
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/display.py,sha256=8IFZ6Cj9EBKIEmGiAIgsho31tnpcUfas8SopKDWiwAY,39137
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.2.dist-info/METADATA,sha256=_5GsvWw3WjkkdySkWuBq48RRFMNBRG8z6z9bGCBQV6k,3318
90
- emerge-1.0.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
91
- emerge-1.0.2.dist-info/entry_points.txt,sha256=8rFvAXticpKg4OTC8JEvAksnduW72KIEskCGG9XnFf8,43
92
- emerge-1.0.2.dist-info/licenses/LICENSE,sha256=VOCXWddrjMN5j7TvnSAOh1Dx7jkugdwq9Lqhycf5inc,17852
93
- emerge-1.0.2.dist-info/RECORD,,
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