970 likes | 1.42k Views
Inverse design for nano -photonics. Yablonovitch Group, UC Berkeley. June 4 th 2013. Seminar outline. This morning: Theory General presentation on inverse design Our approach: the adjoint method Step by step example This afternoon: Software presentation
E N D
Inverse design fornano-photonics Yablonovitch Group, UC Berkeley June 4th 2013
Seminar outline • This morning: Theory • General presentation on inverse design • Our approach: the adjoint method • Step by step example • This afternoon: • Software presentation • Code structure outline • Hands on experience
Shape Optimization for photonic devices • Problem statement: Given FOM(E,H), find eps(x) such that FOM is maximum and eps(x) respects some constraints. ?
Typical figures of merit and constraints Figures of Merit - Transmission - Mode matching - Absorption - Field intensity - Scattering cross section Constraints - Materials available - Minimum dimensions - Radius of curvature - Periodicity
Typical figures of merit Transmission Mode-Match Field intensity Absorption
Typical constraints Radius of curvature Minimum dimension Periodicity Materials
Parameterization: describing shapes Index maps Level sets ? Splines Custom parameters
Optimizations: Heuristic methods Particle swarm optimization Genetic algorithms Ant colony Parameter sweeps
Opsis optimization: particle swarm 1500 2D simulations: -0.28 dB insertion loss
The problem: • Simulations required: ~C^(variables) !!!
The solution: deterministic optimization Gradient descent
Calculating the gradient With this information we can calculate the gradient for any parameterisation
But how do we calculate the gradient? But how do we calculate that?
Duality in Linear Algebra Problem: Compute gTb such that Ab=c gT A c B B such that = B is unknown must solve for B first
Duality in Linear Algebra Problem: Compute gTb such that Ab=c gT A c B B such that = Substitution of Variables: I could solve this dual problem instead sT AT c s g such that = sTc = sTAB = (ATs)TB = gTB
Adjoint Method for Electromagnetics Goal = Efficiently solve for the gradient of Merit(E,H)
Optimization Problem light input
Where should I add material? light input light input light input … Need to know dF/dx’ for all x’
What happens when I add material? Original Perturbation = small sphere of material Eperturbed E0 P ε2 ε1 ε1
How can I approximate this perturbation? Eperturbed Escattered E0 ≈ +
Gradient light input
Key Trick 1: (approximate every perturbation as a dipole scatterer) … + … +
Reciprocity (Rayleigh-Carson) Drive a dipole at x’ Find E at x0 Drive a dipole at x0 Find E at x’ equivalent
Reciprocity (Lorentz) More generally: equivalent E2 J1 E1 J2 J1 E2 = J2 E1
Reciprocity (Lorentz) Problem: Solve for E1 and E2 Dual Problem: Solve for E3 E3(x’’) J2(x’’) equivalent E3(x’) J1(x’) E1 E2 J3 J1 E3 =J3E1 J2 E3 =J3E2
Gradient light input Treat electric field at x0 as a current:
What does this achieve? + • 2 Simulations • Gradient of Merit Function with respect to changes in geometry and/or permittivity • is calculated everywhere in the simulation volume • Did not have to vary any geometric parameters • Optimization Process • Every iteration = Calculate the gradient and step closer to a local optimum
Step by step example: direct simulation Phase extracted=-137°
Adjoint simulation Phase of dipole:137°
The derivative field! Add some material here! Red = adding material will improve Merit Function
New geometry Inclusion of index=2
E2 Result Iteration Constructive interference! Incident field Scattered field
Code Structure Optimizer Maxwell Solver Geometry Merit Function Gradient FreeForm FieldEnergy Supports HPC cluster with MPI LevelSet Transmission ModeMatch Lumerical FDTD
Optimization Region Merit Function = ModeMatch abs(Ez) Geometry (eps = Ta2O5, epsOut = SiO2) (minimum dimension = 300nm) (radius of curvature = 150nm) Source (frequency = 830nm)
How to run an optimization: Create a setup file 1. %% Lumerical Simulation %% Frequency %% Optimization Region %% Geometry Properties %% Merit Function setup.m Create a Lumerical base file 2. baseFile.fsp Source Optimization Region Initial Geometry Field and Index monitors Merit Function monitors 3. Run runOpt in Matlab runOpt.m
FreeForm/LevelSet Geometries Binary 2D Geometry: 1 = eps, 0 = epsOut Constant thickness Materials: eps/epsOut = ‘material name’ or custom permittivity Optional Geometric constraints: minimum dimension, radius of curvature, minimum padding, symmetries Optional Optimization constraints: boundary changes only, allow new shapes to emerge Optional Non-Designable Region: 1 = Designable, 0 = Non-Designable
Merit Functions Transmission through a plane transmission Field Energy in a volume absorption E intensity H intensity Mode Match at a plane H mode E mode ExH Propagating Mode
Complex Merit Function (j,k,l) = user defined (1), frequency (2), monitor (3) f = (transmission, field energy, mode match) Example: Waveguide Spectral Splitter: maximize the minimum transmission through branch 1 at frequency 1, branch 2 at frequency 2, etc. for N branches
Install the software: Download all Inverse Design files 1. Install Lumerical 2. Edit runOpt_params.m 3.
Example Waveguide Couplers for Silicon Photonics