This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Low-overhead distribution strategy for simulation and optimization of large-area metasurfaces

Jinhie Skarda1,∗, Rahul Trivedi1,2,3,∗,†, Logan Su1,∗, Diego Ahmad-Stein1, Hyounghan Kwon1,
Seunghoon Han4, Shanhui Fan1, and Jelena Vučković1,†
1E. L. Ginzton Laboratory, Stanford University, Stanford, CA 94305, USA.
2Max-Planck-Institut für Quantenoptik, Hans-Kopfermann-Str. 1, 85748 Garching, Germany.
3Department of electrical and computer engineering, University of Washington, Seattle, 98195.
4Samsung Advanced Institute of Technology, Samsung Electronics, Suwon-si, Gyeonggi-do 443-803, Republic of Korea
*These authors contributed equally to this work.
Corresponding authors: [email protected], [email protected]

Fast and accurate electromagnetic simulation of large-area metasurfaces remains a major obstacle in automating their design. In this paper, we propose a metasurface simulation distribution strategy which achieves a linear reduction in the simulation time with the number of compute nodes. Combining this distribution strategy with a GPU-based implementation of the Transition-matrix method, we perform accurate simulations and adjoint sensitivity analysis of large-area metasurfaces. We demonstrate ability to perform a distributed simulation of large-area metasurfaces (over 600λ×600λ600\lambda\times 600\lambda), while accurately accounting for scatterer-scatterer interactions significantly beyond the locally periodic approximation.

Being able to achieve full phase control of optical fields is a central challenge in optical engineering, with diverse applications in imaging, sensing, augmented, and virtual reality systems lee2019prospects ; berkovic2012optical . The past decades have seen a rapid development of metasurface-based optical elements that exploit collective scattering properties of subwavelength structures for phase-shaping the incoming fields and are significantly more compact and integrable when compared to the conventional refractive optical elements chen2020flat ; zhou2020flat ; colburn2018metasurface ; horie2016wide ; kwon2020single ; lee2018metasurface ; li2021inverse . The most commonly adopted metasurface-design strategy proceeds in two steps — first, a library of periodic meta-atoms with varying transmission amplitudes and phases is generated by varying a few geometric parameters specifying the meta-atom. Next, an aperiodic meta-surface is generated by laying out the periodic meta-atoms corresponding to the target spatially-varying phase profile mcclung2020will ; arbabi2020increasing ; pestourie2020active ; zhan2016low ; aieta2012aberration ; arbabi2016multiwavelength ; devlin2016broadband ; fan2018silicon . This approach suffers from two major limitations — first, the resulting metasurface should be almost periodic, and thus this strategy cannot be used for reliably designing rapidly varying phase-profiles. Second, generating the metasurface library becomes increasingly difficult for multi-functional design problems. For instance, while it is usually not difficult to generate a library for designing a simple phase-mask operating at a few operating modes shi2018single ; arbabi2016multiwavelength ; khorasaninejad2016polarization , it becomes increasingly difficult to scale up the number of modes since the same metasurface is required to simultaneously satisfy multiple design conditions corresponding to the different input modes.

Fully automating design of metasurfaces can provide a potential solution to this problem. Gradient based optimization has been successful in designing integrated optical elements that are more compact, robust and high performing than their classical counterparts Molesky:2018:NP ; yang2020inverse ; wang2011robust ; hughes2018adjoint ; sapra2020chip ; dory2019inverse ; piggott2015inverse ; su2020nanophotonic . A key ingredient in these approaches is the ability to rapidly simulate the full electromagnetic structure. This presents a challenge for metasurface designs, since practical metasurfaces could be approximately 10210^{2} - 10310^{3} λ\lambda in the linear dimension, making it impractical to use general-purpose electromagnetic solvers such as Finite-Difference Time-Domain (FDTD) taflove2000computational , Finite-Difference Frequency-Domain (FDFD) rumpf2012simple , or Finite Element Method (FEM) reddy2019introduction . Inverse-design approaches that use discrete general-purpose electromagnetic solvers to simulate and design the full surface are limited to small design areas or a small number of optimization iterationscamayd2020multifunctional ; mansouree2020multifunctional , or restrict the parameter space through a specific symmetry that allows for fast simulations christiansen2020fullwave ; lin2021computational ; chung2020high . Consequently, nearly all the current methods for inverse-designing large-scale 3D metasurfaces rely on approximate electromagnetic simulations of the metasurface locally using either periodic or radiation boundary conditions li2021inverse ; lin2019topology ; pestourie2018inverse ; chung2020tunable ; sell2017periodic ; phan2019high ; lin2019overlapping ; sell2017large ; bayati2021inverse ; zhelyeznyakov2021deep ; jiang2019global ; jiang2019free ; byrnes2016designing , which do not accurately account for interactions between different meta-atoms. These approaches are thus fundamentally limited to designing metasurfaces with slow phase variations due to the implicit local approximation. A coupled-mode formalism can also be applied for metasurface simulation and optimization doi:10.1021/acsphotonics.1c00100 but this approach is not guaranteed to yield exact fields, particularly for metasurfaces with multiple low quality-factor modes.

In this paper, we propose and demonstrate a numerically accurate simulation strategy that can be used to design and analyze large-area metasurfaces. Our strategy relies on a distribution of the simulation method where the simulation time scales linearly with the compute resources. This is achieved by a Nyquist-sampling decomposition of the fields incident on the metasurface, similar to that used recently to characterize the discrete impulse response of aperiodic metasurfaces torfeh2020modeling . Our distribution strategy, by ensuring minimal communication between compute nodes, allows for a linear reduction in the simulation time with the number of compute nodes, indicating that arbitrarily large metasurfaces can be simulated in reasonable time with sufficiently large number of compute nodes. On each compute node, we implement a GPU-based transition-matrix (T-matrix) simulationzhan2019controlling ; zhan2018inverse ; zhelyeznyakov2020design . Though there are GPU-optimized FDTD implementations that allow fast simulation of unit-cells up to 100 λ\lambda ×\times 100 λ\lambda hughestiny3d , these approaches do not currently provide a low-overhead means of parallel simulation distribution. We demonstrate numerically accurate simulations of metasurfaces of size 1mm ×\times 1 mm at a wavelength of 1.55μ1.55\mum (about 645λ×645λ645\lambda\times 645\lambda) on a cluster of 48 GPU nodes. Finally, we demonstrate the ability to efficiently compute the gradients with respect to both the geometry and the positions of the meta-atoms, thus enabling the application of optimization-based design to large-scale metasurfaces.

Low-Overhead Multi-GPU Simulation Strategy.

To simulate millimeter-scale metasurfaces, it is essential to parallelize the simulation method across multiple compute nodes. In order to be scalable, however, this parallelization scheme should introduce only a modest communication overhead in the simulation as this communication overhead can potentially offset any time savings achieved due to the parallelization (tang2020parallelized ; hermann2010multi ; dziekonski2017communication ).

For metasurface simulations, however, by utilizing the property that the incident fields generated by far-field sources will be within the light-cone in the k\textbf{k}-space, a parallelization strategy can be devised that requires minimal communication between the compute nodes. The fundamental principle behind this parallelization is to represent the bandlimited incident field by its samples using the Nyquist sampling theorem landau1967sampling . More precisely, consider an incident field propagating along the zz-direction — the transverse polarization of this field, EincT(x,y,z)\textbf{E}_{inc}^{T}(x,y,z) at any zz can be expressed as

EincT(x,y,z)=i,jEincT(xi,yj,z)fi,j(x,y),\displaystyle\textbf{E}_{inc}^{T}(x,y,z)=\sum_{i,j}\textbf{E}_{inc}^{T}(x_{i},y_{j},z)f_{i,j}(x,y),

where xi,yj=iλ/2,jλ/2x_{i},y_{j}=i\lambda/2,j\lambda/2 with λ\lambda being the wavelength in the background medium, and fi,j(x,y)f_{i,j}(x,y) is a jinc function goodman2005introduction centered at (xi,yj)(x_{i},y_{j}). Each term in the Nyquist decomposition can be considered to be an independent source, which falls off to zero with distance (Fig. 1a), and the response of a metasurface to these individual sources can be obtained by considering only a spatially-truncated portion of the metasurface in the simulation. This is numerically demonstrated in Fig. 1b, in which we consider the scattered power obtained on exciting a metasurface with a single jinc source as a function of the size of the metasurface included in the simulation. As the size of the metasurface is increased, the scattered power converges, indicating that a local simulation is sufficient to capture the metasurface response. The size of the metasurface to achieve a particular accuracy in the simulation is governed by diffraction of the jinc source by the time it reaches the metasurface.

Refer to caption
Figure 1: Nyquist sampling of bandlimited incident field. (a) Schematic of Nyquist sampling of the incident electric field, which is bandlimited because it is propagating. (b) Percent error in scattered field power versus spatial-extent of metasurface included in the simulation for a single jinc source placed 10 μ\mum (green), 5 μ\mum (blue), and 0.5 μ\mum (black) from the metasurface. The full metasurface is a 25 μ\mum ×\times 25 μ\mum metasurface with focal length of 10 μ\mum, and the surface size on the x-axis of this convergence plot refers to the spatial-extent around the center of this metasurface that is included in the simulation. The y-axis relative error is computed assuming the simulation including the full metasurface is the converged result.

To parallelize the simulation, we can then divide up the jinc sources that compose the incident electric fields into smaller groups, and simulate the local response of the metasurface for each source group by performing an independent solve on a single compute node (Fig. 2a). This parallelization strategy only requires communication between the compute nodes at the start and end of the simulation — once to distribute the simulation data corresponding to the local subregions, and then to consolidate the electric field data computed per subregion. On each compute node, we implement a GPU-parallelized transition-matrix (T-matrix) electromagnetic solver egel2017extending ; doicu2006light (See appendix I for details of the T-matrix method and our implementation of it). In order to accurately account for the diffraction of the jinc source while computing the local response of the metasurface, we include a padding region around the group of sources for each compute node. While in principle, we should ensure that the performance metric being analyzed (e.g. metasurface efficiency) converges with respect to the padding, in practice and for typical metasurfaces, the thickness of padding required for accurate simulations can be estimated simply by studying the response of a local patch of the metasurface to one source similar to that done in Fig. 1b. After having performed all the simulations, the electric fields obtained can be added together to compute the total electric field. Furthermore, because each compute node performs roughly the same amount of compute, the total simulation time scales as 1/Nnodes{1}/{N_{nodes}} (Fig. 2b). Details of our jinc source computation for the T-matrix method single-node simulation can be found in Appendix II.

Thus, given a sufficiently large number of compute nodes, we expect the simulation strategy to be able to handle large problems - on a compute cluster with 48 V100 GPU nodes, we were able to simulate metasurfaces of size about 645λ×645λ645\lambda\times 645\lambda in about 10 hours. This total time is broken down into the compute times for the key simulation parts in Fig. 2c.

Refer to caption
Figure 2: Low-overhead parallelization scheme to allow simulation of arbitrarily large metasurfaces. (a) Schematic of the simulation distribution scheme — the incident field is first sampled and represented as a superposition of jinc sources, and then smaller groups of jinc sources and the locally surrounding metasurface regions are simulated on independent GPUs. (b) Total simulation time versus number of V100 GPU’s used for simulation for a 50 μ\mum (black), 100 μ\mum (blue), and 300 μ\mum (green) metasurface. All metasurfaces have focal length of 25μ25\mum and are designed from a library of silicon cylinders with height 940 nm, radii range of 50-250 nm, lattice period of 1070 nm, air background, and source wavelength of 1550 nm (based on scatterer library fromarbabi2015subwavelength ). (c) Computation time for the key stages of the large-area 1 mm ×\times 1 mm metasurface simulation: top row – computing the Look-Up Tables (LUT) used to efficiently perform T-matrix simulation (Appendix I); middle row – computing the T-matrices (Appendix I.2) and solving the resulting linear system of equations for the scattered field coefficients (Appendix I.3, Eq. 23); bottom row – computing the E and H fields from the scattered field coefficients for each desired detector point (Appendix I.3, Eq. 24). The simulated surface is a 1 mm ×\times 1 mm metalens with focal length 0.4 mm (NA = 0.78) designed from a library of silicon cylinders with height 940 nm, radii range of 50-250 nm, lattice period of 1070 nm, air background, and source wavelength of 1550 nm (based on scatterer library fromarbabi2015subwavelength ). The simulation is performed on 48 V100 GPUs and is distributed between these compute nodes using a subregion size of 20 μ\mum ×\times 20 μ\mum and a padding of 6.5 μ\mum, resulting in 2601 subregion simulations.

