Skip to content

ZevenGo/APF_inverse_design

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 

Repository files navigation

APF_inverse_design

APF (Augmented Partial Factorization) is an efficienct method proposed in Nature Computational Science 2, 815–822 (2022) that can solve multi-input electromagnetic forward problems in one shot, offering substantial speed-up and memory usage reduction compared to existing methods. Here, we generalize APF to enable efficient gradient computation for and inverse design of multi-input nanophotonic devices.

This repository includes codes used to inverse design a metasurface beam splitter using APF method, which splits the incident light equally into the $\pm$ 1 diffraction orders for any incident angle within a wide angular range. Detailed documentation is given in the comments of each file.

To take fully advantage of the APF method and efficienctly perform optimizations, one needs to

  • Install MESTI.m [download it and add the MESTI.m/src folder to the search path using the addpath command in MATLAB], the serial version of MUMPS and its MATLAB interface.
  • Install NLopt to use various well-developed algorithms for optimizations. If NLopt is not installed, one can specify other methods in inverse_design_beam_splitter.m.
  • Run inverse_design_beam_splitter.m [one can customise the optimization using options; check the documentation of this file for more details].

An animation on the evolution of the metasurface and its transmission matrix is shown below.

See the corresponding paper Fast Multichannel Inverse Design through Augmented Partial Factorization for more details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 100.0%