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.

Files changed (109) hide show
  1. {emerge-0.6.10 → emerge-0.6.11}/.bumpversion.toml +1 -1
  2. {emerge-0.6.10 → emerge-0.6.11}/PKG-INFO +1 -1
  3. {emerge-0.6.10 → emerge-0.6.11}/emerge/__init__.py +1 -1
  4. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/bc.py +1 -1
  5. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geometry.py +5 -5
  6. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/microwave_3d.py +13 -9
  7. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/microwave_bc.py +1 -1
  8. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/matplotlib/mpldisplay.py +1 -1
  9. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/pyvista/display.py +14 -13
  10. {emerge-0.6.10 → emerge-0.6.11}/examples/demo10_sgh.py +1 -1
  11. {emerge-0.6.10 → emerge-0.6.11}/examples/demo11_lumped_element_filter.py +1 -1
  12. {emerge-0.6.10 → emerge-0.6.11}/examples/demo12_mode_alignment.py +1 -1
  13. {emerge-0.6.10 → emerge-0.6.11}/examples/demo13_helix_antenna.py +1 -1
  14. {emerge-0.6.10 → emerge-0.6.11}/examples/demo14_boundary_selection.py +1 -1
  15. {emerge-0.6.10 → emerge-0.6.11}/examples/demo1_stepped_imp_filter.py +1 -1
  16. {emerge-0.6.10 → emerge-0.6.11}/examples/demo2_combline_filter.py +1 -1
  17. {emerge-0.6.10 → emerge-0.6.11}/examples/demo3_coupled_line_filter.py +1 -1
  18. {emerge-0.6.10 → emerge-0.6.11}/examples/demo4_patch_antenna.py +1 -1
  19. {emerge-0.6.10 → emerge-0.6.11}/examples/demo5_revolve.py +1 -1
  20. {emerge-0.6.10 → emerge-0.6.11}/examples/demo6_striplines_with_vias.py +1 -1
  21. {emerge-0.6.10 → emerge-0.6.11}/examples/demo7_periodic_cells.py +1 -1
  22. {emerge-0.6.10 → emerge-0.6.11}/examples/demo8_waveguide_bpf_synthesis.py +1 -1
  23. {emerge-0.6.10 → emerge-0.6.11}/examples/demo9_dielectric_resonator.py +1 -1
  24. {emerge-0.6.10 → emerge-0.6.11}/pyproject.toml +1 -1
  25. {emerge-0.6.10 → emerge-0.6.11}/uv.lock +1 -1
  26. {emerge-0.6.10 → emerge-0.6.11}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {emerge-0.6.10 → emerge-0.6.11}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  28. {emerge-0.6.10 → emerge-0.6.11}/.gitignore +0 -0
  29. {emerge-0.6.10 → emerge-0.6.11}/.opt +0 -0
  30. {emerge-0.6.10 → emerge-0.6.11}/.python-version +0 -0
  31. {emerge-0.6.10 → emerge-0.6.11}/LICENSE +0 -0
  32. {emerge-0.6.10 → emerge-0.6.11}/README.md +0 -0
  33. {emerge-0.6.10 → emerge-0.6.11}/THIRD_PARTY_LICENSES.md +0 -0
  34. {emerge-0.6.10 → emerge-0.6.11}/UMFPACK_Install_windows.md +0 -0
  35. {emerge-0.6.10 → emerge-0.6.11}/UMFPACK_installer_windows.py +0 -0
  36. {emerge-0.6.10 → emerge-0.6.11}/emerge/__main__.py +0 -0
  37. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/__init__.py +0 -0
  38. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/_cache_check.py +0 -0
  39. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/const.py +0 -0
  40. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/coord.py +0 -0
  41. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/cs.py +0 -0
  42. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/dataset.py +0 -0
  43. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/__init__.py +0 -0
  44. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/femdata.py +0 -0
  45. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/index_interp.py +0 -0
  46. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/ned2_interp.py +0 -0
  47. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/nedelec2.py +0 -0
  48. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/elements/nedleg2.py +0 -0
  49. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/__init__.py +0 -0
  50. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/horn.py +0 -0
  51. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/modeler.py +0 -0
  52. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/operations.py +0 -0
  53. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pcb.py +0 -0
  54. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pcb_tools/calculator.py +0 -0
  55. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pcb_tools/macro.py +0 -0
  56. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/pmlbox.py +0 -0
  57. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/polybased.py +0 -0
  58. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/shapes.py +0 -0
  59. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo/step.py +0 -0
  60. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/geo2d.py +0 -0
  61. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/howto.py +0 -0
  62. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/logsettings.py +0 -0
  63. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/material.py +0 -0
  64. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mesh3d.py +0 -0
  65. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mesher.py +0 -0
  66. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/common_functions.py +0 -0
  67. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/integrals.py +0 -0
  68. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/optimized.py +0 -0
  69. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/mth/pairing.py +0 -0
  70. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/periodic.py +0 -0
  71. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/__init__.py +0 -0
  72. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/__init__.py +0 -0
  73. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/adaptive_freq.py +0 -0
  74. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/assembler.py +0 -0
  75. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/curlcurl.py +0 -0
  76. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/generalized_eigen.py +0 -0
  77. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/generalized_eigen_hb.py +0 -0
  78. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/periodicbc.py +0 -0
  79. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/assembly/robinbc.py +0 -0
  80. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/microwave_data.py +0 -0
  81. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/periodic.py +0 -0
  82. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/port_functions.py +0 -0
  83. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/sc.py +0 -0
  84. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/simjob.py +0 -0
  85. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/sparam.py +0 -0
  86. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/physics/microwave/touchstone.py +0 -0
  87. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/__init__.py +0 -0
  88. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/display.py +0 -0
  89. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/pyvista/__init__.py +0 -0
  90. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/pyvista/display_settings.py +0 -0
  91. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot/simple_plots.py +0 -0
  92. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/plot.py +0 -0
  93. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/__init__.py +0 -0
  94. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/_gen_base.txt +0 -0
  95. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/_load_base.txt +0 -0
  96. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/projects/generate_project.py +0 -0
  97. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/selection.py +0 -0
  98. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/simmodel.py +0 -0
  99. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/simulation_data.py +0 -0
  100. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/solve_interfaces/cudss_interface.py +0 -0
  101. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/solve_interfaces/pardiso_interface.py +0 -0
  102. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/solver.py +0 -0
  103. {emerge-0.6.10 → emerge-0.6.11}/emerge/_emerge/system.py +0 -0
  104. {emerge-0.6.10 → emerge-0.6.11}/emerge/cli.py +0 -0
  105. {emerge-0.6.10 → emerge-0.6.11}/emerge/ext.py +0 -0
  106. {emerge-0.6.10 → emerge-0.6.11}/emerge/lib.py +0 -0
  107. {emerge-0.6.10 → emerge-0.6.11}/emerge/plot.py +0 -0
  108. {emerge-0.6.10 → emerge-0.6.11}/emerge/pyvista.py +0 -0
  109. {emerge-0.6.10 → emerge-0.6.11}/src/__init__.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [tool.bumpversion]