Comparison with locally-periodic approximation. Approximate simulations of large-area metasurfaces often rely on the locally-periodic approximation (LPA) arbabi2015subwavelength ; khorasaninejad2016polarization ; pestourie2018inverse , wherein the local electromagnetic response of the metasurface is approximated with that of a periodic metasurface. To demonstrate that the full metasurface simulation approach captures meta-atom interactions beyond LPA, we compare the T-matrix simulation method with two commonly-used LPA approaches in Fig. 3. First is a simple transmission mask approximation, wherein we assume that the metasurface imparts a smooth position-dependent amplitude and phase to the incident field as determined by the periodic simulationarbabi2015subwavelength , and ignore the variation of the fields within a single unit cell. Second, we consider a more exact field stitching method li2021inverse , wherein the fields near the metasurface within each unit cell is approximated with the fields from the periodic simulation and then propagated. For high aspect ratio scatterers, we find that while the transmission mask method significantly deviates from the T-matrix method, the field stitching method does not. However, for small aspect-ratio scatterers, which are expected to have larger inter meta-atom interactions, both the LPA approximations significantly deviate from the T-matrix method gigli2020fundamental . These results are a strong indication of the ability of the T-matrix method to capture meta-atom interactions and accurately simulate the metasurface response.

Refer to caption
Figure 3: Comparison of T-matrix method simulations with locally-periodic assumption (LPA) simulations. (a) Efficiency versus focal length for 25 μ\mum ×\times 25 μ\mum metasurfaces designed from a library of high-aspect ratio scatterers with a large period (silicon cylinders with height 940 nm, radii range of 50-250 nm, lattice period of 1070 nm, and air background; source wavelength of 1550 nm – based on scatterer library from arbabi2015subwavelength ) — efficiencies are computed using the T-matrix approach (blue dots), the commonly-used LPA phase sampling approach (black curve), and the LPA field-stitching method (green curve). The metalens efficiency is defined as the ratio of the power within a circle of radius 3 ×\times FWHM in the focal plane to the power incident on the metasurface. The T-matrix and LPA-stitching methods agree fairly well here because the scatterers are high-aspect ratio and the lattice constant is large, hence the interactions between neighboring scatterers is negligible. (b) Efficiency versus focal length for 15 μ\mum ×\times 15 μ\mum metasurfaces designed from a library of low-aspect ratio scatterers with a small period (silicon cylinders with height 220 nm, radii range of 175-280 nm, lattice period of 666 nm, and background refractive index 1.66; source wavelength of 1340 nm – using scatterer library from gigli2020fundamental ) — efficiencies are computed using the T-matrix approach (blue dots), the commonly-used LPA phase sampling approach (black curve), and the LPA field-stitching method (green curve). The metalens efficiency is defined as the ratio of the power within a circle of radius 3 ×\times FWHM in the focal plane to the power incident on the metasurface. The T-matrix and LPA-stitching methods do not agree here because the scatterers are low-aspect ratio and the lattice constant is small, hence the interaction between neighboring scatterers is significant.

Distributed optimization-based design. An essential ingredient for optimization-based design of metasurfaces is an efficient evaluation of the gradient of the figure of merit with respect to the design parameters. A particularly useful method to evaluate gradients is based on adjoint-sensitivity analysis lalau2013adjoint ; piggott2017fabrication which analytically differentiates through Maxwell’s equations and computes the gradients with respect to all the design parameters with a cost proportional to only two electromagnetic simulations. The distributed T-matrix simulation method is also amenable to distributed adjoint sensitivity analysis and can allow for scalable evaluation of the gradient of a performance metric defined on the electric fields scattered from the metasurface with respect to both the meta-atom shape and positions (see Appendix IV for details). Fig. 4 demonstrates a distributed gradient-based optimization with respect to the positions and radii of the cylindrical meta-atoms of a cost function evaluating the amount of power within a spot at the focal plane for a 30 μ\mu m ×\times 30 μ\mum metalens with focal-length 20 μ\mum initially designed with the same scatterer library used in Fig. 3(b). The distributed optimization was performed on 9 T4 GPUs with the metalens divided into 9 subregions (subregion size of 10 μ\mum ×\times 10 μ\mu m, and padding size of 6 μ\mu m). The forward simulations performed took an average of about 120 GPU-min and the gradient computations with respect to radius and position took an average of 150 GPU-min). The metalens has a very high NA of 0.996 and the optimization improves the efficiency of the metalens by about 2 ×\times, giving a final efficiency of about 24%24\%. Although thin low-aspect ratio metasurfaces (Huygens metasurfaces) are of interest because they are more amenable to large-scale fabrication, they have not found widespread adoption due to their very limited efficiencies and angular responses gigli2020fundamental . Our ability to accurately model the scatterer-scatterer effects in our metasurface inverse-design may allow discovery of more practical Huygens metasurfaces ollanik2018high ; cai2020inverse . Combining this multi-GPU gradient computation with the multi-GPU forward simulation, we have opened the door to gradient-based optimization over the many degrees of freedom afforded by arbitrarily large metasurfaces. In particular, our method allows optimizing both the shape and position of the scatterers composing the large-area metasurface — optimizing the scatterer positions is very difficult for any inverse-design approach that relies on a periodicity assumption.

Refer to caption
Figure 4: Distributed Gradient-based optimization improvement of metalens design. (a) Lens efficiency versus optimization iteration, where lens efficiency is defined as the ratio of the power within a circle of radius 3 ×\times FWHM in the focal plane to the power incident on the metasurface. The initial metasurface is a 30 μ\mum ×\times 30 μ\mum metalens with focal-length 20 μ\mum designed from the low-aspect ratio scatterer library in Fig. 3(b) using the traditional metasurface design approach. The metalens is 15 μ\mum ×\times 15 μ\mum in size, and is optimized for x-polarized light only. In 35 optimization iterations, the metalens efficiency is almost doubled. The inset shows the X-component of the electric field in the focal plane before optimization (left) and after optimization (right). (b) Schematic of the cylindrical metasurface scatterers after optimization. (c) Histograms of the distance between the final scatterer positions and the initial scatterer positions (left) and the absolute radius difference between the final scatterer cylinders and the initial scatterer cylinders (right). As can be seen in these histograms, both the scatterer positions and radii change as a result of the optimization.

Conclusion. We have demonstrated a scalable distribution method to accurately simulate arbitrarily large-area metasurfaces. Our method uses the Nyquist sampling theorem to allow parallel distribution of compute across multiple GPU nodes, on which a T-matrix method formulation is used to efficiently simulate the subregion. We show a roughly 1NGPU\frac{1}{N_{GPU}} scaling of the total simulation time and demonstrate that our method accurately accounts for all scatterer interactions. Finally, we demonstrate our ability to apply our distribution method to the computation of the gradient with respect to all design parameters. Our simulation distribution method provides a solution to the long-standing problem of simulating large-area metasurfaces and opens the door to gradient-based optimization of the full metasurface, taking advantage of all the design degrees of freedom.

Data availability The data that support the plots within this paper and other findings of this study are available from the corresponding author upon reasonable request.

Competing interests The authors declare that there are no competing interests.
 

Author Contributions R.T. and L.S. conceived the idea. J.S., R.T., and L.S. designed and implemented the software. J.S., R.T., L.S., D.A-S., and H.K. ran benchmarks and conducted numerical experiments. J.V., S.H., and S.F. supervised the project. All authors assisted with data analysis and manuscript preparation.
 

Acknowledgements This work was supported by the Samsung GRO program. J.S acknowledges support from the National Science Foundation Graduate Research Fellowship (grant no. DGE-1656518) and Cisco Systems Stanford Graduate Fellowship (SGF). R.T acknowledges support from Max Planck Harvard research center for Quantum Optics (MPHQ) fellowship, and Sarah and Kailath Stanford Graduate Fellowship (SGF).

