|
11 | 11 | "\n", |
12 | 12 | "Each filter stage is formed by 4 cascaded Mach-Zenhder Interferometers (MZIs) with predefined delays for the central wavelength. Symmetrical Direction Couplers (DCs) are used to mix the signals at the ends of the MZI arms. In order to facilitate fabrication, all DC gaps are kept equal, so the power transfer ratios are defined by the coupling length of the DCs.\n", |
13 | 13 | "\n", |
14 | | - "We will design each DC through 3D FDTD simulations to guarantee the desired power ratios, which have been calculated to provide maximally flat response. The S parameters computed through FDTD are later used in the full circuit simulation along with models for staight and curved waveguide sections, leading to an accurate model that exhibits features similar to those found in experimental data." |
| 14 | + "We will design each DC through 3D FDTD simulations to guarantee the desired power ratios, which have been calculated to provide maximally flat response. The S parameters computed through FDTD are later used in the full circuit simulation along with models for straight and curved waveguide sections, leading to an accurate model that exhibits features similar to those found in experimental data." |
15 | 15 | ] |
16 | 16 | }, |
17 | 17 | { |
|
195 | 195 | "lines_to_next_cell": 2 |
196 | 196 | }, |
197 | 197 | "source": [ |
198 | | - "Now we crete a fitting function to calculate the DC length for a given power ratio.\n", |
| 198 | + "Now we create a fitting function to calculate the DC length for a given power ratio.\n", |
199 | 199 | "\n", |
200 | 200 | "In the filter specification, the desired ratios are 0.5, 0.13, 0.12, 0.5, and 0.25. We calculate the DC lengths accordingly.\n" |
201 | 201 | ] |
|
209 | 209 | "source": [ |
210 | 210 | "def coupler_length(λ: float = 1.55, power_ratio: float = 0.5):\n", |
211 | 211 | " i0 = np.argmin(np.abs(wavelengths - λ))\n", |
212 | | - " i1 = min(i0 + 1, len(wavelengths) - 1) if λ > wavelengths[i] else max(i0 - 1, 0)\n", |
| 212 | + " i1 = min(i0 + 1, len(wavelengths) - 1) if λ > wavelengths[i0] else max(i0 - 1, 0)\n", |
213 | 213 | " if i1 != i0:\n", |
214 | 214 | " pr = (\n", |
215 | 215 | " sim_ratios[:, i0] * (wavelengths[i1] - λ)\n", |
|
256 | 256 | " filepath=PATH.sparameters_repo / f\"dc_{length}.npz\",\n", |
257 | 257 | " layer_stack=layer_stack,\n", |
258 | 258 | " )\n", |
259 | | - " for length in sim_lengths\n", |
| 259 | + " for length in lengths\n", |
260 | 260 | "]\n", |
261 | 261 | "sims = gt.write_sparameters_batch(jobs)\n", |
262 | 262 | "s_params_list = [sim.result() for sim in sims]\n", |
|
0 commit comments