2
- current_version = "0.6.10"
2
+ current_version = "0.6.11"
3
3
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
4
4
  serialize = ["{major}.{minor}.{patch}"]
5
5
  search = "{current_version}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: emerge
3
- Version: 0.6.10
3
+ Version: 0.6.11
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
@@ -18,7 +18,7 @@ along with this program; if not, see
18
18
  """
19
19
  import os
20
20
 
21
- __version__ = "0.6.10"
21
+ __version__ = "0.6.11"
22
22
 
23
23
  ############################################################
24
24
  # HANDLE ENVIRONMENT VARIABLES #
@@ -53,7 +53,7 @@ class BoundaryCondition:
53
53
 
54
54
 
55
55
  if isinstance(assignment, GeoObject):
56
- assignment = assignment.select
56
+ assignment = assignment.selection
57
57
 
58
58
  self.selection: Selection = assignment
59
59
  self.tags: list[int] = self.selection.tags
@@ -250,7 +250,7 @@ class GeoObject:
250
250
  return self.material._metal
251
251
 
252
252
  @property
253
- def select(self) -> Selection:
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 select(self) -> DomainSelection:
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 select(self) -> PointSelection:
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 select(self) -> EdgeSelection:
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 select(self) -> FaceSelection:
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 = points[np.argwhere(dotprod == np.min(dotprod))]
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
- logger.info(f'Ending node = {_dimstring(end)}')
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
- V = bc.vintline.line_integral(fieldfunction)
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 | None = None
837
+ self.vintline: list[Line] = []
838
838
  self.v_integration = True
839
839
 
840
840
  @property
@@ -145,7 +145,7 @@ def _norm(x, y, z):
145
145
 
146
146
  def _select(obj: GeoObject | Selection) -> Selection:
147
147
  if isinstance(obj, GeoObject):
148
- return obj.select
148
+ return obj.selection
149
149
  return obj
150
150
 
151
151
  def _merge(lst: list[GeoObject | Selection]) -> Selection:
@@ -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.select
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
- xs, ys, zs = port.vintline.cpoint
527
- p_line = pv.Line(
528
- pointa=(xs[0], ys[0], zs[0]),
529
- pointb=(xs[-1], ys[-1], zs[-1]),
530
- )
531
- self._plot.add_mesh(
532
- p_line,
533
- color='red',
534
- pickable=False,
535
- line_width=3.0,
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
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.10") # Checks version compatibility.
36
+ model.check_version("0.6.11") # Checks version compatibility.
37
37
 
38
38
  # --- Build geometry ------------------------------------------------------
39
39
  # Metal enclosure box (PEC by default)
@@ -3,7 +3,7 @@ allow-direct-references = true
3
3
 
4
4
  [project]
5
5
  name = "emerge"
6
- version = "0.6.10"
6
+ version = "0.6.11"
7
7
  description = "An open source EM FEM simulator in Python"
8
8
  readme = "README.md"
9
9
  requires-python = ">=3.10, <4.0"
@@ -245,7 +245,7 @@ wheels = [
245
245
 
246
246
  [[package]]
247
247
  name = "emerge"
248
- version = "0.6.10"
248
+ version = "0.6.11"
249
249
  source = { editable = "." }
250
250
  dependencies = [
251
251
  { name = "cloudpickle" },
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