References

  • (1) Lee, Y.-H., Zhan, T. & Wu, S.-T. Prospects and challenges in augmented reality displays. Virtual Real. Intell. Hardw. 1, 10–20 (2019).
  • (2) Berkovic, G. & Shafir, E. Optical methods for distance and displacement measurements. Advances in Optics and Photonics 4, 441–471 (2012).
  • (3) Chen, W. T., Zhu, A. Y. & Capasso, F. Flat optics with dispersion-engineered metasurfaces. Nature Reviews Materials 5, 604–620 (2020).
  • (4) Zhou, Y., Zheng, H., Kravchenko, I. I. & Valentine, J. Flat optics for image differentiation. Nature Photonics 14, 316–323 (2020).
  • (5) Colburn, S., Zhan, A. & Majumdar, A. Metasurface optics for full-color computational imaging. Science advances 4, eaar2114 (2018).
  • (6) Horie, Y., Arbabi, A., Arbabi, E., Kamali, S. M. & Faraon, A. Wide bandwidth and high resolution planar filter array based on dbr-metasurface-dbr structures. Optics express 24, 11677–11682 (2016).
  • (7) Kwon, H., Arbabi, E., Kamali, S. M., Faraji-Dana, M. & Faraon, A. Single-shot quantitative phase gradient microscopy using a system of multifunctional metasurfaces. Nature Photonics 14, 109–114 (2020).
  • (8) Lee, G.-Y. et al. Metasurface eyepiece for augmented reality. Nature communications 9, 1–10 (2018).
  • (9) Li, Z. et al. Inverse design enables large-scale high-performance meta-optics reshaping virtual reality. arXiv preprint arXiv:2104.09702 (2021).
  • (10) McClung, A., Mansouree, M. & Arbabi, A. At-will chromatic dispersion by prescribing light trajectories with cascaded metasurfaces. Light: Science & Applications 9, 1–9 (2020).
  • (11) Arbabi, A. et al. Increasing efficiency of high numerical aperture metasurfaces using the grating averaging technique. Scientific reports 10, 1–10 (2020).
  • (12) Pestourie, R., Mroueh, Y., Nguyen, T. V., Das, P. & Johnson, S. G. Active learning of deep surrogates for pdes: Application to metasurface design. npj Computational Materials 6, 1–7 (2020).
  • (13) Zhan, A. et al. Low-contrast dielectric metasurface optics. ACS Photonics 3, 209–214 (2016).
  • (14) Aieta, F. et al. Aberration-free ultrathin flat lenses and axicons at telecom wavelengths based on plasmonic metasurfaces. Nano letters 12, 4932–4936 (2012).
  • (15) Arbabi, E., Arbabi, A., Kamali, S. M., Horie, Y. & Faraon, A. Multiwavelength polarization-insensitive lenses based on dielectric metasurfaces with meta-molecules. Optica 3, 628–633 (2016).
  • (16) Devlin, R. C., Khorasaninejad, M., Chen, W. T., Oh, J. & Capasso, F. Broadband high-efficiency dielectric metasurfaces for the visible spectrum. Proceedings of the National Academy of Sciences 113, 10473–10478 (2016).
  • (17) Fan, Z.-B. et al. Silicon nitride metalenses for close-to-one numerical aperture and wide-angle visible imaging. Physical Review Applied 10, 014005 (2018).
  • (18) Shi, Z. et al. Single-layer metasurface with controllable multiwavelength functions. Nano letters 18, 2420–2427 (2018).
  • (19) Khorasaninejad, M. et al. Polarization-insensitive metalenses at visible wavelengths. Nano letters 16, 7229–7234 (2016).
  • (20) Molesky, S., Piggott, A. Y., Weiliang, J., Vučković, J. & Rodriguez, A. W. Inverse design in nanophotonics. Nature Photonics 9, 659 (2018).
  • (21) Yang, K. Y. et al. Inverse-designed non-reciprocal pulse router for chip-based lidar. Nature Photonics 14, 369–374 (2020).
  • (22) Wang, F., Jensen, J. S. & Sigmund, O. Robust topology optimization of photonic crystal waveguides with tailored dispersion properties. JOSA B 28, 387–397 (2011).
  • (23) Hughes, T. W., Minkov, M., Williamson, I. A. & Fan, S. Adjoint method and inverse design for nonlinear nanophotonic devices. ACS Photonics 5, 4781–4787 (2018).
  • (24) Sapra, N. V. et al. On-chip integrated laser-driven particle accelerator. Science 367, 79–83 (2020).
  • (25) Dory, C. et al. Inverse-designed diamond photonics. Nature communications 10, 1–7 (2019).
  • (26) Piggott, A. Y. et al. Inverse design and demonstration of a compact and broadband on-chip wavelength demultiplexer. Nature Photonics 9, 374–377 (2015).
  • (27) Su, L. et al. Nanophotonic inverse design with spins: Software architecture and practical considerations. Applied Physics Reviews 7, 011407 (2020).
  • (28) Taflove, A. & Hagness, S. C. Computational electrodynamics, vol. 28 (Artech house publishers Norwood, MA, 2000).
  • (29) Rumpf, R. C. Simple implementation of arbitrarily shaped total-field/scattered-field regions in finite-difference frequency-domain. Progress In Electromagnetics Research 36, 221–248 (2012).
  • (30) Reddy, J. N. Introduction to the finite element method (McGraw-Hill Education, 2019).
  • (31) Camayd-Muñoz, P., Ballew, C., Roberts, G. & Faraon, A. Multifunctional volumetric meta-optics for color and polarization image sensors. Optica 7, 280–283 (2020).
  • (32) Mansouree, M. et al. Multifunctional 2.5 d metastructures enabled by adjoint optimization. Optica 7, 77–84 (2020).
  • (33) Christiansen, R. E. et al. Fullwave maxwell inverse design of axisymmetric, tunable, and multi-scale multi-wavelength metalenses. Optics Express 28, 33854–33868 (2020).
  • (34) Lin, Z., Roques-Carmes, C., Christiansen, R. E., Soljačić, M. & Johnson, S. G. Computational inverse design for ultra-compact single-piece metalenses free of chromatic and angular aberration. Applied Physics Letters 118, 041104 (2021).
  • (35) Chung, H. & Miller, O. D. High-na achromatic metalenses by inverse design. Optics express 28, 6945–6965 (2020).
  • (36) Lin, Z., Liu, V., Pestourie, R. & Johnson, S. G. Topology optimization of freeform large-area metasurfaces. Optics express 27, 15765–15775 (2019).
  • (37) Pestourie, R. et al. Inverse design of large-area metasurfaces. Optics express 26, 33732–33747 (2018).
  • (38) Chung, H. & Miller, O. D. Tunable metasurface inverse design for 80% switching efficiencies and 144 angular deflection. ACS Photonics 7, 2236–2243 (2020).
  • (39) Sell, D., Yang, J., Doshay, S. & Fan, J. A. Periodic dielectric metasurfaces with high-efficiency, multiwavelength functionalities. Advanced Optical Materials 5, 1700645 (2017).
  • (40) Phan, T. et al. High-efficiency, large-area, topology-optimized metasurfaces. Light: Science & Applications 8, 1–9 (2019).
  • (41) Lin, Z. & Johnson, S. G. Overlapping domains for topology optimization of large-area metasurfaces. Optics express 27, 32445–32453 (2019).
  • (42) Sell, D., Yang, J., Doshay, S., Yang, R. & Fan, J. A. Large-angle, multifunctional metagratings based on freeform multimode geometries. Nano letters 17, 3752–3757 (2017).
  • (43) Bayati, E. et al. Inverse designed extended depth of focus meta-optics for broadband imaging in the visible. arXiv preprint arXiv:2105.00160 (2021).
  • (44) Zhelyeznyakov, M. V., Brunton, S. & Majumdar, A. Deep learning to accelerate scatterer-to-field mapping for inverse design of dielectric metasurfaces. ACS Photonics 8, 481–488 (2021).
  • (45) Jiang, J. & Fan, J. A. Global optimization of dielectric metasurfaces using a physics-driven neural network. Nano letters 19, 5366–5372 (2019).
  • (46) Jiang, J. et al. Free-form diffractive metagrating design based on generative adversarial networks. ACS nano 13, 8872–8878 (2019).
  • (47) Byrnes, S. J., Lenef, A., Aieta, F. & Capasso, F. Designing large, high-efficiency, high-numerical-aperture, transmissive meta-lenses for visible light. Optics express 24, 5110–5124 (2016).
  • (48) Zhou, M. et al. Inverse design of metasurfaces based on coupled-mode theory and adjoint optimization. ACS Photonics 0, null (0). URL https://doi.org/10.1021/acsphotonics.1c00100. eprint https://doi.org/10.1021/acsphotonics.1c00100.
  • (49) Torfeh, M. & Arbabi, A. Modeling metasurfaces using discrete-space impulse response technique. ACS Photonics 7, 941–950 (2020).
  • (50) Zhan, A. et al. Controlling three-dimensional optical fields via inverse mie scattering. Science advances 5, eaax4769 (2019).
  • (51) Zhan, A., Fryett, T. K., Colburn, S. & Majumdar, A. Inverse design of optical elements based on arrays of dielectric spheres. Applied optics 57, 1437–1446 (2018).
  • (52) Zhelyeznyakov, M. V., Zhan, A. & Majumdar, A. Design and optimization of ellipsoid scatterer-based metasurfaces via the inverse t-matrix method. OSA Continuum 3, 89–103 (2020).
  • (53) Hughes, T. W., Minkov, M., Liu, V., Yu, Z. & Fan, S. Full wave simulation and optimization of large area metalens. OSA Optical Design and Fabrication Congress 2021 (2021).
  • (54) Tang, J., Zheng, Y., Yang, C., Wang, W. & Luo, Y. Parallelized implementation of the finite particle method for explicit dynamics in gpu. Computer Modeling in Engineering & Sciences 122, 5–31 (2020).
  • (55) Hermann, E., Raffin, B., Faure, F., Gautier, T. & Allard, J. Multi-gpu and multi-cpu parallelization for interactive physics simulations. In European Conference on Parallel Processing, 235–246 (Springer, 2010).
  • (56) Dziekonski, A., Sypek, P., Lamecki, A. & Mrozowski, M. Communication and load balancing optimization for finite element electromagnetic simulations using multi-gpu workstation. IEEE Transactions on Microwave Theory and Techniques 65, 2661–2671 (2017).
  • (57) Landau, H. Sampling, data transmission, and the nyquist rate. Proceedings of the IEEE 55, 1701–1706 (1967).
  • (58) Goodman, J. W. Introduction to fourier optics, roberts & co. Publishers, Englewood, Colorado (2005).
  • (59) Egel, A. et al. Extending the applicability of the t-matrix method to light scattering by flat particles on a substrate via truncation of sommerfeld integrals. Journal of Quantitative Spectroscopy and Radiative Transfer 202, 279–285 (2017).
  • (60) Doicu, A., Wriedt, T. & Eremin, Y. A. Light scattering by systems of particles: null-field method with discrete sources: theory and programs, vol. 124 (Springer, 2006).
  • (61) Arbabi, A., Horie, Y., Ball, A. J., Bagheri, M. & Faraon, A. Subwavelength-thick lenses with high numerical apertures and large efficiency based on high-contrast transmitarrays. Nature communications 6, 1–6 (2015).
  • (62) Gigli, C. et al. Fundamental limitations of huygens’ metasurfaces for optical beam shaping. arXiv e-prints arXiv–2011 (2020).
  • (63) Lalau-Keraly, C. M., Bhargava, S., Miller, O. D. & Yablonovitch, E. Adjoint shape optimization applied to electromagnetic design. Optics express 21, 21693–21701 (2013).
  • (64) Piggott, A. Y., Petykiewicz, J., Su, L. & Vučković, J. Fabrication-constrained nanophotonic inverse design. Scientific reports 7, 1–7 (2017).
  • (65) Ollanik, A. J., Smith, J. A., Belue, M. J. & Escarra, M. D. High-efficiency all-dielectric huygens metasurfaces from the ultraviolet to the infrared. ACS photonics 5, 1351–1358 (2018).
  • (66) Cai, H. et al. Inverse design of metasurfaces with non-local interactions. npj Computational Materials 6, 1–8 (2020).
  • (67) Solutions, F. Lumerical solutions. Inc., http://www. lumerical. com (2003).
  • (68) Markkanen, J. & Yuffa, A. J. Fast superposition t-matrix solution for clusters with arbitrarily-shaped constituent particles. Journal of Quantitative Spectroscopy and Radiative Transfer 189, 181–188 (2017).

Supplementary Information to
Low-overhead distribution strategy for simulation and optimization of large-area metasurfaces

Jinhie Skarda1,∗, Rahul Trivedi1,2,∗,†, Logan Su1,∗, Diego Ahmad-Stein1, Hyounghan Kwon1,
Seunghoon Han3, Shanhui Fan1, and Jelena Vuc̆ković1,†
1E. L. Ginzton Laboratory, Stanford University, Stanford, CA 94305, USA.
2Max-Planck-Institut für Quantenoptik, Hans-Kopfermann-Str. 1, 85748 Garching, Germany.
3Samsung Advanced Institute of Technology, Samsung Electronics, Suwon-si, Gyeonggi-do 443-803, Republic of Korea
*These authors contributed equally to this work.
Corresponding authors: [email protected],[email protected]

Appendix I T-Matrix Simulation Method

The key idea behind the T-matrix method is illustrated in Fig. S1(a) — the scattering properties of each meta-atom is captured by its T-matrix, which is a mathematical representation of the linear transformation mapping the incident field on the meta-atom to the scattered field. In principle, any basis for the incident or scattered fields can be used to represent this T-matrix. However, since the meta-atom sizes are of the order of a wavelength, choosing the spherical or spheroidal basis functionsdoicu2006light provides a computationally economical description of the T-matrix (i.e. only a modest number of basis functions are needed to capture the scattering properties of individual meta-atoms).

After computing the T-matrix for each meta-atom, a coupled system of equations can then be setup to account for interactions between different meta-atoms by treating the fields scattered from one meta-atom as being incident on the other meta-atoms. The coupling coefficients in such a system of equations are provided by the translation theorems for the chosen basis functions doicu2006light , which allow an expansion for basis functions centered at one meta-atom on the basis functions centered at a different meta-atom. These coupled systems of equations are then solved to obtain a representation of the total scattered field on the chosen basis functions, which can then be used to compute the electric fields in position space and allow for an evaluation of any relevant metasurface performance metric.

To obtain a more computationally-efficient implementation of the T-matrix method, we implement several optimizations often used in the field of computational engineering. First, we use an iterative algorithm (GMRES) to solve the system of equations resulting from the T-matrix formalism — a major advantage of using iterative algorithms is that they only require matrix-vector products which we program in a fully parallelized manner on GPUs. Furthermore, the computation of the T-matrix of the individual meta-atoms as well as of the coupling coefficients requires computing special functions which can be time consuming. In our implementation, we precompute lookup tables for these special functions before the start of the T-matrix simulation which significantly cuts down the run-time of the full simulation.

Fig.S1b shows a comparison of the simulation time of our implementation when compared to commercially available FDTD solvers solutions2003lumerical . We note that this is not a strictly rigorous benchmark, as the parallelization settings are not exactly the same between our software and Lumerical – the purpose of this comparison is only to roughly put our simulation times in context of a simulation tool the reader is likely familiar with. Our software is able to simulate a 60×6060\times 60 μm2\mu m^{2} large metasurface in 1-1.5 hours on a single GPU core (Nvidia V100). As seen in the inset in Fig. S1b, the bulk of the simulation time is spent in the linear system solve.

Refer to caption
Figure S1: Single-GPU T-matrix metasurface simulation method. (a) Schematic of T-matrix formulation for a single scatterer (left) and for collective scattering from multiple scatterers (right). (b) Simulation time versus simulation size for this single-GPU T-matrix method and for FDTD. The T-matrix method simulation was performed on a single V100 GPU, while the FDTD simulation was performed with Lumerical FDTD (Lumerical FDTD solutions, www.lumerical.com) on 8 CPUs with 32 GB RAM and mesh accuracy level 3. The inset breaks down the total simulation time for the 20 ×\times 20 μ\mum surface into the GMRES solve time (76.6%), the time to compute the T-matrices (17.1%), and all other computation (e.g. computing the incident field coefficients on the spherical harmonic basis functions and expanding the scattered field coefficients on the basis functions to compute the scattered electric field; 6.2%).

