emerge 0.4.10__py3-none-any.whl → 0.5.0__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 +15 -8
- emerge/_emerge/bc.py +41 -2
- emerge/_emerge/geo/__init__.py +1 -1
- emerge/_emerge/geo/pcb.py +49 -11
- emerge/_emerge/howto.py +2 -2
- emerge/_emerge/logsettings.py +83 -5
- emerge/_emerge/mesh3d.py +30 -12
- emerge/_emerge/mth/common_functions.py +28 -1
- emerge/_emerge/mth/integrals.py +25 -3
- emerge/_emerge/mth/optimized.py +126 -33
- emerge/_emerge/mth/pairing.py +97 -0
- emerge/_emerge/periodic.py +22 -0
- emerge/_emerge/physics/microwave/assembly/assembler.py +129 -155
- emerge/_emerge/physics/microwave/assembly/curlcurl.py +35 -3
- emerge/_emerge/physics/microwave/assembly/periodicbc.py +130 -0
- emerge/_emerge/physics/microwave/microwave_3d.py +3 -3
- emerge/_emerge/physics/microwave/microwave_bc.py +5 -4
- emerge/_emerge/physics/microwave/microwave_data.py +2 -2
- emerge/_emerge/projects/_gen_base.txt +1 -1
- emerge/_emerge/simmodel.py +137 -126
- emerge/_emerge/solve_interfaces/pardiso_interface.py +468 -0
- emerge/_emerge/solver.py +104 -55
- emerge/lib.py +276 -41
- {emerge-0.4.10.dist-info → emerge-0.5.0.dist-info}/METADATA +2 -3
- {emerge-0.4.10.dist-info → emerge-0.5.0.dist-info}/RECORD +28 -25
- {emerge-0.4.10.dist-info → emerge-0.5.0.dist-info}/WHEEL +0 -0
- {emerge-0.4.10.dist-info → emerge-0.5.0.dist-info}/entry_points.txt +0 -0
- {emerge-0.4.10.dist-info → emerge-0.5.0.dist-info}/licenses/LICENSE +0 -0
emerge/_emerge/solver.py
CHANGED
|
@@ -32,32 +32,14 @@ from enum import Enum
|
|
|
32
32
|
|
|
33
33
|
_PARDISO_AVAILABLE = False
|
|
34
34
|
_UMFPACK_AVAILABLE = False
|
|
35
|
-
|
|
36
|
-
0 | No error.
|
|
37
|
-
-1 | Input inconsistent.
|
|
38
|
-
-2 | Not enough memory.
|
|
39
|
-
-3 | Reordering problem.
|
|
40
|
-
-4 | Zero pivot, numerical fac. or iterative refinement problem.
|
|
41
|
-
-5 | Unclassified (internal) error.
|
|
42
|
-
-6 | Preordering failed (matrix types 11(real and nonsymmetric), 13(complex and nonsymmetric) only).
|
|
43
|
-
-7 | Diagonal Matrix problem.
|
|
44
|
-
-8 | 32-bit integer overflow problem.
|
|
45
|
-
-10 | No license file pardiso.lic found.
|
|
46
|
-
-11 | License is expired.
|
|
47
|
-
-12 | Wrong username or hostname.
|
|
48
|
-
-100 | Reached maximum number of Krylov-subspace iteration in iterative solver.
|
|
49
|
-
-101 | No sufficient convergence in Krylov-subspace iteration within 25 iterations.
|
|
50
|
-
-102 | Error in Krylov-subspace iteration.
|
|
51
|
-
-103 | Bread-Down in Krylov-subspace iteration
|
|
52
|
-
"""
|
|
35
|
+
|
|
53
36
|
""" Check if the PC runs on a non-ARM architechture
|
|
54
37
|
If so, attempt to import PyPardiso (if its installed)
|
|
55
38
|
"""
|
|
56
39
|
|
|
57
40
|
if 'arm' not in platform.processor():
|
|
58
41
|
try:
|
|
59
|
-
from
|
|
60
|
-
from pypardiso.pardiso_wrapper import PyPardisoError
|
|
42
|
+
from .solve_interfaces.pardiso_interface import PardisoInterface
|
|
61
43
|
_PARDISO_AVAILABLE = True
|
|
62
44
|
except ModuleNotFoundError as e:
|
|
63
45
|
logger.info('Pardiso not found, defaulting to SuperLU')
|
|
@@ -67,6 +49,11 @@ try:
|
|
|
67
49
|
except ModuleNotFoundError as e:
|
|
68
50
|
logger.debug('UMFPACK not found, defaulting to SuperLU')
|
|
69
51
|
|
|
52
|
+
|
|
53
|
+
############################################################
|
|
54
|
+
# EIGENMODE FILTER ROUTINE #
|
|
55
|
+
############################################################
|
|
56
|
+
|
|
70
57
|
def filter_real_modes(eigvals, eigvecs, k0, ermax, urmax, sign):
|
|
71
58
|
"""
|
|
72
59
|
Given arrays of eigenvalues `eigvals` and eigenvectors `eigvecs` (cols of shape (N,)),
|
|
@@ -103,6 +90,11 @@ def filter_real_modes(eigvals, eigvecs, k0, ermax, urmax, sign):
|
|
|
103
90
|
filtered_vecs = filtered_vecs[:, order]
|
|
104
91
|
return filtered_vals, filtered_vecs
|
|
105
92
|
|
|
93
|
+
|
|
94
|
+
############################################################
|
|
95
|
+
# EIGENMODE ORTHOGONALITY CHECK #
|
|
96
|
+
############################################################
|
|
97
|
+
|
|
106
98
|
def filter_unique_eigenpairs(eigen_values: list[complex], eigen_vectors: list[np.ndarray], tol=-3) -> tuple[list[complex], list[np.ndarray]]:
|
|
107
99
|
"""
|
|
108
100
|
Filters eigenvectors by orthogonality using dot-product tolerance.
|
|
@@ -133,6 +125,11 @@ def filter_unique_eigenpairs(eigen_values: list[complex], eigen_vectors: list[np
|
|
|
133
125
|
|
|
134
126
|
return unique_values, unique_vectors
|
|
135
127
|
|
|
128
|
+
|
|
129
|
+
############################################################
|
|
130
|
+
# COMPLEX MATRIX TO REAL MATRIX CONVERSION #
|
|
131
|
+
############################################################
|
|
132
|
+
|
|
136
133
|
def complex_to_real_block(A, b):
|
|
137
134
|
"""Return (Â, b̂) real-augmented representation of A x = b."""
|
|
138
135
|
A_r = sparse.csr_matrix(A.real)
|
|
@@ -153,7 +150,14 @@ def real_to_complex_block(x):
|
|
|
153
150
|
x_i = x[n:]
|
|
154
151
|
return x_r + 1j * x_i
|
|
155
152
|
|
|
156
|
-
|
|
153
|
+
|
|
154
|
+
############################################################
|
|
155
|
+
# BASE CLASS DEFINITIONS #
|
|
156
|
+
############################################################
|
|
157
|
+
|
|
158
|
+
class SimulationError(Exception):
|
|
159
|
+
pass
|
|
160
|
+
|
|
157
161
|
class Sorter:
|
|
158
162
|
""" A Generic class that executes a sort on the indices.
|
|
159
163
|
It must implement a sort and unsort method.
|
|
@@ -238,7 +242,11 @@ class EigSolver:
|
|
|
238
242
|
pass
|
|
239
243
|
|
|
240
244
|
|
|
241
|
-
|
|
245
|
+
|
|
246
|
+
############################################################
|
|
247
|
+
# SORTERS #
|
|
248
|
+
############################################################
|
|
249
|
+
|
|
242
250
|
@dataclass
|
|
243
251
|
class SolveReport:
|
|
244
252
|
solver: str
|
|
@@ -270,7 +278,11 @@ class ReverseCuthillMckee(Sorter):
|
|
|
270
278
|
logger.debug('Reversing Reverse Cuthill-Mckee sorting.')
|
|
271
279
|
return x[self.inv_perm]
|
|
272
280
|
|
|
273
|
-
|
|
281
|
+
|
|
282
|
+
############################################################
|
|
283
|
+
# PRECONDITIONERS #
|
|
284
|
+
############################################################
|
|
285
|
+
|
|
274
286
|
|
|
275
287
|
class ILUPrecon(Preconditioner):
|
|
276
288
|
""" Implements the incomplete LU preconditioner on matrix A. """
|
|
@@ -285,7 +297,11 @@ class ILUPrecon(Preconditioner):
|
|
|
285
297
|
self.ilu = sparse.linalg.spilu(A, drop_tol=1e-2, fill_factor=self.fill_factor, permc_spec='MMD_AT_PLUS_A', diag_pivot_thresh=0.001, options=self.options)
|
|
286
298
|
self.M = sparse.linalg.LinearOperator(A.shape, self.ilu.solve)
|
|
287
299
|
|
|
288
|
-
|
|
300
|
+
|
|
301
|
+
############################################################
|
|
302
|
+
# ITERATIVE SOLVERS #
|
|
303
|
+
############################################################
|
|
304
|
+
|
|
289
305
|
|
|
290
306
|
class SolverBicgstab(Solver):
|
|
291
307
|
""" Implements the Bi-Conjugate Gradient Stabilized method"""
|
|
@@ -359,7 +375,11 @@ class SolverGMRES(Solver):
|
|
|
359
375
|
x, info = gmres(A, b, atol=self.atol, callback=self.callback, restart=500, callback_type='pr_norm')
|
|
360
376
|
return x, info
|
|
361
377
|
|
|
362
|
-
|
|
378
|
+
|
|
379
|
+
############################################################
|
|
380
|
+
# DIRECT SOLVERS #
|
|
381
|
+
############################################################
|
|
382
|
+
|
|
363
383
|
|
|
364
384
|
class SolverSuperLU(Solver):
|
|
365
385
|
""" Implements Scipi's direct SuperLU solver."""
|
|
@@ -392,16 +412,15 @@ class SolverUMFPACK(Solver):
|
|
|
392
412
|
super().__init__()
|
|
393
413
|
self.A: np.ndarray = None
|
|
394
414
|
self.b: np.ndarray = None
|
|
395
|
-
self.
|
|
396
|
-
self.
|
|
397
|
-
self.
|
|
398
|
-
self.
|
|
399
|
-
self.
|
|
400
|
-
self.
|
|
401
|
-
self.
|
|
402
|
-
self.
|
|
403
|
-
self.
|
|
404
|
-
#self.up.control[um.UMFPACK_]
|
|
415
|
+
self.umfpack: um.UmfpackContext = um.UmfpackContext('zl')
|
|
416
|
+
self.umfpack.control[um.UMFPACK_PRL] = 0
|
|
417
|
+
self.umfpack.control[um.UMFPACK_IRSTEP] = 2
|
|
418
|
+
self.umfpack.control[um.UMFPACK_STRATEGY] = um.UMFPACK_STRATEGY_SYMMETRIC
|
|
419
|
+
self.umfpack.control[um.UMFPACK_ORDERING] = 3
|
|
420
|
+
self.umfpack.control[um.UMFPACK_PIVOT_TOLERANCE] = 0.001
|
|
421
|
+
self.umfpack.control[um.UMFPACK_SYM_PIVOT_TOLERANCE] = 0.001
|
|
422
|
+
self.umfpack.control[um.UMFPACK_BLOCK_SIZE] = 64
|
|
423
|
+
self.umfpack.control[um.UMFPACK_FIXQ] = -1
|
|
405
424
|
|
|
406
425
|
self.fact_symb: bool = False
|
|
407
426
|
|
|
@@ -414,39 +433,49 @@ class SolverUMFPACK(Solver):
|
|
|
414
433
|
A.indices = A.indices.astype(np.int64)
|
|
415
434
|
if self.fact_symb is False:
|
|
416
435
|
logger.debug('Executing symbollic factorization.')
|
|
417
|
-
self.
|
|
436
|
+
self.umfpack.symbolic(A)
|
|
418
437
|
#self.up.report_symbolic()
|
|
419
438
|
self.fact_symb = True
|
|
420
439
|
if not reuse_factorization:
|
|
421
440
|
#logger.debug('Executing numeric factorization.')
|
|
422
|
-
self.
|
|
441
|
+
self.umfpack.numeric(A)
|
|
423
442
|
self.A = A
|
|
424
|
-
x = self.
|
|
443
|
+
x = self.umfpack.solve(um.UMFPACK_A, self.A, b, autoTranspose = False )
|
|
425
444
|
return x, 0
|
|
426
445
|
|
|
427
446
|
class SolverPardiso(Solver):
|
|
428
447
|
""" Implements the PARDISO solver through PyPardiso. """
|
|
429
|
-
real_only: bool =
|
|
448
|
+
real_only: bool = False
|
|
430
449
|
req_sorter: bool = False
|
|
431
450
|
|
|
432
451
|
def __init__(self):
|
|
433
452
|
super().__init__()
|
|
434
|
-
|
|
453
|
+
self.solver: PardisoInterface = PardisoInterface()
|
|
454
|
+
self.fact_symb: bool = False
|
|
435
455
|
self.A: np.ndarray = None
|
|
436
456
|
self.b: np.ndarray = None
|
|
437
457
|
|
|
438
458
|
def solve(self, A, b, precon, reuse_factorization: bool = False, id: int = -1):
|
|
439
459
|
logger.info(f'Calling Pardiso Solver. ID={id}')
|
|
440
|
-
self.
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
460
|
+
if self.fact_symb is False:
|
|
461
|
+
logger.debug('Executing symbollic factorization.')
|
|
462
|
+
self.solver.symbolic(A)
|
|
463
|
+
self.fact_symb = True
|
|
464
|
+
if not reuse_factorization:
|
|
465
|
+
self.solver.numeric(A)
|
|
466
|
+
self.A = A
|
|
467
|
+
x, error = self.solver.solve(A, b)
|
|
468
|
+
if error != 0:
|
|
469
|
+
logger.error(f'Terminated with error code {error}')
|
|
470
|
+
logger.error(self.solver.get_error(error))
|
|
471
|
+
raise SimulationError(f'PARDISO Terminated with error code {error}')
|
|
472
|
+
return x, error
|
|
448
473
|
|
|
449
|
-
|
|
474
|
+
|
|
475
|
+
############################################################
|
|
476
|
+
# DIRECT EIGENMODE SOLVERS #
|
|
477
|
+
############################################################
|
|
478
|
+
|
|
450
479
|
class SolverLAPACK(EigSolver):
|
|
451
480
|
|
|
452
481
|
def __init__(self):
|
|
@@ -480,7 +509,11 @@ class SolverLAPACK(EigSolver):
|
|
|
480
509
|
lam, vecs = filter_real_modes(lam, vecs, target_k0, 2, 2, sign=sign)
|
|
481
510
|
return lam, vecs
|
|
482
511
|
|
|
483
|
-
|
|
512
|
+
|
|
513
|
+
############################################################
|
|
514
|
+
# ITERATIVE EIGEN SOLVERS #
|
|
515
|
+
############################################################
|
|
516
|
+
|
|
484
517
|
|
|
485
518
|
class SolverARPACK(EigSolver):
|
|
486
519
|
""" Implements the Scipy ARPACK iterative eigenmode solver."""
|
|
@@ -600,7 +633,11 @@ class SmartARPACK(EigSolver):
|
|
|
600
633
|
return eigen_values, eigen_modes
|
|
601
634
|
|
|
602
635
|
|
|
603
|
-
|
|
636
|
+
|
|
637
|
+
############################################################
|
|
638
|
+
# SOLVER ENUM #
|
|
639
|
+
############################################################
|
|
640
|
+
|
|
604
641
|
|
|
605
642
|
class EMSolver(Enum):
|
|
606
643
|
SUPERLU = 1
|
|
@@ -633,7 +670,11 @@ class EMSolver(Enum):
|
|
|
633
670
|
elif self==EMSolver.SMART_ARPACK_BMA:
|
|
634
671
|
return SmartARPACK_BMA()
|
|
635
672
|
|
|
636
|
-
|
|
673
|
+
|
|
674
|
+
############################################################
|
|
675
|
+
# SOLVE ROUTINE #
|
|
676
|
+
############################################################
|
|
677
|
+
|
|
637
678
|
|
|
638
679
|
class SolveRoutine:
|
|
639
680
|
""" A generic class describing a solve routine.
|
|
@@ -874,11 +915,12 @@ class SolveRoutine:
|
|
|
874
915
|
NS = solve_ids.shape[0]
|
|
875
916
|
|
|
876
917
|
A = A.tocsc()
|
|
877
|
-
|
|
878
|
-
logger.debug(f' Removing {NF-NS} prescribed DOFs ({NS} left)')
|
|
879
|
-
|
|
918
|
+
|
|
880
919
|
Asel = A[np.ix_(solve_ids, solve_ids)]
|
|
881
920
|
bsel = b[solve_ids]
|
|
921
|
+
nnz = Asel.nnz
|
|
922
|
+
|
|
923
|
+
logger.debug(f' Removed {NF-NS} prescribed DOFs ({NS:,} left, {nnz:,} non-zero)')
|
|
882
924
|
|
|
883
925
|
if solver.real_only:
|
|
884
926
|
logger.debug(' Converting to real matrix')
|
|
@@ -900,6 +942,7 @@ class SolveRoutine:
|
|
|
900
942
|
precon = str(self.precon)
|
|
901
943
|
|
|
902
944
|
start = time.time()
|
|
945
|
+
|
|
903
946
|
x_solved, code = solver.solve(Asorted, bsorted, self.precon, reuse_factorization=reuse, id=id)
|
|
904
947
|
end = time.time()
|
|
905
948
|
simtime = end-start
|
|
@@ -1053,4 +1096,10 @@ class AutomaticRoutine(SolveRoutine):
|
|
|
1053
1096
|
return self._try_solver(EMSolver.SUPERLU)
|
|
1054
1097
|
return self._try_solver(EMSolver.SUPERLU)
|
|
1055
1098
|
|
|
1099
|
+
|
|
1100
|
+
|
|
1101
|
+
############################################################
|
|
1102
|
+
# DEFAULT DEFINITION #
|
|
1103
|
+
############################################################
|
|
1104
|
+
|
|
1056
1105
|
DEFAULT_ROUTINE = AutomaticRoutine()
|
emerge/lib.py
CHANGED
|
@@ -10,48 +10,283 @@ MU0 = 1.2566370612720e-6
|
|
|
10
10
|
|
|
11
11
|
### MATERIALS
|
|
12
12
|
VACUUM = Material(color="#2d8cd5", opacity=0.05)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
13
|
+
|
|
14
|
+
############################################################
|
|
15
|
+
# METALS #
|
|
16
|
+
############################################################
|
|
17
|
+
|
|
18
|
+
GREY = "#bfbfbf"
|
|
19
|
+
MET_ALUMINUM = Material(cond=3.77e7, color=GREY)
|
|
20
|
+
MET_CARBON = Material(cond=3.33e4, color=GREY)
|
|
21
|
+
MET_CHROMIUM = Material(cond=5.56e6, color=GREY)
|
|
22
|
+
MET_COPPER = Material(cond=5.8e7, color="#62290c")
|
|
23
|
+
MET_GOLD = Material(cond=4.10e7, color=GREY)
|
|
24
|
+
MET_INDIUM = Material(cond=6.44e6, color=GREY)
|
|
25
|
+
MET_IRIDIUM = Material(cond=2.13e7, color=GREY)
|
|
26
|
+
MET_IRON = Material(cond=1.04e7, color=GREY)
|
|
27
|
+
MET_LEAD = Material(cond=4.84e6, color=GREY)
|
|
28
|
+
MET_MAGNESIUM = Material(cond=2.38e7, color=GREY)
|
|
29
|
+
MET_NICKEL = Material(cond=1.14e7, color=GREY)
|
|
30
|
+
MET_NICHROME = Material(cond=9.09e5, color=GREY)
|
|
31
|
+
MET_PALLADIUM = Material(cond=9.42e6, color=GREY)
|
|
32
|
+
MET_PLATINUM = Material(cond=9.42e6, color=GREY)
|
|
33
|
+
MET_RHODIUM = Material(cond=2.22e7, color=GREY)
|
|
34
|
+
MET_SILVER = Material(cond=6.29e7, color=GREY)
|
|
35
|
+
MET_TANTALUM = Material(cond=6.44e6, color=GREY)
|
|
36
|
+
MET_TANTALUM_NITRIDE = Material(cond=3.97e5, color=GREY)
|
|
37
|
+
MET_TIN = Material(cond=8.66e6, color=GREY)
|
|
38
|
+
MET_TITANIUM = Material(cond=1.82e6, color=GREY)
|
|
39
|
+
MET_TUNGSTEN = Material(cond=1.79e7, color=GREY)
|
|
40
|
+
MET_ZINC = Material(cond=1.76e7, color=GREY)
|
|
41
|
+
MET_ZIRCONIUM = Material(cond=2.44e7, color=GREY)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
############################################################
|
|
45
|
+
# SEMICONDUCTORS #
|
|
46
|
+
############################################################
|
|
47
|
+
|
|
48
|
+
SEMI_SILICON = Material(er=11.7, tand=0.005, color="#b4b4b4") # Crystalline Si
|
|
49
|
+
SEMI_SILICON_N = Material(er=7.5, tand=0.0003, color="#a0a0a0") # Silicon Nitride (Si₃N₄)
|
|
50
|
+
SEMI_SILICON_OXIDE = Material(er=3.9, tand=0.0001, color="#e0e0e0") # Silicon Dioxide (SiO₂)
|
|
51
|
+
SEMI_GERMANIUM = Material(er=16.0, tand=0.001, color="#787878")
|
|
52
|
+
SEMI_GAAS = Material(er=13.1, tand=0.0016, color="#aa8888") # Gallium Arsenide
|
|
53
|
+
SEMI_GA_N = Material(er=8.9, tand=0.002, color="#8888cc") # Gallium Nitride
|
|
54
|
+
SEMI_INP = Material(er=12.5, tand=0.0015, color="#cc99aa") # Indium Phosphide
|
|
55
|
+
SEMI_ALN = Material(er=8.6, tand=0.0003, color="#ccccee") # Aluminum Nitride
|
|
56
|
+
SEMI_AL2O3 = Material(er=9.8, tand=0.0002, color="#eaeaea") # Alumina
|
|
57
|
+
SEMI_SAPPHIRE = Material(er=9.4, tand=0.0001, color="#ddddff")
|
|
58
|
+
SEMI_DIAMOND = Material(er=5.5, tand=0.00005, color="#cceeff") # Synthetic CVD diamond
|
|
59
|
+
SEMI_HBN = Material(er=4.0, tand=0.0001, color="#eeeeff") # Hexagonal Boron Nitride
|
|
60
|
+
SEMI_SIOXNY = Material(er=5.0, tand=0.002, color="#ddddee") # Silicon Oxynitride (SiOxNy)
|
|
61
|
+
|
|
62
|
+
############################################################
|
|
63
|
+
# LIQUIDS #
|
|
64
|
+
############################################################
|
|
65
|
+
|
|
66
|
+
LIQ_WATER = Material(er=80.1, cond=0.0, color="#0080ff", opacity=0.3)
|
|
67
|
+
LIQ_FERRITE = Material(er=12.0, ur=2000, tand=0.02, color="#994d4d")
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
############################################################
|
|
71
|
+
# DIELECTRICS #
|
|
72
|
+
############################################################
|
|
73
|
+
DIEL_PTFE = Material(er=2.1, tand=0.0002, color="#21912b")
|
|
74
|
+
DIEL_POLYIMIDE = Material(er=3.4, tand=0.02, color="#b8b8b8")
|
|
75
|
+
DIEL_CERAMIC = Material(er=6.0, tand=0.001, color="#efead1")
|
|
76
|
+
DIEL_AD10 = Material(er=10.2, tand=0.0078, color="#21912b")
|
|
77
|
+
DIEL_AD1000 = Material(er=10.2, tand=0.0023, color="#21912b")
|
|
78
|
+
DIEL_AD250 = Material(er=2.5, tand=0.0018, color="#21912b")
|
|
79
|
+
DIEL_AD250_PIM = Material(er=2.5, tand=0.0018, color="#21912b")
|
|
80
|
+
DIEL_AD250A = Material(er=2.50, tand=0.0015, color="#21912b")
|
|
81
|
+
DIEL_AD250C = Material(er=2.50, tand=0.0014, color="#21912b")
|
|
82
|
+
DIEL_AD255 = Material(er=2.55, tand=0.0018, color="#21912b")
|
|
83
|
+
DIEL_AD255A = Material(er=2.55, tand=0.0015, color="#21912b")
|
|
84
|
+
DIEL_AD255C = Material(er=2.55, tand=0.0014, color="#21912b")
|
|
85
|
+
DIEL_AD260A = Material(er=2.60, tand=0.0017, color="#21912b")
|
|
86
|
+
DIEL_AD270 = Material(er=2.7, tand=0.0023, color="#21912b")
|
|
87
|
+
DIEL_AD300 = Material(er=3, tand=0.003, color="#21912b")
|
|
88
|
+
DIEL_AD300_PIM = Material(er=3, tand=0.003, color="#21912b")
|
|
89
|
+
DIEL_AD300A = Material(er=3.00, tand=0.002, color="#21912b")
|
|
90
|
+
DIEL_AD300C = Material(er=2.97, tand=0.002, color="#21912b")
|
|
91
|
+
DIEL_AD320 = Material(er=3.2, tand=0.0038, color="#21912b")
|
|
92
|
+
DIEL_AD320_PIM = Material(er=3.2, tand=0.003, color="#21912b")
|
|
93
|
+
DIEL_AD320A = Material(er=3.20, tand=0.0032, color="#21912b")
|
|
94
|
+
DIEL_AD350 = Material(er=3.5, tand=0.003, color="#21912b")
|
|
95
|
+
DIEL_AD350_PIM = Material(er=3.5, tand=0.003, color="#21912b")
|
|
96
|
+
DIEL_AD350A = Material(er=3.50, tand=0.003, color="#21912b")
|
|
97
|
+
DIEL_AD410 = Material(er=4.1, tand=0.003, color="#21912b")
|
|
98
|
+
DIEL_AD430 = Material(er=4.3, tand=0.003, color="#21912b")
|
|
99
|
+
DIEL_AD450 = Material(er=4.5, tand=0.0035, color="#21912b")
|
|
100
|
+
DIEL_AD450A = Material(er=4.5, tand=0.0035, color="#21912b")
|
|
101
|
+
DIEL_AD5 = Material(er=5.1, tand=0.003, color="#21912b")
|
|
102
|
+
DIEL_AD600 = Material(er=5.90, tand=0.003, color="#21912b")
|
|
103
|
+
DIEL_AR1000 = Material(er=9.8, tand=0.003, color="#21912b")
|
|
104
|
+
DIEL_CER_10 = Material(er=10.00, tand=0.0035, color="#21912b")
|
|
105
|
+
DIEL_CLTE = Material(er=2.96, tand=0.0023, color="#21912b")
|
|
106
|
+
DIEL_CLTE_AT = Material(er=3.00, tand=0.0013, color="#21912b")
|
|
107
|
+
DIEL_CLTE_LC = Material(er=2.94, tand=0.0025, color="#21912b")
|
|
108
|
+
DIEL_CLTE_XT = Material(er=2.94, tand=0.0012, color="#21912b")
|
|
109
|
+
DIEL_COMCLAD_HF_ER2 = Material(er=2, tand=0.0025, color="#21912b")
|
|
110
|
+
DIEL_COMCLAD_HF_ER3 = Material(er=3, tand=0.0025, color="#21912b")
|
|
111
|
+
DIEL_COMCLAD_HF_ER4 = Material(er=4, tand=0.0025, color="#21912b")
|
|
112
|
+
DIEL_COMCLAD_HF_ER5 = Material(er=5, tand=0.0025, color="#21912b")
|
|
113
|
+
DIEL_COMCLAD_HF_ER6 = Material(er=6, tand=0.0025, color="#21912b")
|
|
114
|
+
DIEL_COPPER_CLAD_ULTEM = Material(er=3.05, tand=0.003, color="#21912b")
|
|
115
|
+
DIEL_CUCLAD_217LX = Material(er=2.17, tand=0.0009, color="#21912b")
|
|
116
|
+
DIEL_CUCLAD_233LX = Material(er=2.33, tand=0.0013, color="#21912b")
|
|
117
|
+
DIEL_CUCLAD_250GT = Material(er=2.5, tand=0.0018, color="#21912b")
|
|
118
|
+
DIEL_CUCLAD_250GX = Material(er=2.4, tand=0.0018, color="#21912b")
|
|
119
|
+
DIEL_CUFLON = Material(er=2.05, tand=0.00045, color="#21912b")
|
|
120
|
+
DIEL_DICLAD_522 = Material(er=2.4, tand=0.0018, color="#21912b")
|
|
121
|
+
DIEL_DICLAD_527 = Material(er=2.4, tand=0.0018, color="#21912b")
|
|
122
|
+
DIEL_DICLAD_870 = Material(er=2.33, tand=0.0013, color="#21912b")
|
|
123
|
+
DIEL_DICLAD_880 = Material(er=2.17, tand=0.0009, color="#21912b")
|
|
124
|
+
DIEL_DICLAD_880_PIM = Material(er=2.17, tand=0.0009, color="#21912b")
|
|
125
|
+
DIEL_GETEK = Material(er=3.5, tand=0.01, color="#21912b")
|
|
126
|
+
DIEL_GETEK = Material(er=3.8, tand=0.01, color="#21912b")
|
|
127
|
+
DIEL_IS6802_80 = Material(er=2.80, tand=0.003, color="#21912b")
|
|
128
|
+
DIEL_IS6803_00 = Material(er=3.00, tand=0.003, color="#21912b")
|
|
129
|
+
DIEL_IS6803_20 = Material(er=3.20, tand=0.003, color="#21912b")
|
|
130
|
+
DIEL_IS6803_33 = Material(er=3.33, tand=0.003, color="#21912b")
|
|
131
|
+
DIEL_IS6803_38 = Material(er=3.38, tand=0.0032, color="#21912b")
|
|
132
|
+
DIEL_IS6803_45 = Material(er=3.45, tand=0.0035, color="#21912b")
|
|
133
|
+
DIEL_ISOCLAD_917 = Material(er=2.17, tand=0.0013, color="#21912b")
|
|
134
|
+
DIEL_ISOCLAD_933 = Material(er=2.33, tand=0.0016, color="#21912b")
|
|
135
|
+
DIEL_ISOLA_I_TERA_MT = Material(er=3.45, tand=0.0030, color="#3c9747")
|
|
136
|
+
DIEL_ISOLA_NELCO_4000_13 = Material(er=3.77, tand=0.008, color="#3c9747")
|
|
137
|
+
DIEL_MAT_25N = Material(er=3.38, tand=0.0025, color="#21912b")
|
|
138
|
+
DIEL_MAT25FR = Material(er=3.58, tand=0.0035, color="#21912b")
|
|
139
|
+
DIEL_MEGTRON6R5775 = Material(er=3.61, tand=0.004, color="#21912b")
|
|
140
|
+
DIEL_MERCURYWAVE_9350 = Material(er=3.5, tand=0.004, color="#21912b")
|
|
141
|
+
DIEL_MULTICLAD_HF = Material(er=3.7, tand=0.0045, color="#21912b")
|
|
142
|
+
DIEL_N_8000 = Material(er=3.5, tand=0.011, color="#21912b")
|
|
143
|
+
DIEL_N4350_13RF = Material(er=3.5, tand=0.0065, color="#21912b")
|
|
144
|
+
DIEL_N4380_13RF = Material(er=3.8, tand=0.007, color="#21912b")
|
|
145
|
+
DIEL_N8000Q = Material(er=3.2, tand=0.006, color="#21912b")
|
|
146
|
+
DIEL_N9300_13RF = Material(er=3, tand=0.004, color="#21912b")
|
|
147
|
+
DIEL_N9320_13RF = Material(er=3.2, tand=0.0045, color="#21912b")
|
|
148
|
+
DIEL_N9338_13RF = Material(er=3.38, tand=0.0046, color="#21912b")
|
|
149
|
+
DIEL_N9350_13RF = Material(er=3.48, tand=0.0055, color="#21912b")
|
|
150
|
+
DIEL_NH9294 = Material(er=2.94, tand=0.0022, color="#21912b")
|
|
151
|
+
DIEL_NH9300 = Material(er=3.00, tand=0.0023, color="#21912b")
|
|
152
|
+
DIEL_NH9320 = Material(er=3.20, tand=0.0024, color="#21912b")
|
|
153
|
+
DIEL_NH9338 = Material(er=3.38, tand=0.0025, color="#21912b")
|
|
154
|
+
DIEL_NH9348 = Material(er=3.48, tand=0.003, color="#21912b")
|
|
155
|
+
DIEL_NH9350 = Material(er=3.50, tand=0.003, color="#21912b")
|
|
156
|
+
DIEL_NH9410 = Material(er=4.10, tand=0.003, color="#21912b")
|
|
157
|
+
DIEL_NH9450 = Material(er=4.50, tand=0.003, color="#21912b")
|
|
158
|
+
DIEL_NORCLAD = Material(er=2.55, tand=0.0011, color="#21912b")
|
|
159
|
+
DIEL_NX9240 = Material(er=2.40, tand=0.0016, color="#21912b")
|
|
160
|
+
DIEL_NX9245 = Material(er=2.45, tand=0.0016, color="#21912b")
|
|
161
|
+
DIEL_NX9250 = Material(er=2.50, tand=0.0017, color="#21912b")
|
|
162
|
+
DIEL_NX9255 = Material(er=2.55, tand=0.0018, color="#21912b")
|
|
163
|
+
DIEL_NX9260 = Material(er=2.60, tand=0.0019, color="#21912b")
|
|
164
|
+
DIEL_NX9270 = Material(er=2.70, tand=0.002, color="#21912b")
|
|
165
|
+
DIEL_NX9294 = Material(er=2.94, tand=0.0022, color="#21912b")
|
|
166
|
+
DIEL_NX9300 = Material(er=3.00, tand=0.0023, color="#21912b")
|
|
167
|
+
DIEL_NX9320 = Material(er=3.20, tand=0.0024, color="#21912b")
|
|
168
|
+
DIEL_NY9208 = Material(er=2.08, tand=0.0006, color="#21912b")
|
|
169
|
+
DIEL_NY9217 = Material(er=2.17, tand=0.0008, color="#21912b")
|
|
170
|
+
DIEL_NY9220 = Material(er=2.20, tand=0.0009, color="#21912b")
|
|
171
|
+
DIEL_NY9233 = Material(er=2.33, tand=0.0011, color="#21912b")
|
|
172
|
+
DIEL_POLYGUIDE = Material(er=2.320, tand=0.0005, color="#21912b")
|
|
173
|
+
DIEL_RF_30 = Material(er=3.00, tand=0.0019, color="#21912b")
|
|
174
|
+
DIEL_RF_301 = Material(er=2.97, tand=0.0018, color="#21912b")
|
|
175
|
+
DIEL_RF_35 = Material(er=3.50, tand=0.0025, color="#21912b")
|
|
176
|
+
DIEL_RF_35A2 = Material(er=3.50, tand=0.0015, color="#21912b")
|
|
177
|
+
DIEL_RF_35P = Material(er=3.50, tand=0.0034, color="#21912b")
|
|
178
|
+
DIEL_RF_35TC = Material(er=3.50, tand=0.0011, color="#21912b")
|
|
179
|
+
DIEL_RF_41 = Material(er=4.10, tand=0.0038, color="#21912b")
|
|
180
|
+
DIEL_RF_43 = Material(er=4.30, tand=0.0033, color="#21912b")
|
|
181
|
+
DIEL_RF_45 = Material(er=4.50, tand=0.0037, color="#21912b")
|
|
182
|
+
DIEL_RF_60A = Material(er=6.15, tand=0.0038, color="#21912b")
|
|
183
|
+
DIEL_RO3003 = Material(er=3.00, tand=0.0011, color="#21912b")
|
|
184
|
+
DIEL_RO3006 = Material(er=6.15, tand=0.002, color="#21912b")
|
|
185
|
+
DIEL_RO3010 = Material(er=10.2, tand=0.0022, color="#21912b")
|
|
186
|
+
DIEL_RO3035 = Material(er=3.50, tand=0.0017, color="#21912b")
|
|
187
|
+
DIEL_RO3203 = Material(er=3.02, tand=0.0016, color="#21912b")
|
|
188
|
+
DIEL_RO3206 = Material(er=6.15, tand=0.0027, color="#21912b")
|
|
189
|
+
DIEL_RO3210 = Material(er=10.2, tand=0.0027, color="#21912b")
|
|
190
|
+
DIEL_RO3730 = Material(er=3.00, tand=0.0016, color="#21912b")
|
|
191
|
+
DIEL_RO4003C = Material(er=3.38, tand=0.0029, color="#21912b")
|
|
192
|
+
DIEL_RO4350B = Material(er=3.48, tand=0.0037, color="#21912b")
|
|
193
|
+
DIEL_RO4350B_TX = Material(er=3.48, tand=0.0034, color="#21912b")
|
|
194
|
+
DIEL_RO4360 = Material(er=6.15, tand=0.0038, color="#21912b")
|
|
195
|
+
DIEL_RO4533 = Material(er=3.30, tand=0.0025, color="#21912b")
|
|
196
|
+
DIEL_RO4534 = Material(er=3.40, tand=0.0027, color="#21912b")
|
|
197
|
+
DIEL_RO4535 = Material(er=3.50, tand=0.0037, color="#21912b")
|
|
198
|
+
DIEL_RO4730 = Material(er=3.00, tand=0.0033, color="#21912b")
|
|
199
|
+
DIEL_RT_Duroid_5870 = Material(er=2.33, tand=0.0012, color="#21912b")
|
|
200
|
+
DIEL_RT_Duroid_5880 = Material(er=2.20, tand=0.0009, color="#21912b")
|
|
201
|
+
DIEL_RT_Duroid_5880LZ = Material(er=1.96, tand=0.0019, color="#21912b")
|
|
202
|
+
DIEL_RT_Duroid_6002 = Material(er=2.94, tand=0.0012, color="#21912b")
|
|
203
|
+
DIEL_RT_Duroid_6006 = Material(er=6.15, tand=0.0027, color="#21912b")
|
|
204
|
+
DIEL_RT_Duroid_6010_2LM = Material(er=10.2, tand=0.0023, color="#21912b")
|
|
205
|
+
DIEL_RT_Duroid_6035HTC = Material(er=3.50, tand=0.0013, color="#21912b")
|
|
206
|
+
DIEL_RT_Duroid_6202 = Material(er=2.94, tand=0.0015, color="#21912b")
|
|
207
|
+
DIEL_RT_Duroid_6202PR = Material(er=2.90, tand=0.002, color="#21912b")
|
|
208
|
+
DIEL_SYRON_70000_002IN_Thick = Material(er=3.4, tand=0.0045, color="#21912b")
|
|
209
|
+
DIEL_SYRON_71000_004IN_THICK = Material(er=3.39, tand=0.005, color="#21912b")
|
|
210
|
+
DIEL_SYRON_71000INCH = Material(er=3.61, tand=0.006, color="#21912b")
|
|
211
|
+
DIEL_TACLAMPLUS= Material(er=2.10, tand=0.0004, color="#21912b")
|
|
212
|
+
DIEL_TC350 = Material(er=3.50, tand=0.002, color="#21912b")
|
|
213
|
+
DIEL_TC600 = Material(er=6.15, tand=0.002, color="#21912b")
|
|
214
|
+
DIEL_THETA = Material(er=3.85, tand=0.0123, color="#21912b")
|
|
215
|
+
DIEL_TLA_6 = Material(er=2.62, tand=0.0017, color="#21912b")
|
|
216
|
+
DIEL_TLC_27 = Material(er=2.75, tand=0.003, color="#21912b")
|
|
217
|
+
DIEL_TLC_30 = Material(er=3.00, tand=0.003, color="#21912b")
|
|
218
|
+
DIEL_TLC_32 = Material(er=3.20, tand=0.003, color="#21912b")
|
|
219
|
+
DIEL_TLC_338 = Material(er=3.38, tand=0.0034, color="#21912b")
|
|
220
|
+
DIEL_TLC_35 = Material(er=3.50, tand=0.0037, color="#21912b")
|
|
221
|
+
DIEL_TLE_95 = Material(er=2.95, tand=0.0028, color="#21912b")
|
|
222
|
+
DIEL_TLF_34 = Material(er=3.40, tand=0.002, color="#21912b")
|
|
223
|
+
DIEL_TLF_35 = Material(er=3.50, tand=0.002, color="#21912b")
|
|
224
|
+
DIEL_TLG_29 = Material(er=2.87, tand=0.0027, color="#21912b")
|
|
225
|
+
DIEL_TLG_30 = Material(er=3, tand=0.0038, color="#21912b")
|
|
226
|
+
DIEL_TLP_3 = Material(er=2.33, tand=0.0009, color="#21912b")
|
|
227
|
+
DIEL_TLP_5 = Material(er=2.20, tand=0.0009, color="#21912b")
|
|
228
|
+
DIEL_TLP_5A = Material(er=2.17, tand=0.0009, color="#21912b")
|
|
229
|
+
DIEL_TLT_0 = Material(er=2.45, tand=0.0019, color="#21912b")
|
|
230
|
+
DIEL_TLT_6 = Material(er=2.65, tand=0.0019, color="#21912b")
|
|
231
|
+
DIEL_TLT_7 = Material(er=2.60, tand=0.0019, color="#21912b")
|
|
232
|
+
DIEL_TLT_8 = Material(er=2.55, tand=0.0019, color="#21912b")
|
|
233
|
+
DIEL_TLT_9 = Material(er=2.50, tand=0.0019, color="#21912b")
|
|
234
|
+
DIEL_TLX_0 = Material(er=2.45, tand=0.0019, color="#21912b")
|
|
235
|
+
DIEL_TLX_6 = Material(er=2.65, tand=0.0019, color="#21912b")
|
|
236
|
+
DIEL_TLX_7 = Material(er=2.60, tand=0.0019, color="#21912b")
|
|
237
|
+
DIEL_TLX_8 = Material(er=2.55, tand=0.0019, color="#21912b")
|
|
238
|
+
DIEL_TLX_9 = Material(er=2.50, tand=0.0019, color="#21912b")
|
|
239
|
+
DIEL_TLY_3 = Material(er=2.33, tand=0.0012, color="#21912b")
|
|
240
|
+
DIEL_TLY_3F = Material(er=2.33, tand=0.0012, color="#21912b")
|
|
241
|
+
DIEL_TLY_5 = Material(er=2.20, tand=0.0009, color="#21912b")
|
|
242
|
+
DIEL_TLY_5_L = Material(er=2.20, tand=0.0009, color="#21912b")
|
|
243
|
+
DIEL_TLY_5A = Material(er=2.17, tand=0.0009, color="#21912b")
|
|
244
|
+
DIEL_TLY_5AL = Material(er=2.17, tand=0.0009, color="#21912b")
|
|
245
|
+
DIEL_TMM_10 = Material(er=9.20, tand=0.0022, color="#21912b")
|
|
246
|
+
DIEL_TMM_10i = Material(er=9.80, tand=0.002, color="#21912b")
|
|
247
|
+
DIEL_TMM_3 = Material(er=3.27, tand=0.002, color="#21912b")
|
|
248
|
+
DIEL_TMM_4 = Material(er=4.50, tand=0.002, color="#21912b")
|
|
249
|
+
DIEL_TMM_6 = Material(er=6.00, tand=0.0023, color="#21912b")
|
|
250
|
+
DIEL_TRF_41 = Material(er=4.10, tand=0.0035, color="#21912b")
|
|
251
|
+
DIEL_TRF_43 = Material(er=4.30, tand=0.0035, color="#21912b")
|
|
252
|
+
DIEL_TRF_45 = Material(er=4.50, tand=0.0035, color="#21912b")
|
|
253
|
+
DIEL_TSM_26 = Material(er=2.60, tand=0.0014, color="#21912b")
|
|
254
|
+
DIEL_TSM_29 = Material(er=2.94, tand=0.0013, color="#21912b")
|
|
255
|
+
DIEL_TSM_30 = Material(er=3.00, tand=0.0013, color="#21912b")
|
|
256
|
+
DIEL_TSM_DS = Material(er=2.85, tand=0.001, color="#21912b")
|
|
257
|
+
DIEL_TSM_DS3 = Material(er=3.00, tand=0.0011, color="#21912b")
|
|
258
|
+
DIEL_ULTRALAM_2000 = Material(er=2.4, tand=0.0019, color="#21912b")
|
|
259
|
+
DIEL_ULTRALAM_3850 = Material(er=2.9, tand=0.0025, color="#21912b")
|
|
260
|
+
DIEL_XT_Duroid_80000_002IN_Thick = Material(er=3.23, tand=0.0035, color="#21912b")
|
|
261
|
+
DIEL_XT_Duroid_8100 = Material(er=3.54, tand=0.0049, color="#21912b")
|
|
262
|
+
DIEL_XT_Duroid_81000_004IN_Thick = Material(er=3.32, tand=0.0038, color="#21912b")
|
|
51
263
|
|
|
52
264
|
# Legacy FR Materials
|
|
53
|
-
|
|
54
|
-
|
|
265
|
+
DIEL_FR1 = Material(er=4.8, tand=0.025, color="#3c9747") # Paper + phenolic resin
|
|
266
|
+
DIEL_FR2 = Material(er=4.8, tand=0.02, color="#3c9747") # Paper + phenolic resin
|
|
267
|
+
DIEL_FR3 = Material(er=4.5, tand=0.02, color="#2b7a4b") # Paper + epoxy resin
|
|
268
|
+
DIEL_FR4 = Material(er=4.4, tand=0.015, color="#1e8449") # Woven glass + epoxy resin (industry standard)
|
|
269
|
+
DIEL_FR5 = Material(er=4.2, tand=0.012, color="#156e38") # Woven glass + high-temp epoxy resin
|
|
270
|
+
DIEL_FR6 = Material(er=5.2, tand=0.030, color="#145a32") # Paper + unknown resin, poor thermal performance
|
|
55
271
|
|
|
56
272
|
# Magnetic Materials
|
|
57
|
-
MU_METAL = Material(cond=1.0e6, ur=200000, color="#666680")
|
|
273
|
+
MU_METAL = Material(cond=1.0e6, ur=200000, color="#666680")
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
############################################################
|
|
277
|
+
# FOAMS #
|
|
278
|
+
############################################################
|
|
279
|
+
|
|
280
|
+
FOAM_ROHACELL_31 = Material(er=1.05, tand=0.0005, color="#f0e1a1") # PMI-based structural foam
|
|
281
|
+
FOAM_ROHACELL_51 = Material(er=1.07, tand=0.0006, color="#f0dea0") # denser version
|
|
282
|
+
FOAM_ROHACELL_71 = Material(er=1.10, tand=0.0007, color="#e5d199")
|
|
283
|
+
FOAM_PEI = Material(er=1.15, tand=0.0035, color="#e0b56f") # polyetherimide-based foam
|
|
284
|
+
FOAM_PMI = Material(er=1.10, tand=0.0008, color="#d9c690") # polymethacrylimide
|
|
285
|
+
FOAM_PVC = Material(er=1.20, tand=0.0040, color="#cccccc")
|
|
286
|
+
FOAM_EPS = Material(er=1.03, tand=0.0050, color="#f7f7f7") # expanded polystyrene
|
|
287
|
+
FOAM_XPS = Material(er=1.05, tand=0.0030, color="#e0e0e0") # extruded polystyrene
|
|
288
|
+
FOAM_PU = Material(er=1.10, tand=0.0080, color="#d0d0d0") # polyurethane foam
|
|
289
|
+
FOAM_GLAS = Material(er=3.10, tand=0.0050, color="#888888") # cellular glass, denser
|
|
290
|
+
FOAM_AIREX_C70 = Material(er=1.10, tand=0.0010, color="#f7e7a3") # PET closed cell
|
|
291
|
+
FOAM_AIREX_T92 = Material(er=1.10, tand=0.0020, color="#f6d08a") # higher strength PET
|
|
292
|
+
FOAM_PVC_CORECELL = Material(er=1.56, tand=0.0025, color="#aaaaaa") # structural core PVC
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: emerge
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
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
|
|
@@ -10,13 +10,12 @@ Requires-Dist: gmsh>=4.13.1
|
|
|
10
10
|
Requires-Dist: joblib>=1.5.1
|
|
11
11
|
Requires-Dist: loguru>=0.7.3
|
|
12
12
|
Requires-Dist: matplotlib>=3.8.0
|
|
13
|
+
Requires-Dist: mkl!=2024.0; platform_machine == 'x86_64' or platform_machine == 'AMD64'
|
|
13
14
|
Requires-Dist: numba-progress>=1.1.3
|
|
14
15
|
Requires-Dist: numba>=0.57.0
|
|
15
16
|
Requires-Dist: numpy<2.3,>=1.24
|
|
16
17
|
Requires-Dist: pyvista>=0.45.2
|
|
17
18
|
Requires-Dist: scipy>=1.14.0
|
|
18
|
-
Provides-Extra: pypardiso
|
|
19
|
-
Requires-Dist: pypardiso; (platform_machine == 'x86_64' or platform_machine == 'AMD64') and extra == 'pypardiso'
|
|
20
19
|
Provides-Extra: umfpack
|
|
21
20
|
Requires-Dist: scikit-umfpack; (sys_platform != 'win32') and extra == 'umfpack'
|
|
22
21
|
Description-Content-Type: text/markdown
|