emerge 0.6.10__tar.gz → 0.6.11__tar.gz
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-0.6.10 → emerge-0.6.11}/.bumpversion.toml +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/PKG-INFO +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/emerge/__init__.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/bc.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geometry.py +5 -5
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/microwave_3d.py +13 -9
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/microwave_bc.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/matplotlib/mpldisplay.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/pyvista/display.py +14 -13
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo10_sgh.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo11_lumped_element_filter.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo12_mode_alignment.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo13_helix_antenna.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo14_boundary_selection.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo1_stepped_imp_filter.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo2_combline_filter.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo3_coupled_line_filter.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo4_patch_antenna.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo5_revolve.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo6_striplines_with_vias.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo7_periodic_cells.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo8_waveguide_bpf_synthesis.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/examples/demo9_dielectric_resonator.py +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/pyproject.toml +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/uv.lock +1 -1
- {emerge-0.6.10 → emerge-0.6.11}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/.gitignore +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/.opt +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/.python-version +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/LICENSE +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/README.md +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/THIRD_PARTY_LICENSES.md +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/UMFPACK_Install_windows.md +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/UMFPACK_installer_windows.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/__main__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/_cache_check.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/const.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/coord.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/cs.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/dataset.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/femdata.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/index_interp.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/ned2_interp.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/nedelec2.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/nedleg2.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/horn.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/modeler.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/operations.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pcb.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pcb_tools/calculator.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pcb_tools/macro.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pmlbox.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/polybased.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/shapes.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/step.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo2d.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/howto.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/logsettings.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/material.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mesh3d.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mesher.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/common_functions.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/integrals.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/optimized.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/pairing.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/periodic.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/adaptive_freq.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/assembler.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/curlcurl.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/generalized_eigen.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/periodicbc.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/robinbc.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/microwave_data.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/periodic.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/port_functions.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/sc.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/simjob.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/sparam.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/touchstone.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/display.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/pyvista/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/pyvista/display_settings.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/simple_plots.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/__init__.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/_gen_base.txt +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/_load_base.txt +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/generate_project.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/selection.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/simmodel.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/simulation_data.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/solve_interfaces/cudss_interface.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/solve_interfaces/pardiso_interface.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/solver.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/system.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/cli.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/ext.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/lib.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/plot.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/emerge/pyvista.py +0 -0
- {emerge-0.6.10 → emerge-0.6.11}/src/__init__.py +0 -0
|
@@ -250,7 +250,7 @@ class GeoObject:
|
|
|
250
250
|
return self.material._metal
|
|
251
251
|
|
|
252
252
|
@property
|
|
253
|
-
def
|
|
253
|
+
def selection(self) -> Selection:
|
|
254
254
|
'''Returns a corresponding Face/Domain or Edge Selection object'''
|
|
255
255
|
if self.dim==1:
|
|
256
256
|
return EdgeSelection(self.tags)
|
|
@@ -517,14 +517,14 @@ class GeoVolume(GeoObject):
|
|
|
517
517
|
self.tags = [tag,]
|
|
518
518
|
|
|
519
519
|
@property
|
|
520
|
-
def
|
|
520
|
+
def selection(self) -> DomainSelection:
|
|
521
521
|
return DomainSelection(self.tags)
|
|
522
522
|
|
|
523
523
|
class GeoPoint(GeoObject):
|
|
524
524
|
dim = 0
|
|
525
525
|
|
|
526
526
|
@property
|
|
527
|
-
def
|
|
527
|
+
def selection(self) -> PointSelection:
|
|
528
528
|
return PointSelection(self.tags)
|
|
529
529
|
|
|
530
530
|
def __init__(self, tag: int | list[int]):
|
|
@@ -540,7 +540,7 @@ class GeoEdge(GeoObject):
|
|
|
540
540
|
dim = 1
|
|
541
541
|
|
|
542
542
|
@property
|
|
543
|
-
def
|
|
543
|
+
def selection(self) -> EdgeSelection:
|
|
544
544
|
return EdgeSelection(self.tags)
|
|
545
545
|
|
|
546
546
|
def __init__(self, tag: int | list[int]):
|
|
@@ -558,7 +558,7 @@ class GeoSurface(GeoObject):
|
|
|
558
558
|
dim = 2
|
|
559
559
|
|
|
560
560
|
@property
|
|
561
|
-
def
|
|
561
|
+
def selection(self) -> FaceSelection:
|
|
562
562
|
return FaceSelection(self.tags)
|
|
563
563
|
|
|
564
564
|
def __init__(self, tag: int | list[int]):
|
|
@@ -311,22 +311,25 @@ class Microwave3D:
|
|
|
311
311
|
|
|
312
312
|
if points.size==0:
|
|
313
313
|
raise SimulationError(f'The lumped port {port} has no nodes associated with it')
|
|
314
|
+
|
|
314
315
|
xs = self.mesh.nodes[0,points]
|
|
315
316
|
ys = self.mesh.nodes[1,points]
|
|
316
317
|
zs = self.mesh.nodes[2,points]
|
|
317
318
|
|
|
318
319
|
dotprod = xs*field_axis[0] + ys*field_axis[1] + zs*field_axis[2]
|
|
319
320
|
|
|
320
|
-
start_id =
|
|
321
|
+
start_id = np.argwhere(dotprod == np.min(dotprod)).flatten()
|
|
322
|
+
|
|
323
|
+
xs = xs[start_id]
|
|
324
|
+
ys = ys[start_id]
|
|
325
|
+
zs = zs[start_id]
|
|
321
326
|
|
|
322
|
-
start = _pick_central(self.mesh.nodes[:,start_id.flatten()])
|
|
323
|
-
logger.info(f'Starting node = {_dimstring(start)}')
|
|
324
|
-
end = start + port.Vdirection.np*port.height
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
port.vintline = Line.from_points(start, end, 21)
|
|
328
327
|
|
|
329
|
-
|
|
328
|
+
for x,y,z in zip(xs, ys, zs):
|
|
329
|
+
start = np.array([x,y,z])
|
|
330
|
+
end = start + port.Vdirection.np*port.height
|
|
331
|
+
port.vintline.append(Line.from_points(start, end, 21))
|
|
332
|
+
logger.trace(f'Port[{port.port_number}] integration line {start} -> {end}.')
|
|
330
333
|
|
|
331
334
|
port.v_integration = True
|
|
332
335
|
|
|
@@ -1003,7 +1006,8 @@ class Microwave3D:
|
|
|
1003
1006
|
if bc.Z0 is None:
|
|
1004
1007
|
raise SimulationError('Trying to compute the impedance of a boundary condition with no characteristic impedance.')
|
|
1005
1008
|
|
|
1006
|
-
|
|
1009
|
+
Voltages = [line.line_integral(fieldfunction) for line in bc.vintline]
|
|
1010
|
+
V = sum(Voltages)/len(Voltages)
|
|
1007
1011
|
|
|
1008
1012
|
if bc.active:
|
|
1009
1013
|
if bc.voltage is None:
|
|
@@ -834,7 +834,7 @@ class LumpedPort(PortBC):
|
|
|
834
834
|
# logger.info('Constructing coordinate system from normal port')
|
|
835
835
|
# self.cs = Axis(self.selection.normal).construct_cs() # type: ignore
|
|
836
836
|
self.cs = GCS
|
|
837
|
-
self.vintline: Line
|
|
837
|
+
self.vintline: list[Line] = []
|
|
838
838
|
self.v_integration = True
|
|
839
839
|
|
|
840
840
|
@property
|
|
@@ -186,7 +186,7 @@ def _norm(x, y, z):
|
|
|
186
186
|
|
|
187
187
|
def _select(obj: GeoObject | Selection) -> Selection:
|
|
188
188
|
if isinstance(obj, GeoObject):
|
|
189
|
-
return obj.
|
|
189
|
+
return obj.selection
|
|
190
190
|
return obj
|
|
191
191
|
|
|
192
192
|
def _merge(lst: Iterable[GeoObject | Selection]) -> Selection:
|
|
@@ -523,18 +523,19 @@ class PVDisplay(BaseDisplay):
|
|
|
523
523
|
d = _min_distance(xf, yf, zf)
|
|
524
524
|
|
|
525
525
|
if port.vintline is not None:
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
526
|
+
for line in port.vintline:
|
|
527
|
+
xs, ys, zs = line.cpoint
|
|
528
|
+
p_line = pv.Line(
|
|
529
|
+
pointa=(xs[0], ys[0], zs[0]),
|
|
530
|
+
pointb=(xs[-1], ys[-1], zs[-1]),
|
|
531
|
+
)
|
|
532
|
+
self._plot.add_mesh(
|
|
533
|
+
p_line,
|
|
534
|
+
color='red',
|
|
535
|
+
pickable=False,
|
|
536
|
+
line_width=3.0,
|
|
537
|
+
)
|
|
538
|
+
|
|
538
539
|
if k0 is None:
|
|
539
540
|
if isinstance(port, ModalPort):
|
|
540
541
|
k0 = port.get_mode(0).k0
|
|
@@ -29,7 +29,7 @@ dx = 2 * mm # distance from horn exit to PML start
|
|
|
29
29
|
|
|
30
30
|
# Create simulation object
|
|
31
31
|
m = em.Simulation('HornAntenna')
|
|
32
|
-
m.check_version("0.6.
|
|
32
|
+
m.check_version("0.6.11") # Checks version compatibility.
|
|
33
33
|
# --- Coordinate system for horn geometry -------------------------------
|
|
34
34
|
hornCS = em.CS(em.YAX, em.ZAX, em.XAX)
|
|
35
35
|
|
|
@@ -29,7 +29,7 @@ def Cf(C):
|
|
|
29
29
|
pack = '0603' # package footprint for lumped components
|
|
30
30
|
# Create simulation and PCB layouter with substrate thickness and material
|
|
31
31
|
m = em.Simulation('LumpedFilter')
|
|
32
|
-
m.check_version("0.6.
|
|
32
|
+
m.check_version("0.6.11") # Checks version compatibility.
|
|
33
33
|
|
|
34
34
|
th = 0.5 # substrate thickness (meters)
|
|
35
35
|
Hair = 2.0
|
|
@@ -12,7 +12,7 @@ direction (+Z vs -Z). In EMerge we can alignm modes using the .align_mode() meth
|
|
|
12
12
|
|
|
13
13
|
# First we define our simulation
|
|
14
14
|
m = em.Simulation('aligntest')
|
|
15
|
-
m.check_version("0.6.
|
|
15
|
+
m.check_version("0.6.11") # Checks version compatibility.
|
|
16
16
|
|
|
17
17
|
# We create a cyllindrical waveguide in the Y-axis.
|
|
18
18
|
cyl = em.geo.Cylinder(0.012, 0.05, em.YAX.construct_cs())
|
|
@@ -25,7 +25,7 @@ porth = 2*mm # vertical height of the feed extrusion
|
|
|
25
25
|
|
|
26
26
|
# --- Simulation object -------------------------------------------------------
|
|
27
27
|
model = em.Simulation('helix')
|
|
28
|
-
model.check_version("0.6.
|
|
28
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
29
29
|
|
|
30
30
|
dfeed = 3*mm # straight feed length before the helix starts
|
|
31
31
|
|
|
@@ -37,7 +37,7 @@ wgb = 10.16*mm
|
|
|
37
37
|
L = 50*mm
|
|
38
38
|
|
|
39
39
|
model = em.Simulation('Test Mode')
|
|
40
|
-
model.check_version("0.6.
|
|
40
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
41
41
|
|
|
42
42
|
# first lets define a WR90 waveguide
|
|
43
43
|
wg_box = em.geo.Box(L, wga, wgb, position=(-L, -wga/2, -wgb/2))
|
|
@@ -28,7 +28,7 @@ pcbmat = em.Material(er=er, color="#217627", opacity=0.2)
|
|
|
28
28
|
# We start by creating our simulation object.
|
|
29
29
|
|
|
30
30
|
m = em.Simulation('Demo1_SIF', loglevel='INFO')
|
|
31
|
-
m.check_version("0.6.
|
|
31
|
+
m.check_version("0.6.11") # Checks version compatibility.
|
|
32
32
|
# To accomodate PCB routing we make use of the PCBLayouter class. To use it we need to
|
|
33
33
|
# supply it with a thickness, the desired air-box height, the units at which we supply
|
|
34
34
|
# the dimensions and the PCB material.
|
|
@@ -43,7 +43,7 @@ lfeed = 100*mil
|
|
|
43
43
|
|
|
44
44
|
# A usual we start our simulation file
|
|
45
45
|
model = em.Simulation('Combline_DEMO')
|
|
46
|
-
model.check_version("0.6.
|
|
46
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
47
47
|
|
|
48
48
|
# The filter consists of quarter lamba cylindrical pins inside an airbox.
|
|
49
49
|
# First we create the airbox
|
|
@@ -38,7 +38,7 @@ extra = 100 # extra margin (mil)
|
|
|
38
38
|
|
|
39
39
|
# --- Simulation setup ----------------------------------------------------
|
|
40
40
|
model = em.Simulation('Demo3')
|
|
41
|
-
model.check_version("0.6.
|
|
41
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
42
42
|
# --- Material and layouter -----------------------------------------------
|
|
43
43
|
mat = em.Material(er=3.55, color="#488343", opacity=0.1)
|
|
44
44
|
# Create PCB layouter with given substrate thickness and units
|
|
@@ -34,7 +34,7 @@ f2 = 1.60e9 # stop frequency
|
|
|
34
34
|
# --- Create simulation object -------------------------------------------
|
|
35
35
|
model = em.Simulation('MyPatchAntenna')
|
|
36
36
|
|
|
37
|
-
model.check_version("0.6.
|
|
37
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
38
38
|
|
|
39
39
|
# --- Define geometry primitives -----------------------------------------
|
|
40
40
|
# Substrate block centered at origin in XY, thickness in Z (negative down)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import emerge as em
|
|
2
2
|
|
|
3
3
|
model = em.Simulation('Sphere')
|
|
4
|
-
model.check_version("0.6.
|
|
4
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
5
5
|
|
|
6
6
|
poly = em.geo.XYPolygon([0, 0.05, 0.05, 0], [0, 0, 0.1, 0.1])
|
|
7
7
|
vol = poly.revolve(em.XZPLANE.cs(), (0,0,0), (1,0,0))
|
|
@@ -14,7 +14,7 @@ mm = 0.001 # Define a millimeter
|
|
|
14
14
|
th = 1.0 # mm
|
|
15
15
|
|
|
16
16
|
model = em.Simulation('Stripline_test')
|
|
17
|
-
model.check_version("0.6.
|
|
17
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
18
18
|
|
|
19
19
|
# As usual we start by creating our layouter
|
|
20
20
|
ly = em.geo.PCB(th, mm, em.GCS, em.lib.DIEL_RO4350B)
|
|
@@ -32,7 +32,7 @@ fl = 25*mm # Feed length
|
|
|
32
32
|
|
|
33
33
|
# We start again by defining our simulation model
|
|
34
34
|
model = em.Simulation('Periodic')
|
|
35
|
-
model.check_version("0.6.
|
|
35
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
36
36
|
|
|
37
37
|
# Next we will create a PeriodicCell class (in our case a hexagonal cell). This class
|
|
38
38
|
# is simply meant to simplify our lives and improve the simulation setup flow.
|
|
@@ -80,7 +80,7 @@ wgaps = np.linspace(1*mm, 20*mm, 21)
|
|
|
80
80
|
Ks = []
|
|
81
81
|
hphis = []
|
|
82
82
|
with em.Simulation('IrisSim') as sim:
|
|
83
|
-
sim.check_version("0.6.
|
|
83
|
+
sim.check_version("0.6.11") # Checks version compatibility.
|
|
84
84
|
for wgap in sim.parameter_sweep(True, wgap=wgaps):
|
|
85
85
|
# Define two short waveguide sections separated by iris plate
|
|
86
86
|
wg1 = em.geo.Box(wga, Lfeed, wgb, (-wga/2, -Lfeed - t_thickness/2, 0))
|
|
@@ -33,7 +33,7 @@ Nmodes = 5
|
|
|
33
33
|
|
|
34
34
|
# --- Create simulation ---------------------------------------------------
|
|
35
35
|
model = em.Simulation('DielectricResonatorFilter', loglevel="DEBUG")
|
|
36
|
-
model.check_version("0.6.
|
|
36
|
+
model.check_version("0.6.11") # Checks version compatibility.
|
|
37
37
|
|
|
38
38
|
# --- Build geometry ------------------------------------------------------
|
|
39
39
|
# Metal enclosure box (PEC by default)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/generalized_eigen.py
RENAMED
|
File without changes
|
{emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|