In the following subsections, we further describe the details of the T-matrix simulation method that we use on each compute node, and provide definitions of various objects used while setting up the simulations (e.g. vector spherical wave functions, transition matrices, translation theorems etc.). The focus is not derive the simulation method, but to present the equations that are ultimately implemented — the interested reader can refer to Doicu for a rigorous derivation of the simulation method.

I.1 Vector spherical wavefunctions

In this subsection, we provide definitions and some properties of the vector spherical wavefunctions. These wavefunctions serve as a basis functions to compactly represent the fields incident on and scattered from subwavelength scatterers, and are an important component of the transition matrix method. The definitions given here closely follow appendix B of Doicu .

The vector spherical wavefunctions are solutions of the frequency-domain Maxwell’s equations in homogenous media. Consider a medium with wavenumber k=ωε/ck=\omega\sqrt{\varepsilon}/c — the electric field E(x)\textbf{E}(\textbf{x}) in source-free regions then satisfies:

××E(x)k2E(x)=0\displaystyle\nabla\times\nabla\times\textbf{E}(\textbf{x})-k^{2}\textbf{E}(\textbf{x})=0 (1)

along with the transversality condition E(x)=0\nabla\cdot\textbf{E}(\textbf{x})=0 and the transversality condition E(x)=0\nabla\cdot\textbf{E}(\textbf{x})=0.

To construct the vector spherical wave functions, we begin by considering the solutions of the scalar helmholtz equation, which is the scalar counterpart of Eq. 1:

2ϕ(x)+k2ϕ(x)=0\displaystyle\nabla^{2}\phi(\textbf{x})+k^{2}\phi(\textbf{x})=0 (2)

It can be shown, with a straightforward application of the separation of variables method, that the spherical wavefunctions ϕl,m(kbx)\phi_{l,m}(k_{b}\textbf{x}) and ϕl,m(kbx)\mathcal{R}\phi_{l,m}(k_{b}\textbf{x}) defined below are solutions of the scalar helmholtz equation:

ϕl,m(kx)=hl(1)(kr)Pl|m|(cosθ)exp(imφ)\displaystyle\phi_{l,m}(k\textbf{x})=h_{l}^{(1)}(kr)P_{l}^{|m|}(\cos\theta)\exp(im\varphi) (3a)
ϕl,m(kx)=jl(kr)Pl|m|(cosθ)exp(imφ)\displaystyle\mathcal{R}\phi_{l,m}(k\textbf{x})=j_{l}(kr)P_{l}^{|m|}(\cos\theta)\exp(im\varphi) (3b)

where l{0,1,2}l\in\{0,1,2\dots\}, m{l,l+1,l1,l}m\in\{-l,-l+1,\dots l-1,l\}, (r,θ,φ)(r,\theta,\varphi) are the spherical coordinates of the point x, hl(1)(x)h_{l}^{(1)}(x) is the spherical hankel function of the first kind, jl(x)j_{l}(x) is the spherical bessel function and Pl|m|(x)P_{l}^{|m|}(x) is the normalized associated legendre polynomial. Note that each solution of the scalar wave function is indexed by two numbers — the orbital index ll and the magnetic index mm. \mathcal{R} indicates whether the wavefunction is well behaved at the origin — ϕl,m(kx)\mathcal{R}\phi_{l,m}(k\textbf{x}) evaluates to 0 at the origin while ϕl,m(x)\phi_{l,m}(\textbf{x}) diverges at the origin. Additionally, ϕl,m(kx)\phi_{l,m}(k\textbf{x}) captures spherical waves radiating to infinity, while ϕl,m(kx)\mathcal{R}\phi_{l,m}(k\textbf{x}) captures spherical standing waves (equal superpositions of outgoing and incoming waves) — this can be best appreciated by considering the asymptotic forms of these wavefunctions at large radial coordinates (kr1kr\gg 1):

