Skip to content

Commit 89b7088

Browse files
authored
EME FAQ (#31)
* EME FAQ
1 parent 49c3952 commit 89b7088

7 files changed

+76
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: How can I simulate bent waveguides with EME?
3+
date: 2025-05-27 18:52:22
4+
enabled: true
5+
category: "EME"
6+
---
7+
To simulate a **bent waveguide**, it is necessary to define the structure as **straight** in the geometry. The bend is then specified using the `bend_radius` parameter within the [`tidy3d.EMEModeSpec`](https://docs.flexcompute.com/projects/tidy3d/en/v2.7.3/api/_autosummary/tidy3d.EMEModeSpec.html){: target="_blank" rel="noopener"} object. In this setup, each EME cell represents a section with the given bend radius, allowing the solver to accurately account for curvature effects. When low losses are expected, it is recommended to use "double" precision in the [`tidy3d.EMEModeSpec`](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.EMEModeSpec.html) object.
8+
9+
For a detailed example, refer to [this tutorial](https://www.flexcompute.com/tidy3d/examples/notebooks/EMEBends/){: target="_blank" rel="noopener"}.
10+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: How do I model periodic structures with EME?
3+
date: 2025-05-27 18:52:21
4+
enabled: true
5+
category: "EME"
6+
---
7+
To efficiently model periodic structures with the EME solver, you can use the `tidy3d.EMEPeriodicitySweep` object, as demonstrated in [this example](https://docs.flexcompute.com/projects/tidy3d/en/latest/notebooks/PCMBraggGratingFilter.html){: target="_blank" rel="noopener"}.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: How do I run a sweep with EME?
3+
date: 2025-05-27 18:52:21
4+
enabled: true
5+
category: "EME"
6+
---
7+
For **length sweeps**, it is convenient to use a [`tidy3d.EMELengthSweep`](https://docs.flexcompute.com/projects/tidy3d/en/v2.7.1/api/_autosummary/tidy3d.EMELengthSweep.html){: target="_blank" rel="noopener"} object, which can be passed to the `sweep_spec` parameter of the [`tidy3d.EMESimulation`](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.EMESimulation.html){: target="_blank" rel="noopener"} object. This process is demonstrated in [this tutorial](https://www.flexcompute.com/tidy3d/examples/notebooks/EMESolver/){: target="_blank" rel="noopener"}.
8+
9+
For **frequency sweeps**, it is sufficient to provide a list of frequencies to the `freqs` parameter of the [`tidy3d.EMESimulation`](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.EMESimulation.html){: target="_blank" rel="noopener"} object.
10+
11+
It is also possible to perform a sweep over the number of periods in a periodic structure using the `tidy3d.EMEPeriodicitySweep` object, as demonstrated in [this example](https://docs.flexcompute.com/projects/tidy3d/en/latest/notebooks/PCMBraggGratingFilter.html){: target="_blank" rel="noopener"}.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: How do I set an EME simulation?
3+
date: 2025-05-27 18:52:21
4+
enabled: true
5+
category: "EME"
6+
---
7+
The process of setting up an **EME** simulation is very similar to that of an **FDTD** simulation. The geometry and material specifications are the same. The main difference is the need to define an `eme_grid_spec`, which determines the cells where the eigenmode expansions are computed.
8+
9+
The EME grid can be defined in several ways:
10+
- A **uniformly spaced grid** using the [`tidy3d.EMEUniformGrid`](https://docs.flexcompute.com/projects/tidy3d/en/v2.7.0/api/_autosummary/tidy3d.EMEUniformGrid.html#tidy3d.EMEUniformGrid){: target="_blank" rel="noopener"} object.
11+
- A **custom grid** using the [`tidy3d.EMEExplicitGrid`](https://docs.flexcompute.com/projects/tidy3d/en/v2.7.0/api/_autosummary/tidy3d.EMEExplicitGrid.html#tidy3d.EMEExplicitGrid){: target="_blank" rel="noopener"} object.
12+
- A **combination of both** uniform and explicit grids using the [`tidy3d.EMECompositeGrid`](https://docs.flexcompute.com/projects/tidy3d/en/v2.7.0/api/_autosummary/tidy3d.EMECompositeGrid.html#tidy3d.EMECompositeGrid){: target="_blank" rel="noopener"} object.
13+
14+
Refer to our [EME tutorial](https://docs.flexcompute.com/projects/tidy3d/en/v2.7.0/api/_autosummary/tidy3d.EMEUniformGrid.html#tidy3d.EMEUniformGrid){: target="_blank" rel="noopener"} for detailed examples on how to implement the different grid configurations.
15+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: How to define the number of modes for an EME simulation?
3+
date: 2025-05-27 18:52:21
4+
enabled: true
5+
category: "EME"
6+
---
7+
It is important to use a sufficient number of modes to accurately capture the physics of the device and ensure that the simulation results are converged. The exact number of modes required depends on the characteristics of the device. For example, larger waveguides support more propagating modes and therefore require a greater number of modes to achieve accurate results.
8+
9+
A recommended approach is to perform a **convergence sweep**, where the simulation is run with increasing numbers of modes to analyze how the results converge. This process is demonstrated at the end of [this tutorial](https://www.flexcompute.com/tidy3d/examples/notebooks/EMESolver/){: target="_blank" rel="noopener"}.
10+
11+

_faqs/what-is-eme.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: What is EME?
3+
date: 2025-05-27 18:52:21
4+
enabled: true
5+
category: "EME"
6+
---
7+
The **EigenMode Expansion (EME)** method is a frequency-domain technique useful for simulating very long waveguide-based structures. Its main advantage is that uniform sections of the structure require only a single cell for computation, while varying sections can be efficiently approximated using a limited number of cells. This approach can significantly reduce computational costs compared to FDTD method, while delivering highly comparable results.
8+
9+
Some common application examples include [MMIs](https://www.flexcompute.com/tidy3d/examples/notebooks/MultiplexingMMI/){: .color-primary-hover}, [tapers and couplers](https://www.flexcompute.com/tidy3d/examples/notebooks/EMESolver/){: .color-primary-hover}, and [bent waveguides](https://www.flexcompute.com/tidy3d/examples/notebooks/EMEBends/){: .color-primary-hover}.
10+
11+

faq_categories.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,4 +296,15 @@
296296
"_faqs/how-do-i-export-the-final-inverse-design-structure-to-gds.md"
297297
]
298298
}
299+
{
300+
"category": "EME",
301+
"id": "eme",
302+
"faqs": [
303+
"_faqs/how-do-i-run-a-sweep-with-eme.md",
304+
"_faqs/how-to-define-the-number-of-modes-for-an-eme-simulation.md",
305+
"_faqs/how-can-i-simulate-bent-waveguides-with-eme.md",
306+
"_faqs/how-do-i-set-an-eme-simulation.md",
307+
"_faqs/what-is-eme.md"
308+
]
309+
}
299310
]

0 commit comments

Comments
 (0)