Broadband Grating Coupler Design: Bandwidth vs. Peak Efficiency

When optimizing a grating coupler, an important consideration to keep in mind is the target bandwidth. Grating couplers are usually optimized at a single frequency or over a relatively narrow bandwidth. There are examples in the literature of grating coupler optimizations that target broadband designs, nevertheless, these tend to employ a sophisticated etching pattern [1] or undesirable parameter constraints – like a steep fiber angle [2] – to achieve a broadband response. As demonstrated recently in [3], it is possible to optimize for different bandwidths using a simple single etch design without unusual parameter constraints by employing inverse design.

The goal of this post is to show that Lumerical’s inverse design parametric adjoint optimization tool can be used to target different design bandwidths and achieve coupling efficiency results comparable to those in [3]. Note that, unlike the topology optimization approach presented in [3], the parametric adjoint optimization approach employed here leverages the broadband nature of Lumerical’s FDTD solver to avoid frequency sweeps, which are required when using a frequency domain solver.

Grating Coupler Optimization

For this brief demonstration, the target fabrication process is a standard silicon-on-insulator process with a 220 nm Si layer as shown in the diagram below. A TM waveguide mode is excited on the Si layer when the electric field of the source is parallel to the ribs. The source is a Gaussian beam with a 10.4 micron diameter and a tilt angle of 5 degrees.

The goal of the optimization is to tune each individual rib and groove (shown as ai and bi on the diagram) to maximize the coupling efficiency for target design bandwidths of 40, 100 and 120 nm with a center wavelength of 1550 nm. Following reference [3], four different etch depth values (shown as he in the above diagram) are considered: 40, 60, 80 and 100%.

Optimization Results

The plots below show the coupling efficiency (solid line) and back reflection (dashed line) results for each of the target bandwidths and etch depth values are shown below. As expected, larger target bandwidths tend to produce more broadband results, and larger target bandwidths tend to produce lower peak efficiencies.





These results are comparable to those shown in Fig. 2 of reference [3]. Observe that, for some cases, the optimization results presented here tend to have a shorter bandwidth, however, they also tend to have lower back reflections. This is also an inherent tradeoff of broadband designs. Lastly, note that the results presented here were obtained using the same initial structure, number of grates and source position in all cases, so it is possible to further improve the results by varying these quantities as well. If anyone is interested on pursing this analysis further, the simulation files and reproduction steps are attached.

Reproduction Steps

The files and grating_coupler_base.fsp perform the optimization for any target bandwidth and etch depth. After running the Python file from the script editor, a simulation file with the optimized structure is created.

Once the optimization has been run for each desired target bandwidth and etch depth, then the simulation files with the optimized structures must be run to extract the coupling efficiency and back reflection. This is can be done by updating the script plot_coupling_efficiency.lsf with the appropriate file names to produce plots like the ones shown above.

Simulation Files

grating_coupler_base.fsp (297.0 KB) (3.8 KB)
plot_coupling_efficiency.lsf (1.0 KB)


[1] Jason C. C. Mak, Quentin Wilmart, Ségolène Olivier, Sylvie Menezo, and Joyce K. S. Poon, “Silicon nitride-on-silicon bi-layer grating couplers designed by a global optimization method,” Opt. Express 26, 13656-13665, 2018.

[2] Yun Wang, Wei Shi, Xu Wang, Zeqin Lu, Michael Caverley, Richard Bojko, Lukas Chrostowski, and Nicolas A. F. Jaeger, “Design of broadband subwavelength grating couplers with low back reflection,” Opt. Lett. 40, 4647-4650, 2015.

[3] Neil V. Sapra, Dries Vercruysse, Logan Su, Ki Youl Yang, Jinhie Skarda, Alexander Y. Piggott, Jelena Vučković, “Inverse design and demonstration of broadband grating couplers,” arXiv:1808.07630 [].

hello, when I am learning your example:, I found that your setting of fom use
fom = ModeMatch(monitor_name = ‘fom’, mode_number = 3, direction = ‘Backward’, target_T_fwd = lambda wl: 0.5 * np.ones(wl.size), norm_p = 1

I don’t understand the purpose of this: target_T_fwd = lambda wl: 0.5 * np.ones(wl.size), because I found most of the script use: target_T_fwd = lambda wl: np.ones(wl.size)

Is this related to the definition of the desired bandwidth ?

If I want a 200nm 3db bandwidth, how can I modify the program?
if I change the wavelength range, wavelengths = Wavelengths(start = 1530.0e-9, stop = 1730.0e-9, points = 25), is that right?

Looking forward to your reply,
thank you!

Hello @XT.374653,

That target is set for a -3db or 0.5 normalized power coupling for the GC. Our other example devices target 100% coupling. There should not be any performance loss by changing it to target_T_fwd = lambda wl: 1.0 * np.ones(wl.size) since this GC parmetrization had a hard time getting better than 3db. It will change your FOM value however. We have some improvements for the shapes are parmeterized coming in 2020a that improves performance. Stay posted for an update to that example, and we encourage you to improve upon the results if you can.


hello, I have design a Ge-on-Si grating coupler in wavelength range: 5.45um-6.2um, the length of grating is about 500um, so its a very long grating, the target fom I set is target_T_fwd = lambda wl: 0.5 * np.ones(wl.size), because I want a broadband grating coupler. I used this python script:Ge-on-Si GC (3.8 KB)

question: this program can not run

Is this means adjoint method could not solve the long grating coupler structure?
thank you for your reply

Another question:
when I run your example, I got the result structure, and I notice that the source is no longer a gussan source, but a mode sorce in the linear Y, What is this used for? is that means I need to add a power monitor above the grating coupler to see the value of transmission T ?

Hello @XT.374653,

Are you referring to another example? The adjoint method requires two simulations a forward and adjoint at each optimization step. In these cases the monitors and sources are reversed. The lumopt code should perform these steps for you if you have set things up correctly, so you should not have to add a transmission monitor?

Maybe you could clarify what you meam?