ϕl,m(kx)exp(ikr)krPl|m|(cosθ)exp(imφ)\displaystyle\phi_{l,m}(k\textbf{x})\sim\frac{\exp(ikr)}{kr}P_{l}^{|m|}(\cos\theta)\exp(im\varphi) (4)
ϕl,m(kx)[exp(i(krlπ/2)exp(i(krlπ/2))]2ikrPl|m|(cosθ)exp(imφ)\displaystyle\mathcal{R}\phi_{l,m}(k\textbf{x})\sim\frac{[\exp(i(kr-l\pi/2)-\exp(-i(kr-l\pi/2))]}{2ikr}P_{l}^{|m|}(\cos\theta)\exp(im\varphi) (5)

For each scalar wave function, we can construct two vector spherical wave functions (corresponding to two independent polarizations) which satisfy Eq. 1 along with the transversality condition E(x)=0\nabla\cdot\textbf{E}(\textbf{x})=0. We denote the vector spherical wave functions by Φl,m,p(kbx)\Phi_{l,m,p}(k_{b}\textbf{x}) and Φl,m,p(kbx)\mathcal{R}\Phi_{l,m,p}(k_{b}\textbf{x}) (where p{0,1}p\in\{0,1\} is the polarization index) — these are then defined by:

[Φl,m,p=0(kx)Φl,m,p=0(kx)]=12l(l+1)[ϕl,m(kx)ϕl,m(kx)]×x\displaystyle\begin{bmatrix}\Phi_{l,m,p=0}(k\textbf{x})\\ \mathcal{R}\Phi_{l,m,p=0}(k\textbf{x})\end{bmatrix}=\frac{1}{\sqrt{2l(l+1)}}\nabla\begin{bmatrix}\phi_{l,m}(k\textbf{x})\\ \mathcal{R}\phi_{l,m}(k\textbf{x})\end{bmatrix}\times\textbf{x} (6a)
[Φl,m,p=1(kx)Φl,m,p=1(kx)]=1k×[Φl,m,p=0(kx)Φl,m,p=0(kx)]\displaystyle\begin{bmatrix}\Phi_{l,m,p=1}(k\textbf{x})\\ \mathcal{R}\Phi_{l,m,p=1}(k\textbf{x})\end{bmatrix}=\frac{1}{k}\nabla\times\begin{bmatrix}\Phi_{l,m,p=0}(k\textbf{x})\\ \mathcal{R}\Phi_{l,m,p=0}(k\textbf{x})\end{bmatrix} (6b)

where l{1,2,3}l\in\{1,2,3\dots\}, m{l,l+1l1,l}m\in\{-l,-l+1\dots l-1,l\} and p{0,1}p\in\{0,1\}. The vector spherical harmonics form a basis for the solutions of the vector helmholtz equation (Eq. 1), and an orthogonality condition can be constructed for them on the surface of (an arbitrarily chosen) sphere as delineated in Doicu .

I.2 Transition matrix

Consider a scatterer with permittivity εs\varepsilon_{s} embedded in a medium of permittivity εb\varepsilon_{b} — we denote by Γ\Gamma the volume of the scatterer, Γ\partial\Gamma the surface of the scatterer and by S\partial S the surface of a sphere enclosing the scatterer. Note that S\partial S can be chosen arbitrarily as long as it completely encloses the scatterer — for performing practical computations, it is customary to choose S\partial S as the smallest sphere that can enclose the scatterer. Throughout this section, we assume that the center of S\partial S is at the origin of the coordinate system.

Consider exciting the scatterer with an incident electric field Einc(x)\textbf{E}_{\text{inc}}(\textbf{x}) that is a superposition of regular vector spherical wavefunctions Φl,m,p(kbx)\mathcal{R}\Phi_{l,m,p}(k_{b}\textbf{x}), where kb=ωεb/ck_{b}=\omega\sqrt{\varepsilon_{b}}/c:

Einc(x)=l,m,pal,m,pΦl,m,p(kbx)\displaystyle\textbf{E}_{\text{inc}}(\textbf{x})=\sum_{l,m,p}a_{l,m,p}\mathcal{R}\Phi_{l,m,p}(k_{b}\textbf{x}) (7)

This incident field interacts with the scatterer, resulting in a scattered field Esca(x)\textbf{E}_{\text{sca}}(\textbf{x}) radiating away from the scatterer. Outside the sphere S\partial S, the scattered field can be expressed as a superposition of vector spherical wavefunctions Φl,m,p(kbx)\Phi_{l,m,p}(k_{b}\textbf{x}):

Esca(x)=l,m,psl,m,pΦl,m,p(kbx)\displaystyle\textbf{E}_{\text{sca}}(\textbf{x})=\sum_{l,m,p}s_{l,m,p}\Phi_{l,m,p}(k_{b}\textbf{x}) (8)

Note that the scattered fields can be entirely captured without including the contribution of regular vector spherical wave functions — this is a consequence of the fact that the scattered field is expected to propagate radially outward from the scatterer, and the regular vector spherical harmonics have a radially inward propagating component (Eq. 4). Moreover, the linearity of Maxwell’s equations implies that the coefficients sl,m,ps_{l,m,p} must be related to al,m,pa_{l,m,p} via a linear transformation:

sl,m,p=l,m,pTl,m,p;l,m,pal,m,p\displaystyle s_{l,m,p}=\sum_{l^{\prime},m^{\prime},p^{\prime}}T_{l,m,p;l^{\prime},m^{\prime},p^{\prime}}a_{l^{\prime},m^{\prime},p^{\prime}} (9)

In practice, the expansions of the incident and scattered fields Eqs. 7 and 8 are typically truncated to a finite number of terms by ignoring contributions of basis functions with l>lmaxl>l_{\text{max}} [this corresponds to using 2lmax(lmax+2)2l_{\text{max}}(l_{\text{max}}+2) basis functions]. In this case, all the coefficients al,m,pa_{l,m,p} (sl,m,ps_{l,m,p}) can be collected into a vector a (s), and Eq. 9 can be expressed as a matrix equation s=Ta\textbf{s}=\textbf{T}\textbf{a}. We will refer to T as the transition matrix of the scatterer.

There are a number of approaches to compute the transition matrix elements Tl,m,p;l,m,pT_{l,m,p;l^{\prime},m^{\prime},p^{\prime}} — we implement the approach based on the null field method Doicu . The null field method uses the surface integral equations to individually relate the incident and scattered fields to the fields on the scatterer surface, expand all the surface fields on the vector spherical harmonic basis, and then compute the relationship between the incident and scattered fields by eliminating the surface fields from the resulting equations. Final computation of the transition matrix method involves computing two matrices P and Q whose elements are given by the following integrals:

Pl,m,p;l,m,p=S[Φl,m,p(ksx)×Φl,m,1p(kbx)kskbΦl,m,1p(ksx)×Φl,m,p(kbx)]n(x)d2x\displaystyle P_{l,m,p;l^{\prime},m^{\prime},p^{\prime}}=\int_{\partial S}\bigg{[}\mathcal{R}\Phi_{l^{\prime},m^{\prime},p^{\prime}}(k_{s}\textbf{x})\times\Phi_{l,-m,1-p}(k_{b}\textbf{x})-\frac{k_{s}}{k_{b}}\mathcal{R}\Phi_{l^{\prime},m^{\prime},1-p^{\prime}}(k_{s}\textbf{x})\times\Phi_{l,-m,p}(k_{b}\textbf{x})\bigg{]}\cdot\textbf{n}(\textbf{x})\textrm{d}^{2}\textbf{x} (10a)
Ql,m,p;l,m,p=S[Φl,m,p(ksx)×Φl,m,1p(kbx)kskbΦl,m,1p(ksx)×Φl,m,p(kbx)]n(x)d2x\displaystyle Q_{l,m,p;l^{\prime},m^{\prime},p^{\prime}}=\int_{\partial S}\bigg{[}\mathcal{R}\Phi_{l^{\prime},m^{\prime},p^{\prime}}(k_{s}\textbf{x})\times\mathcal{R}\Phi_{l,-m,1-p}(k_{b}\textbf{x})-\frac{k_{s}}{k_{b}}\mathcal{R}\Phi_{l^{\prime},m^{\prime},1-p^{\prime}}(k_{s}\textbf{x})\times\mathcal{R}\Phi_{l,-m,p}(k_{b}\textbf{x})\bigg{]}\cdot\textbf{n}(\textbf{x})\textrm{d}^{2}\textbf{x} (10b)

where ksk_{s} is the wavenumber in the scatterer material, kbk_{b} is the wavenumber in the background medium in which the scatterers are embedded, and the transition matrix T is given by:

T=PQ1\displaystyle\textbf{T}=-\textbf{P}\textbf{Q}^{-1} (11)

We use a numerical discretization of 0.0025 microns for evaluating these surface integrals to compute the T-matrix.

Finally, we note that the transition matrix becomes an increasingly accurate description of the scatterer on increasing lmaxl_{\text{max}}. However, for subwavelength scatterers, a small lmaxl_{\text{max}} usually suffices to accurately describe the scattering properties of the scatterer. This is a key advantage of using the transition matrix method for simulating a collection of small scatterers, since the scattered fields from each scatterer can be described with a very small number of unknowns when expanded on the vector spherical wavefunctions. For all results in this paper, we have used lmax=6l_{\text{max}}=6.

I.3 Simulating collective scattering

Finally, we describe how to simulate an ensemble of scatterers when their individual transition matrices are known. Consider NN scatterers with transition matrices T1,T2TN\textbf{T}_{1},\textbf{T}_{2}\dots\textbf{T}_{N} located at x1,x2xN\textbf{x}_{1},\textbf{x}_{2}\dots\textbf{x}_{N}. We assume that the enclosing spheres (S\partial S defined in section I.2) of the scatterers do not intersect each other. This system of scatterers is excited with an incident field Einc(x)\textbf{E}_{\text{inc}}(\textbf{x}) which can be expanded into regular vector spherical wavefunctions centered at each of the scatterers:

Einc(x)=l,m,pal,m,p;i(0)Φl,m,n(kb(xxi))\displaystyle\textbf{E}_{\text{inc}}(\textbf{x})=\sum_{l,m,p}a^{(0)}_{l,m,p;i}\mathcal{R}\Phi_{l,m,n}(k_{b}(\textbf{x}-\textbf{x}_{i})) (12)

where i{1,2,3N}i\in\{1,2,3\dots N\} and kbk_{b} is the wavenumber of the background medium. Note that the coefficients al,m,n;i(0)a_{l,m,n;i}^{(0)} for different ii are not independent of each other — in particular, given these coefficients for one choice of ii, the coefficients for all other ii can be constructed via an application of the translation theorem for vector spherical wavefunctions Doicu . Typically, the incident field is known analytically (e.g. plane wave field), and hence these coefficients can be analytically determined for an arbitrary ii.

We express the scattered field as a superposition of vector spherical harmonics radiated from each scatterer:

Esca(x)=i=1Nl,m,psl,m,p;iΦl,m,p(kb(xxi))\displaystyle\textbf{E}_{\text{sca}}(\textbf{x})=\sum_{i=1}^{N}\sum_{l,m,p}s_{l,m,p;i}\Phi_{l,m,p}(k_{b}(\textbf{x}-\textbf{x}_{i})) (13)

where it is assumed that x lies outside the enclosing spheres of all scatterers. Consider now the jthj^{\text{th}} scatterer — the total incident field at this scatterer, Einc,j(x)\textbf{E}_{{\text{inc}},j}(\textbf{x}) is given by the sum of Einc(x)\textbf{E}_{\text{inc}}(\textbf{x}) as well as fields radiated by the neighbouring scatterers:

Einc,j(x)=Einc(x)+i=1ijNl,m,psl,m,p;iΦl,m,p(kb(xxi))\displaystyle\textbf{E}_{{\text{inc}},j}(\textbf{x})=\textbf{E}_{\text{inc}}(\textbf{x})+\sum_{\begin{subarray}{c}i=1\\ i\neq j\end{subarray}}^{N}\sum_{l,m,p}s_{l,m,p;i}\Phi_{l,m,p}(k_{b}(\textbf{x}-\textbf{x}_{i})) (14)

This field can be expressed entirely as a superposition of the regular vector spherical wavefunctions centered at xj\textbf{x}_{j} by the application of the translation theorem for the vector spherical wavefunctions. The translation theorem relates vector spherical wavefunctions defined with respect to two different origins to each other Doicu ; Egel — more explicitly:

Φl,m,p(k(xxa))=l,m,pξl,m,p;l,m,p(k(xaxb))Φl,m,p(k(xxb))\displaystyle\Phi_{l,m,p}(k(\textbf{x}-\textbf{x}_{a}))=\sum_{l^{\prime},m^{\prime},p^{\prime}}\xi_{l,m,p;l^{\prime},m^{\prime},p^{\prime}}(k(\textbf{x}_{a}-\textbf{x}_{b}))\Phi_{l^{\prime},m^{\prime},p^{\prime}}(k(\textbf{x}-\textbf{x}_{b})) (15)

where

ξl,m,p;l,m,p(x)=δp,pαl,m;l,m(x)+(1δp,p)βl,m;l,m(x)\displaystyle\xi_{l,m,p;l^{\prime},m^{\prime},p^{\prime}}(\textbf{x})=\delta_{p,p^{\prime}}\alpha_{l,m;l^{\prime},m^{\prime}}(\textbf{x})+(1-\delta_{p,p^{\prime}})\beta_{l,m;l^{\prime},m^{\prime}}(\textbf{x}) (16)

and with (r,φ,θ)(r,\varphi,\theta) as the spherical coordinates of the vector x:

αl,m;l,m(x)=exp(i(mm)φ)q=|ll|l+la5(l,m|l,m|q)hq(1)(r)Pq|mm|(cosθ)\displaystyle\alpha_{l,m;l^{\prime},m^{\prime}}(\textbf{x})=\exp(i(m-m^{\prime})\varphi)\sum_{q=|l-l^{\prime}|}^{l+l^{\prime}}a_{5}(l,m|l^{\prime},m^{\prime}|q)h_{q}^{(1)}(r)P_{q}^{|m-m^{\prime}|}(\cos\theta) (17a)
βl,m;l,m(x)=exp(i(mm)φ)q=|ll|+1l+lb5(l,m|l,m|q)hq(1)(r)Pq|mm|(cosθ)\displaystyle\beta_{l,m;l^{\prime},m^{\prime}}(\textbf{x})=\exp(i(m-m^{\prime})\varphi)\sum_{q=|l-l^{\prime}|+1}^{l+l^{\prime}}b_{5}(l,m|l^{\prime},m^{\prime}|q)h_{q}^{(1)}(r)P_{q}^{|m-m^{\prime}|}(\cos\theta) (17b)

where:

α(l,m|l,m|p)=\displaystyle\alpha(l,m|l^{\prime},m^{\prime}|p)= i|mm||m||m|+ll+p(1)mm\displaystyle i^{|m-m^{\prime}|-|m|-|m^{\prime}|+l^{\prime}-l+p}(-1)^{m-m^{\prime}} (18a)
×[l(l+1)+l(l+1)p(p+1)]2p+1\displaystyle\times[l(l+1)+l^{\prime}(l^{\prime}+1)-p(p+1)]\sqrt{2p+1}
×(2l+1)(2l+1)2l(l+1)(l+1)(llpmmmm)(llp000)\displaystyle\times\sqrt{\frac{(2l+1)(2l^{\prime}+1)}{2l(l+1)(l^{\prime}+1)}}\begin{pmatrix}l&l^{\prime}&p\\ m&-m^{\prime}&m^{\prime}-m\end{pmatrix}\begin{pmatrix}l&l^{\prime}&p\\ 0&0&0\end{pmatrix}
β(l,m|l,m|p)=\displaystyle\beta(l,m|l^{\prime},m^{\prime}|p)= i|mm||m||m|+ll+p(1)mm\displaystyle i^{|m-m^{\prime}|-|m|-|m^{\prime}|+l^{\prime}-l+p}(-1)^{m-m^{\prime}} (18b)
×(l+l+1+p)(l+l+1p)(p+ll)(pl+l)(2p+1)\displaystyle\times\sqrt{(l+l^{\prime}+1+p)(l+l^{\prime}+1-p)(p+l-l^{\prime})(p-l+l^{\prime})(2p+1)}
×(2l+1)(2l+1)2l(l+1)(l+1)(llpmmmm)(llp000)\displaystyle\times\sqrt{\frac{(2l+1)(2l^{\prime}+1)}{2l(l+1)(l^{\prime}+1)}}\begin{pmatrix}l&l^{\prime}&p\\ m&-m^{\prime}&m^{\prime}-m\end{pmatrix}\begin{pmatrix}l&l^{\prime}&p\\ 0&0&0\end{pmatrix}

with

(j1j2j3m1m2m3)\displaystyle\begin{pmatrix}j_{1}&j_{2}&j_{3}\\ m_{1}&m_{2}&m_{3}\end{pmatrix} (19)

is the Wigner-3j symbol Luscombe . With this addition theorem, Einc,j(x)\textbf{E}_{\text{inc},j}(\textbf{x}) can be rewritten as:

Einc,j(x)=l,m,pal,m,p;jΦl,m,p(kb(xxj))\displaystyle\textbf{E}_{\text{inc},j}(\textbf{x})=\sum_{l,m,p}a_{l,m,p;j}\mathcal{R}\Phi_{l,m,p}(k_{b}(\textbf{x}-\textbf{x}_{j})) (20)

where

al,m,p;j=al,m,p;j(0)+i=1ijNl,m,pξl,m,p;l,m,p(kb(xjxi))sl,m,p;i\displaystyle a_{l,m,p;j}=a^{(0)}_{l,m,p;j}+\sum_{\begin{subarray}{c}i=1\\ i\neq j\end{subarray}}^{N}\sum_{l^{\prime},m^{\prime},p^{\prime}}\xi_{l^{\prime},m^{\prime},p^{\prime};l,m,p}(k_{b}(\textbf{x}_{j}-\textbf{x}_{i}))s_{l^{\prime},m^{\prime},p^{\prime};i} (21)

Finally, the coefficients al,m,p;ja_{l,m,p;j} can be related to the coefficients sl,m,p;js_{l,m,p;j} via the transition matrix of the jthj^{\text{th}} scatterer: sj=Tjaj\textbf{s}_{j}=\textbf{T}_{j}\textbf{a}_{j}, where sj\textbf{s}_{j} and aj\textbf{a}_{j} are column vectors of the coefficients sl,m,n;js_{l,m,n;j} and al,m,n;ja_{l,m,n;j}. Denoting by 𝝃(xi,xj)\boldsymbol{\xi}(\textbf{x}_{i},\textbf{x}_{j}) as the matrix of the translation coefficients ξl,m,p;l,m,p(kb(xixj))\xi_{l,m,p;l^{\prime},m^{\prime},p^{\prime}}(k_{b}(\textbf{x}_{i}-\textbf{x}_{j})) with the unprimed indices corresponding to different rows and the primed indices corresponding to different columns, this equation can be compactly written as:

Tj1sji=1ijN𝝃T(xj,xi)si=aj(0)\displaystyle\textbf{T}_{j}^{-1}\textbf{s}_{j}-\sum_{\begin{subarray}{c}i=1\\ i\neq j\end{subarray}}^{N}\boldsymbol{\xi}^{T}(\textbf{x}_{j},\textbf{x}_{i})\textbf{s}_{i}=\textbf{a}^{(0)}_{j} (22)

Such an equation can be written for each scatterer — all of these equations collected together provide a completely determined system of linear equations that can be solved to obtain the scattering coefficients sl,m,p;js_{l,m,p;j}. The system of equations can be written in a matrix form:

[T11𝝃T(x1,x2)𝝃T(x1,x3)𝝃T(x1,xN)𝝃T(x2,x1)T21𝝃T(x2,x3)𝝃T(x2,xN)𝝃T(x3,x1)𝝃T(x3,x2)T31𝝃T(x3,xN)𝝃T(xN,x1)𝝃T(xN,x2)𝝃T(xN,x3)TN1]𝛀[s1s2s3sN]s=[a1(0)a2(0)a3(0)aN(0)]a(0)\displaystyle\underbrace{\begin{bmatrix}\textbf{T}_{1}^{-1}&\boldsymbol{\xi}^{T}(\textbf{x}_{1},\textbf{x}_{2})&\boldsymbol{\xi}^{T}(\textbf{x}_{1},\textbf{x}_{3})&\dots&\boldsymbol{\xi}^{T}(\textbf{x}_{1},\textbf{x}_{N})\\ \boldsymbol{\xi}^{T}(\textbf{x}_{2},\textbf{x}_{1})&\textbf{T}_{2}^{-1}&\boldsymbol{\xi}^{T}(\textbf{x}_{2},\textbf{x}_{3})&\dots&\boldsymbol{\xi}^{T}(\textbf{x}_{2},\textbf{x}_{N})\\ \boldsymbol{\xi}^{T}(\textbf{x}_{3},\textbf{x}_{1})&\boldsymbol{\xi}^{T}(\textbf{x}_{3},\textbf{x}_{2})&\textbf{T}_{3}^{-1}&\dots&\boldsymbol{\xi}^{T}(\textbf{x}_{3},\textbf{x}_{N})\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ \boldsymbol{\xi}^{T}(\textbf{x}_{N},\textbf{x}_{1})&\boldsymbol{\xi}^{T}(\textbf{x}_{N},\textbf{x}_{2})&\boldsymbol{\xi}^{T}(\textbf{x}_{N},\textbf{x}_{3})&\dots&\textbf{T}_{N}^{-1}\end{bmatrix}}_{\boldsymbol{\Omega}}\underbrace{\begin{bmatrix}\textbf{s}_{1}\\ \textbf{s}_{2}\\ \textbf{s}_{3}\\ \vdots\\ \textbf{s}_{N}\end{bmatrix}}_{\textbf{s}}=\underbrace{\begin{bmatrix}\textbf{a}^{(0)}_{1}\\ \textbf{a}^{(0)}_{2}\\ \textbf{a}^{(0)}_{3}\\ \vdots\\ \textbf{a}^{(0)}_{N}\end{bmatrix}}_{\textbf{a}^{(0)}} (23)

The matrix 𝛀\boldsymbol{\Omega} in the above system of equations is referred to as the ‘maxwell operator‘, since it is equivalent to expressing the frequency domain maxwell’s equations on the vector spherical wavefunction basis. To summarize, the problem of solving the Maxwell’s equations has been reduced to the problem of solving the linear system in Eq. 23. Once this system of equations is solved to obtain sl,m,n;js_{l,m,n;j}, the electric fields at the desired points can be computed using Eq. 13, which can be concisely expressed as:

Esca(x)=i=1NsiTΦ(xxi)\displaystyle\textbf{E}_{\text{sca}}(\textbf{x})=\sum_{i=1}^{N}\textbf{s}_{i}^{T}\Phi(\textbf{x}-\textbf{x}_{i}) (24)

where Φ(x)\Phi(\textbf{x}) is a column vector of the vector spherical harmonics Φl,m,p(x)\Phi_{l,m,p}(\textbf{x}) at position x.

From a numerical perspective, the linear systems Eq. 23 is severely ill conditioned due to the transition matrices being close to singular for small scatterers. This issue can be mitigated using the following block diagonal preconditioner M:

M=[T1T2T3TN]\displaystyle\textbf{M}=\begin{bmatrix}\textbf{T}_{1}&&&\\ &\textbf{T}_{2}&&\\ &&\textbf{T}_{3}&&\\ &&&\ddots&\\ &&&&\textbf{T}_{N}\\ \end{bmatrix} (25)

Instead of solving 𝛀s=a(0)\boldsymbol{\Omega}\textbf{s}=\textbf{a}^{(0)}, we solve M𝛀s=Ma(0)\textbf{M}\boldsymbol{\Omega}\textbf{s}=\textbf{M}\textbf{a}^{(0)} (a system of equations similar to those found in markkanen2017fast ). Validation simulations for our T-matrix simulation method implementation are shown in Fig. S2 — we see good agreement between the T-matrix method, FDTD, and FDFD simulations.

Refer to caption
Figure S2: (a) Scatterers used for the validation simulation — the scatterers are illuminated with a plane wave and have a refractive index of 3.5. (b) Electric field magnitudes for the x, y, and z components of the scattered fields from the T-matrix method simulation (top), FDFD simulation (middle), and FDTD simulation (bottom).

I.4 Hardware acceleration on GPUs

Accelerating the solution of the resulting system of linear equations using hardware accelerators such as GPUs has been an immensely successful approach in scaling up partial differential equation solvers. In this section, we describe a simple approach to implement the transition matrix simulation on GPUs — in particular, there are two issues that we address using common approaches from the field of computational engineering:

  1. 1.

    Speeding up matrix solve: The matrix solve using GMRES relies on the ability to perform matrix vector products (i.e. if we are solving Ax=b\textbf{A}\textbf{x}=\textbf{b} using GMRES, we need to be able to compute the product of the matrix A with an arbitrary vector x). For a N×NN\times N dense matrix, this computation is an O(N2)O(N^{2}) operation, and consequently speeding up this operation is a key component of scaling up the simulator to larger systems.

  2. 2.

    Memory obstacle in precomputing the full matrix: The implementation described in the previous section constructs the full maxwell operator explicitly as a matrix, and then performs the matrix vector products. While this might work for small scale simulations (15μ\approx 15\ \mum in linear dimension for subwavelength silicon scatterers while using a machine with 88 GM RAM), for larger simulations the matrix would become too large to store in memory. So as to obviate this issue, we would like to be able to perform matrix-vector products without explicitly constructing the matrix.

Implementation of the GPU accelerated solver: To this end, we implement the matrix vector product with the maxwell operator as a GPU operation (Fig. S3a). The matrix elements are computed while performing the matrix-vector product and discarded once the computation involving those elements have been performed. While computing the kthk^{\text{th}} element of the matrix-vector product, the inner product of the kthk^{\text{th}} row of the matrix with the vector needs to be computed — in our implementation, we assign one GPU thread to handle one such inner product so as to parallelize the matrix-vector product operation. This matrix-vector product operation can then be used along with GMRES to fully solve the system of equations — we implement the operations in GMRES other than the matrix-vector product operation using nvidia’s CUBLAS library cublas . Fig. S3b shows a comparison between the matrix solve time between a CPU implementation of the solution of Eq. 23 and a GPU implementation of the solution of Eq. 23. Both the implementations use lookup tables and interpolation — note that in the CPU solve time, we include the time taken for constructing the maxwell operator and then solving Eq. 23 using GMRES. We observe a 10×10\times speedup on using the GPU implementation over the CPU implementation.

Refer to caption
Figure S3: (a) Schematic of the distribution of a matrix-vector product across a GPU — each thread (grouped as thread blocks) is assigned to perform the computation of the product between one row and the vector with the thread computing any matrix-elements required and discarding them once the computation is done. (b) Comparison of the solve time between the CPU and GPU implementations for a 2D array of cylinders located at randomly chosen positions within a rectangle of the specified linear dimensions. The error bars indicate the spread in the solve time in between 10 different randomly chosen configurations of the cylinders for the same linear dimension. Note that both GPU and CPU simulations are performed with GMRES with a residual of 10610^{-6}. All the GPU simulations were performed on GTX Titan Black with 6GB memory.

Appendix II Computation of Jinc Sources

While the single-GPU implementation of the T-matrix method outlined in Section I.4 is efficient for metasurfaces with linear dimension up to 30μm30\mu m, it is not scalable to millimeter scale metasurface simulations as can be seen by an extrapolation of the timing benchmark shown in Fig. S3b. In this section, we describe an approach to perform the metasurface simulation over multiple GPUs with very little communication overhead, thereby allowing us to scale the T-matrix method to large-scale metasurface simulations.

The fundamental principle behind the parallelization scheme that we implement is the Nyquist sampling theorem. Consider an incident field propagating along the +z+z axis and described by its transverse components as a function of transverse coordinate (x,y)(x,y) at z=0z=0, EincT(x,y,z=0)\textbf{E}^{T}_{\text{inc}}(x,y,z=0) is incident on a metasurface located at z>0z>0. If the incident field is produced by a source that is either far from the metasurface or paraxial, it will be spatially bandlimited to a light-cone. Consequently, at z=0z=0, it can be completely described by its samples Et(xi,yj,z=0)\textbf{E}^{t}(x_{i},y_{j},z=0) where xi=iλ0/2x_{i}=i\lambda_{0}/2 and yj=jλ0/2y_{j}=j\lambda_{0}/2:

EincT(x,y,z=0)=i,j=j1(k0ρi,j)k0ρi,jEincT(xi,yj,z=0)\displaystyle\textbf{E}^{T}_{\text{inc}}(x,y,z=0)=\sum_{i,j=-\infty}^{\infty}\frac{j_{1}(k_{0}\rho_{i,j})}{k_{0}\rho_{i,j}}\textbf{E}^{T}_{\text{inc}}(x_{i},y_{j},z=0) (26)

where j1()j_{1}(\cdot) is the spherical bessel function of order 1 and ρi,j=(xxi)2+(yyj)2\rho_{i,j}=\sqrt{(x-x_{i})^{2}+(y-y_{j})^{2}}. Thus with every sample, one can associate an incident field, labelled as ‘jinc source’, with amplitude proportional to the sampled electric field. It can easily be seen that the jinc source is of limited spatial extent, and consequently simulating the response of the metasurface to an individual jinc source only requires performing a simulation of a small part of the metasurface near its center. Consequently, we can divide up the jinc sources that compose the incident electric fields into small groups, and simulate the response of the metasurface locally for each group by performing an independent solve on single GPU. After having performed all the simulations, they can be added together again to compute the total electric field.

We note that, although we have made the assumption that the incident field is propagating at normal incidence, this Nyquist sampling technique also works for oblique incidence. Keeping the same sampling plane as for normal incidence, the Nyquist sampling rate will increase because the maximum magnitude of the in-plane k-vector increases. As long as the angle of incidence is close to normal, this sampling strategy should have performance comparable to the normal-incidence case.

II.1 Implementing jinc source in the vector spherical harmonic basis

In order to implement the Nyquist-sampling-based-parellelization scheme described above, it is necessary to be able to simulate the response of the metasurface to a collection of jinc sources using the T-matrix method. This requires the ability to expand the jinc sources on the vector spherical wavefunctions (Eq. 23). In this section, we mathematically develop such an expansion.

Consider a jinc source at z=z0z=z_{0} propagating in the +z+z direction and centered at x0t=(x0,y0)\textbf{x}^{t}_{0}=(x_{0},y_{0}) in the transverse plane. The transverse electric field at z=z0z=z_{0} is given by:

ET(xT,z=z0)=ATj1(k0|xTx0T|)k0|xTx0T|\displaystyle\textbf{E}^{T}(\textbf{x}^{T},z=z_{0})=\textbf{A}^{T}\frac{j_{1}(k_{0}|\textbf{x}^{T}-\textbf{x}^{T}_{0}|)}{k_{0}|\textbf{x}^{T}-\textbf{x}^{T}_{0}|} (27)

where j1()j_{1}(\cdot) is the first order spherical bessel function and AT=Axx^+Ayy^\textbf{A}^{T}=A_{x}\hat{x}+A_{y}\hat{y} is the transverse polarization of the jinc field. Alternatively, in the fourier representation,

ET(x,y,z=z0)=AT2π|kT|<k0exp[ikT(xTx0T)]d2kT\displaystyle\textbf{E}^{T}(x,y,z=z_{0})=\frac{\textbf{A}^{T}}{2\pi}\int_{|\textbf{k}^{T}|<k_{0}}\exp[i\textbf{k}^{T}\cdot(\textbf{x}^{T}-\textbf{x}^{T}_{0})]d^{2}\textbf{k}^{T} (28)

Propagating each plane-wave component, we obtain:

E(x,y,z)=12π|kT|<k0A(kT)exp(ikT(xTx0T))exp(ikz(zz0))d2kT\displaystyle\textbf{E}(x,y,z)=\frac{1}{2\pi}\int_{|\textbf{k}^{T}|<k_{0}}\textbf{A}(\textbf{k}^{T})\exp(i\textbf{k}^{T}\cdot(\textbf{x}^{T}-\textbf{x}^{T}_{0}))\exp(ik_{z}(z-z_{0})){d}^{2}\textbf{k}^{T} (29)

where kz=k02kTkTk_{z}=\sqrt{k_{0}^{2}-\textbf{k}^{T}\cdot\textbf{k}^{T}} and

A(kT)=ATz^kTATkz(kT)\displaystyle\textbf{A}(\textbf{k}^{T})=\textbf{A}^{T}-\hat{z}\frac{\textbf{k}^{T}\cdot\textbf{A}^{T}}{k_{z}(\textbf{k}^{T})} (30)

Changing the integration variable to α,β\alpha,\beta (0α2π0\leq\alpha\leq 2\pi and 0βπ/20\leq\beta\leq\pi/2) where kT(β,α)=k0sinβ(x^cosα+y^sinα)\textbf{k}^{T}(\beta,\alpha)=k_{0}\sin\beta(\hat{x}\cos\alpha+\hat{y}\sin\alpha) and therefore kz(kT)kz(β,α)=k0cosβk_{z}(\textbf{k}^{T})\equiv k_{z}(\beta,\alpha)=k_{0}\cos\beta, A(kT)A(β,α)=x^Ax+y^Ayz^tanβ(Axcosα+Aysinα)\textbf{A}(\textbf{k}^{T})\equiv\textbf{A}(\beta,\alpha)=\hat{x}A_{x}+\hat{y}A_{y}-\hat{z}\tan\beta(A_{x}\cos\alpha+A_{y}\sin\alpha) and d2kT=k02sinβcosβdαdβd^{2}\textbf{k}^{T}=k_{0}^{2}\sin\beta\cos\beta d\alpha d\beta. Moreover, each plane wave can be expanded into a sum of vector spherical harmonic wavefunctions Doicu :

A(β,α)exp(ikT(β,α)(xTx0T))exp(ikz(β,α)(zz0))=exp[ik(β,α)(x0x0)]l,m,pal,m,p(β,α)Φl,m,p(k0(xx0))\displaystyle\textbf{A}(\beta,\alpha)\exp(i\textbf{k}^{T}(\beta,\alpha)\cdot(\textbf{x}^{T}-\textbf{x}^{T}_{0}))\exp(ik_{z}(\beta,\alpha)(z-z_{0}))=\exp[i\textbf{k}(\beta,\alpha)\cdot(\textbf{x}_{0}^{\prime}-\textbf{x}_{0})]\sum_{l,m,p}a_{l,m,p}(\beta,\alpha)\mathcal{R}\Phi_{l,m,p}(k_{0}(\textbf{x}-\textbf{x}_{0}^{\prime})) (31)

where

al,m,p=0(β,α)=4imA(β,α)ml,m(β,α)=4ilexp(imα)2l(l+1)[imπl|m|(β)(β^A(β,α))+τl|m|(β)(α^A(β,α))]\displaystyle a_{l,m,p=0}(\beta,\alpha)=4i^{m}\textbf{A}(\beta,\alpha)\cdot\textbf{m}_{l,m}^{*}(\beta,\alpha)=-\frac{4i^{l}\exp(-im\alpha)}{\sqrt{2l(l+1)}}\big{[}im\pi^{|m|}_{l}(\beta)(\hat{\beta}\cdot\textbf{A}(\beta,\alpha))+\tau^{|m|}_{l}(\beta)(\hat{\alpha}\cdot\textbf{A}(\beta,\alpha))\big{]} (32a)
al,m,p=1(β,α)=4il+1A(β,α)nl,m(β,α)=4il+1exp(imα)2l(l+1)[τl|m|(β)(β^A(β,α))imπl|m|(β)(α^A(β,α))]\displaystyle a_{l,m,p=1}(\beta,\alpha)=-4i^{l+1}\textbf{A}(\beta,\alpha)\cdot\textbf{n}_{l,m}^{*}(\beta,\alpha)=-\frac{4i^{l+1}\exp(-im\alpha)}{\sqrt{2l(l+1)}}\big{[}\tau^{|m|}_{l}(\beta)(\hat{\beta}\cdot\textbf{A}(\beta,\alpha))-im\pi^{|m|}_{l}(\beta)(\hat{\alpha}\cdot\textbf{A}(\beta,\alpha))\big{]} (32b)

where ml,m(,)\textbf{m}_{l,m}(\cdot,\cdot) and nl,m(,)\textbf{n}_{l,m}(\cdot,\cdot) are vector spherical harmonics with orbital index ll and azimuthal index mm. Therefore,

E(x)=l,m,pal,m,pΦl,m,p(k0(xx0))\displaystyle\textbf{E}(\textbf{x})=\sum_{l,m,p}a_{l,m,p}\mathcal{R}\Phi_{l,m,p}(k_{0}(\textbf{x}-\textbf{x}_{0}^{\prime})) (33)

where al,m,pa_{l,m,p} are given by:

al,m,p=12πβ=0π/2α=02πal,m,p(β,α)exp[ik(β,α)(x0x0)]sinβcosβdαdβ\displaystyle a_{l,m,p}=\frac{1}{2\pi}\int_{\beta=0}^{\pi/2}\int_{\alpha=0}^{2\pi}a_{l,m,p}(\beta,\alpha)\exp[i\textbf{k}(\beta,\alpha)\cdot(\textbf{x}_{0}^{\prime}-\textbf{x}_{0})]\sin\beta\cos\beta d\alpha d\beta (34)

In the remainder of this section, we will evaluate the integral over α\alpha analytically, and the resulting expression can then be numerically integrated over β\beta. To do so, it will be convenient to define a function Γm(ξ,η,ρ)\Gamma_{m}(\xi,\eta,\rho) by:

Γm(ξ,η,ρ)=12π02πexp(imα)exp[iρcos(αξ)]cos(αη)𝑑α\displaystyle\Gamma_{m}(\xi,\eta,\rho)=\frac{1}{2\pi}\int_{0}^{2\pi}\exp(-im\alpha)\exp[i\rho\cos(\alpha-\xi)]\cos(\alpha-\eta)d\alpha (35)

Γm(ξ,η,ρ)\Gamma_{m}(\xi,\eta,\rho) can be evaluated analytically: making a change of variables to α=αξ+π/2\alpha^{\prime}=\alpha-\xi+\pi/2, we obtain:

Γm(ξ,η,ρ)\displaystyle\Gamma_{m}(\xi,\eta,\rho) =imexp(imξ)2ππ/2ξ5π/2ξexp(imα)exp(iρsinα)sin(α+ξη)𝑑α\displaystyle=\frac{i^{m}\exp(-im\xi)}{2\pi}\int_{\pi/2-\xi}^{5\pi/2-\xi}\exp(-im\alpha^{\prime})\exp(i\rho\sin\alpha^{\prime})\sin(\alpha^{\prime}+\xi-\eta)d\alpha^{\prime}
=im1exp(imξ)4π02πexp(imα)exp(iρsinα)(exp(i(α+ξη))exp(i(α+ξη)))𝑑α\displaystyle=\frac{i^{m-1}\exp(-im\xi)}{4\pi}\int_{0}^{2\pi}\exp(-im\alpha^{\prime})\exp(i\rho\sin\alpha^{\prime})(\exp(i(\alpha^{\prime}+\xi-\eta))-\exp(-i(\alpha^{\prime}+\xi-\eta)))d\alpha^{\prime}
=im1exp(imξ)2[exp{i(ξη)}Jm1(ρ)exp{i(ξη)}Jm+1(ρ)]\displaystyle=\frac{i^{m-1}\exp(-im\xi)}{2}\bigg{[}\exp\{i(\xi-\eta)\}J_{m-1}(\rho)-\exp\{-i(\xi-\eta)\}J_{m+1}(\rho)\bigg{]} (36)

wherein we have used the identity:

Jm(ρ)=12π02πexp[iρsinθmθ]𝑑θ\displaystyle J_{m}(\rho)=\frac{1}{2\pi}\int_{0}^{2\pi}\exp[i\rho\sin\theta-m\theta]d\theta (37)

Additionally, note that β^=(x^cosα+y^sinα)cosβz^sinβ\hat{\beta}=(\hat{x}\cos\alpha+\hat{y}\sin\alpha)\cos\beta-\hat{z}\sin\beta and α^=x^sinα+y^cosα\hat{\alpha}=-\hat{x}\sin\alpha+\hat{y}\cos\alpha. Therefore:

β^A(β,α)=secβ(Axcosα+Aysinα)\displaystyle\hat{\beta}\cdot\textbf{A}(\beta,\alpha)=\sec\beta(A_{x}\cos\alpha+A_{y}\sin\alpha) (38a)
α^A(β,α)=Axsinα+Aycosα\displaystyle\hat{\alpha}\cdot\textbf{A}(\beta,\alpha)=-A_{x}\sin\alpha+A_{y}\cos\alpha (38b)

Finally, let x0x0(r0,θ0,φ0)\textbf{x}_{0}^{\prime}-\textbf{x}_{0}\equiv(r_{0},\theta_{0},\varphi_{0}), and therefore k(β,α)(x0x0)=k0r0(cosβcosθ0+sinβsinθ0cos(αφ0))\textbf{k}(\beta,\alpha)\cdot(\textbf{x}_{0}^{\prime}-\textbf{x}_{0})=k_{0}r_{0}(\cos\beta\cos\theta_{0}+\sin\beta\sin\theta_{0}\cos(\alpha-\varphi_{0})).

  1. 1.

    Consider the computation of al,m,p=0a_{l,m,p=0}. Using Eq. 32a, we obtain:

    al,m,p=0(β,α)sinβcosβ=4ilexp(imα)2l(l+1)[\displaystyle a_{l,m,p=0}(\beta,\alpha)\sin\beta\cos\beta=-\frac{4i^{l}\exp(-im\alpha)}{\sqrt{2l(l+1)}}\big{[} (imπl|m|(β)Ax+τl|m|(β)cosβAy)cosα\displaystyle(im\pi_{l}^{|m|}(\beta)A_{x}+\tau_{l}^{|m|}(\beta)\cos\beta A_{y})\cos\alpha
    +(imπl|m|(β)Ayτl|m|(β)cosβAx)sinα]sinβ\displaystyle+(im\pi^{|m|}_{l}(\beta)A_{y}-\tau_{l}^{|m|}(\beta)\cos\beta A_{x})\sin\alpha\big{]}\sin\beta (39)

    and therefore

    12π02πal,m,p=0(β,α)exp[ik(β,α)(x0x0)]sinβcosβdα=4ilexp(ik0r0cosβcosθ0)sinβ2l(l+1)×\displaystyle\frac{1}{2\pi}\int_{0}^{2\pi}a_{l,m,p=0}(\beta,\alpha)\exp[i\textbf{k}(\beta,\alpha)\cdot(\textbf{x}_{0}-\textbf{x}_{0}^{\prime})]\sin\beta\cos\beta d\alpha=-\frac{4i^{l}\exp(ik_{0}r_{0}\cos\beta\cos\theta_{0})\sin\beta}{\sqrt{2l(l+1)}}\times
    [(imπl|m|(β)Ax+τl|m|(β)cosβAy)Γm(ϕ0,0,k0r0sinβsinθ0)+\displaystyle\bigg{[}(im\pi_{l}^{|m|}(\beta)A_{x}+\tau_{l}^{|m|}(\beta)\cos\beta A_{y})\Gamma_{m}(\phi_{0},0,k_{0}r_{0}\sin\beta\sin\theta_{0})+
    (imπl|m|(β)Ayτl|m|(β)cosβAx)Γm(ϕ0,π/2,k0r0sinβsinθ0)]\displaystyle(im\pi^{|m|}_{l}(\beta)A_{y}-\tau_{l}^{|m|}(\beta)\cos\beta A_{x})\Gamma_{m}(\phi_{0},\pi/2,k_{0}r_{0}\sin\beta\sin\theta_{0})\bigg{]} (40)
  2. 2.

    Consider the computation of al,m,p=1a_{l,m,p=1}. Using Eq. 32b, we obtain:

    al,m,p=1(β,α)sinβcosβ=4il+1exp(imα)2l(l+1)[(τl|m|(β)Aximπl|m|(β)Aycosβ)cosα\displaystyle a_{l,m,p=1}(\beta,\alpha)\sin\beta\cos\beta=-\frac{4i^{l+1}\exp(-im\alpha)}{\sqrt{2l(l+1)}}\big{[}(\tau_{l}^{|m|}(\beta)A_{x}-im\pi_{l}^{|m|}(\beta)A_{y}\cos\beta)\cos\alpha
    +(τl|m|(β)Ay+imπl|m|(β)Axcosβ)sinα]\displaystyle+(\tau_{l}^{|m|}(\beta)A_{y}+im\pi_{l}^{|m|}(\beta)A_{x}\cos\beta)\sin\alpha\big{]} (41)

    and therefore

    12π02πal,m,p=1(β,α)exp[ik(β,α)(x0x0)]sinβcosβdα=4il+1exp(ik0r0cosβcosθ0)sinβ2l(l+1)×\displaystyle\frac{1}{2\pi}\int_{0}^{2\pi}a_{l,m,p=1}(\beta,\alpha)\exp[i\textbf{k}(\beta,\alpha)\cdot(\textbf{x}_{0}-\textbf{x}_{0}^{\prime})]\sin\beta\cos\beta d\alpha=-\frac{4i^{l+1}\exp(ik_{0}r_{0}\cos\beta\cos\theta_{0})\sin\beta}{\sqrt{2l(l+1)}}\times
    [(τl|m|(β)Aximπl|m|(β)Aycosβ)Γm(ϕ0,0,k0r0sinβsinθ0)\displaystyle\big{[}(\tau_{l}^{|m|}(\beta)A_{x}-im\pi_{l}^{|m|}(\beta)A_{y}\cos\beta)\Gamma_{m}(\phi_{0},0,k_{0}r_{0}\sin\beta\sin\theta_{0})
    +(τl|m|(β)Ay+imπl|m|(β)Axcosβ)Γm(ϕ0,π/2,k0r0sinβsinθ0)]\displaystyle+(\tau_{l}^{|m|}(\beta)A_{y}+im\pi_{l}^{|m|}(\beta)A_{x}\cos\beta)\Gamma_{m}(\phi_{0},\pi/2,k_{0}r_{0}\sin\beta\sin\theta_{0})\big{]} (42)

It can be noted that the numerical integration over β\beta can be accelerated by using lookup tables for the various special functions involved in the computation. Furthermore, we also parallelize the computation of the jinc sources on GPU to accelerate it with one thread being assigned to compute al,m,pa_{l,m,p} for a single choice of (l,m,p)(l,m,p) with respect to a chosen scatterer.

Finally, we remark that since the jinc sources are spatially limited, we only need to simulate the metasurface locally to compute its response to the jinc source. In order to estimate how local this simulation needs to be, a padding study like the one in Fig. 1(b) should be performed.

Appendix III Scatterer Libraries for Metalens Designs

The transmission and phase response for the scatterer library used for the metalens designs simulated and analyzed in Fig. 1, 3(a), and 4 is shown below in Fig.S4 (a). The transmission and phase response for the scatterer library used for the metalens designs simulated and analyzed in Fig. 3(b) is shown below in Fig.S4 (b).

Refer to caption
Figure S4: (a) Transmission and phase response for the scatterer library based onArbabi , consisting of silicon cylinders with height 940 nm, radii range of 50-250 nm, square lattice period of 1070 nm, air background, and plane wave source wavelength of 1550 nm. (b) Transmission and phase response for the scatterer library based onGigli , consisting of silicon cylinders with height 220 nm, radii range of 175-280nm, square lattice period of 666 nm, background refractive index of 1.66, and plane wave source wavelength of 1340 nm.

Appendix IV Adjoint Computation

In this section, we describe the computation of the gradient of the metasurface performance with respect to the position and geometry of the meta-atoms. An efficient implementation of the gradient computation would allow us to use gradient-based optimization algorithms to optimize the performance of metasurfaces much like that done with inverse-design of silicon photonics devices.

Suppose that we have NN scatterers located at x1,x2xN\textbf{x}_{1},\textbf{x}_{2}\dots\textbf{x}_{N}. Moreover, the geometry of the scatterers are dependent on parameters p1,p2pMp_{1},p_{2}\dots p_{M} (e.g. these parameters can be the radii of the cylindrical meta-atoms, or the lengths and breadths rectangular meta-atoms). Consider a performance metric 𝒪\mathcal{O} which takes the following form:

𝒪=f(Γd𝝈(x)Esca(x)d3x)\displaystyle\mathcal{O}=f\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)} (43)

where f()f(\cdot) is a function mapping a complex number to a real number, Γd\Gamma_{d} is the detector volume and 𝝈(x)\boldsymbol{\sigma}(\textbf{x}) is a vector function of space that has information of the ‘desired’ field profile. As a concrete example of such a performance metric, consider attempting to design a lens using meta-atoms located at z=0z=0 that focuses an incident plane-wave polarized along v^\hat{\textbf{v}} within a Gaussian spot of width w0w_{0} at z=Fz=F. In this case, we could choose f(z)=|z|2f(z)=|z|^{2} and 𝝈(x)=v^exp[(x2+y2)/w02]δ(zF)\boldsymbol{\sigma}(\textbf{x})=\hat{\textbf{v}}\exp[-(x^{2}+y^{2})/w_{0}^{2}]\delta(z-F) so as to obtain a performance metric that measures how much of the transmitted field is within a gaussian beam mode of the specified width w0w_{0} at the focus of the metasurface. More complicated performance metrics can be created by combining those of the form of Eq. 43 based on the specific design problem being solved.

Consider now the computation of derivative of 𝒪\mathcal{O} with respect to the coordinates of the ithi^{\text{th}} scatterer: 𝒪/qi\partial\mathcal{O}/\partial q_{i} where qi{xi,yi,zi}q_{i}\in\{x_{i},y_{i},z_{i}\} with xi=(xi,yi,zi)\textbf{x}_{i}=(x_{i},y_{i},z_{i}). From Eq. 43, it immediately follows that:

𝒪qi=2Re[f(Γd𝝈(x)Esca(x)d3x)qi(Γd𝝈(x)Esca(x)d3x)]\displaystyle\frac{\partial\mathcal{O}}{\partial q_{i}}=2\textrm{Re}\bigg{[}f^{\prime}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)}\frac{\partial}{\partial q_{i}}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)}\bigg{]} (44)

From Eq. 24, it immediately follows that:

qi(Γd𝝈(x)Esca(x)d3x)=vTqi[s1s2sN]+siT(Γd𝝈(x)qiΦ(xxi)d3x)\displaystyle\frac{\partial}{\partial q_{i}}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)}=\textbf{v}^{\textrm{T}}\frac{\partial}{\partial q_{i}}\begin{bmatrix}\textbf{s}_{1}\\ \textbf{s}_{2}\\ \vdots\\ \textbf{s}_{N}\end{bmatrix}+\textbf{s}_{i}^{\textrm{T}}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\frac{\partial}{\partial q_{i}}\Phi(\textbf{x}-\textbf{x}_{i})\textrm{d}^{3}\textbf{x}\bigg{)} (45)

where

v=Γd𝝈(x)[Φ(xx1)Φ(xx2)Φ(xxN)]d3x\displaystyle\textbf{v}=\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\begin{bmatrix}\Phi(\textbf{x}-\textbf{x}_{1})\\ \Phi(\textbf{x}-\textbf{x}_{2})\\ \vdots\\ \Phi(\textbf{x}-\textbf{x}_{N})\end{bmatrix}\textrm{d}^{3}\textbf{x} (46)

To compute sk/qi\partial\textbf{s}_{k}/\partial q_{i}, we differentiate Eq. 23 with respect to qiq_{i}:

qi[s1s2sN]=𝛀1𝛀qi[s1s2sN]\displaystyle\frac{\partial}{\partial q_{i}}\begin{bmatrix}\textbf{s}_{1}\\ \textbf{s}_{2}\\ \vdots\\ \textbf{s}_{N}\end{bmatrix}=-\boldsymbol{\Omega}^{-1}\frac{\partial\boldsymbol{\Omega}}{\partial q_{i}}\begin{bmatrix}\textbf{s}_{1}\\ \textbf{s}_{2}\\ \vdots\\ \textbf{s}_{N}\end{bmatrix} (47)

from which we obtain:

qi(Γd𝝈(x)Esca(x)d3x)=vT𝛀1𝛀qi[s1s2sN]+siT(Γd𝝈(x)qiΦ(xxi)d3x)\displaystyle\frac{\partial}{\partial q_{i}}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)}=-\textbf{v}^{\textrm{T}}\boldsymbol{\Omega}^{-1}\frac{\partial\boldsymbol{\Omega}}{\partial q_{i}}\begin{bmatrix}\textbf{s}_{1}\\ \textbf{s}_{2}\\ \vdots\\ \textbf{s}_{N}\end{bmatrix}+\textbf{s}_{i}^{\textrm{T}}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\frac{\partial}{\partial q_{i}}\Phi(\textbf{x}-\textbf{x}_{i})\textrm{d}^{3}\textbf{x}\bigg{)} (48)

Following a similar procedure, it is possible to compute the partial derivative of 𝒪\mathcal{O} with respect to the geometric parameter pip_{i} to obtain:

𝒪pi=2Re[f(Γd𝝈(x)Esca(x)d3x)pi(Γd𝝈(x)Esca(x)d3x)]\displaystyle\frac{\partial\mathcal{O}}{\partial p_{i}}=2\text{Re}\bigg{[}f^{\prime}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)}\frac{\partial}{\partial p_{i}}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)}\bigg{]} (49)

where

pi(Γd𝝈(x)Esca(x)d3x)=vT𝛀1𝛀pi[s1s2sN]\displaystyle\frac{\partial}{\partial p_{i}}\bigg{(}\int_{\Gamma_{d}}\boldsymbol{\sigma}^{*}(\textbf{x})\cdot\textbf{E}_{\text{sca}}(\textbf{x})\textrm{d}^{3}\textbf{x}\bigg{)}=-\textbf{v}^{\textrm{T}}\boldsymbol{\Omega}^{-1}\frac{\partial\boldsymbol{\Omega}}{\partial p_{i}}\begin{bmatrix}\textbf{s}_{1}\\ \textbf{s}_{2}\\ \vdots\\ \textbf{s}_{N}\end{bmatrix} (50)

From Eqs. 48 and 50, we make the following observations about the gradient computation:

  1. (a)

    It seems that computing the gradient requires computation of 𝛀1\boldsymbol{\Omega}^{-1} — this would be a prohibitively expensive simulation that would render the gradient computation impractical. Note however, in the gradient computation, we only require the computation of vT𝛀1=[𝛀Tv]T\textbf{v}^{\text{T}}\boldsymbol{\Omega}^{-1}=[\boldsymbol{\Omega}^{-\text{T}}\textbf{v}]^{\text{T}} and not the full inverse 𝛀1\boldsymbol{\Omega}^{-1}. This is equivalent to solving the following system of equations:

    𝛀Ta=v\displaystyle\boldsymbol{\Omega}^{\text{T}}\textbf{a}=\textbf{v} (51)

    This is labelled as the adjoint simulation, and it needs to be performed once at each step of the optimization (importantly, note that this simulation does not depend on the variable with respect to which the gradient is being computed).

  2. (b)

    To compute the gradients, we also need to compute 𝛀/qi\partial\boldsymbol{\Omega}/\partial q_{i} and 𝛀/pi\partial\boldsymbol{\Omega}/\partial p_{i}. Since the explicit dependence of 𝛀\boldsymbol{\Omega} on the scatterer coordinates is known (i.e.  Eq. 23), 𝛀/qi\partial\boldsymbol{\Omega}/\partial q_{i} can be computed analytically. Computing 𝛀/pi\partial\boldsymbol{\Omega}/\partial p_{i} is equivalent to computing Tk1/pi\partial\textbf{T}^{-1}_{k}/\partial p_{i} (note that the off-diagonal elements do not depend on the scatterer geometry, only on their locations). Since in our implementation, we are setting up a lookup table for the transition matrices and interpolating between then, this derivative can be numerically approximated using the same lookup table.

References

  • (1) Doicu, A., Wriedt, T., & Eremin, Y. A. (2006). Light scattering by systems of particles: null-field method with discrete sources: theory and programs (Vol. 124). Springer.
  • (2) Egel, A., Pattelli, L., Mazzamuto, G., Wiersma, D. S., & Lemmer, U. (2017). CELES: CUDA-accelerated simulation of electromagnetic scattering by large ensembles of spheres. Journal of Quantitative Spectroscopy and Radiative Transfer, 199, 103-110.
  • (3) Luscombe, J. H., & Luban, M. (1998). Simplified recursive algorithm for wigner 3 j and 6 j symbols. Physical Review E, 57(6), 7274.
  • (4) Cublas library (2008), NVIDIA Corporation, Santa Clara, California.
  • (5) Arbabi, A., Horie, Y., Ball, A. J., Bagheri, M., & Faraon, A. (2015). Subwavelength-thick lenses with high numerical apertures and large efficiency based on high-contrast transmitarrays. Nature communications, 6(1), 1-6.
  • (6) Gigli, C., Li, Q., Chavel, P., Leo, G., Brongersma, M. L., & Lalanne, P. (2020). Fundamental limitations of Huygens’ metasurfaces for optical beam shaping. Laser & Photonics Reviews, 2000448.