INVERSE DESIGN FOR NANO-PHOTONICS Yablonovitch Group, UC
Berkeley June 4 th 2013
Slide 2
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
Slide 3
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. ?
Slide 4
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
Slide 5
Typical figures of merit Transmission Mode-Match Field
intensity Absorption
Slide 6
Typical constraints Radius of curvature Minimum dimension
Materials Periodicity
Slide 7
Parameterization: describing shapes Index mapsLevel sets
Splines ? Custom parameters
Opsis optimization: particle swarm 1500 2D simulations: -0.28
dB insertion loss
Slide 10
The problem: Simulations required: ~C^(variables) !!!
Slide 11
The solution: deterministic optimization Gradient descent
Slide 12
Calculating the gradient With this information we can calculate
the gradient for any parameterisation
Slide 13
But how do we calculate the gradient? But how do we calculate
that?
Slide 14
Our Approach
Slide 15
Duality in Linear Algebra gTgT gTgT = B B B B c c A A such that
B is unknown Problem: Compute g T b such that Ab=c must solve for B
first
Slide 16
Duality in Linear Algebra gTgT gTgT = B B B B c c A A sTsT sTsT
= s s g g ATAT ATAT c c such that s T c = s T AB = (A T s) T B = g
T B Problem: Compute g T b such that Ab=c Substitution of
Variables: I could solve this dual problem instead
Slide 17
Iterative Gradient Descent
Slide 18
Slide 19
Adjoint Method for Electromagnetics Goal = Efficiently solve
for the gradient of Merit(E,H)
Slide 20
light input Optimization Problem
Slide 21
light input Where should I add material? Need to know dF/dx for
all x
Slide 22
What happens when I add material? E0E0 Original Perturbation =
small sphere of material 11 P 22 E perturbed 11
Slide 23
How can I approximate this perturbation? E0E0 E scattered E
perturbed +
Slide 24
Gradient light input
Slide 25
Island Perturbation Approximation
Slide 26
Boundary Perturbation Approximation
Slide 27
Key Trick 1: (approximate every perturbation as a dipole
scatterer) + +
Slide 28
Drive a dipole at x Find E at x 0 Drive a dipole at x 0 Find E
at x equivalent Reciprocity (Rayleigh-Carson)
Slide 29
equivalent Reciprocity (Lorentz) J 1 E 2 = J 2 E 1 J1J1 E1E1
J2J2 E2E2 More generally:
Slide 30
equivalent J 1 E 3 = J 3 E 1 J 1 (x) E1E1 J 2 (x) E2E2 Problem:
Solve for E 1 and E 2 Dual Problem: Solve for E 3 J3J3 E 3 (x) E 3
(x) J 2 E 3 = J 3 E 2 Reciprocity (Lorentz)
Slide 31
Gradient light input Treat electric field at x 0 as a
current:
Slide 32
Key Trick 2: (Lorentz reciprocity) + +
Slide 33
+ 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 What does this achieve?
Slide 34
Slide 35
Step by step example: direct simulation Phase
extracted=-137
Slide 36
Adjoint simulation Phase of dipole:13 7
Slide 37
The derivative field! Add some material here! Red = adding
material will improve Merit Function
Slide 38
New geometry Inclusion of index=2
Slide 39
Result Constructive interference! E2E2 Iteration Incident field
Scattered field
Slide 40
Repeat!
Slide 41
Software Implementation
Slide 42
Code Structure Optimizer GradientGeometryMerit Function
FreeForm LevelSet FieldEnergy Transmission ModeMatch Lumerical FDTD
Maxwell Solver Supports HPC cluster with MPI
Slide 43
Merit Function = ModeMatch Optimization Region Geometry (eps =
Ta 2 O 5, epsOut = SiO 2 ) (minimum dimension = 300nm) (radius of
curvature = 150nm) Source (frequency = 830nm) abs(E z )
Slide 44
How to run an optimization: setup.m baseFile.fsp runOpt.m
Create a setup file Run runOpt in Matlab Create a Lumerical base
file 1. 2. 3. % Lumerical Simulation % Frequency % Optimization
Region % Geometry Properties % Merit Function Source Optimization
Region Initial Geometry Field and Index monitors Merit Function
monitors
Slide 45
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
Slide 46
Merit Functions Transmission through a plane Field Energy in a
volume Mode Match at a plane E intensity H intensity absorption E
mode H mode ExH Propagating Mode transmission
Slide 47
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
Slide 48
Custom Geometry Type
Slide 49
Install the software: Download all Inverse Design files Edit
runOpt_params.m 1. 3. Install Lumerical 2.
Slide 50
Example Waveguide Couplers for Silicon Photonics
Slide 51
Level set geometry class Inside phi0
Slide 52
Example
Slide 53
Our implementation First order accurate Can enforce radius of
curvature constraints Can anchor points of the initial geometry
Works great for Silicon photonics! Does not use the boundary
derivative D/E calculation Doesnt (yet) support new shapes Can be
computationally demanding if many mesh points (but is ok for most
problems)
Slide 54
Examples: 50%/50% splitter Figure of merit: Mode-matching to
the TE mode of two waveguides Optimized using level set geometry
representation and an effective index method
Slide 55
Example 1: 50%/50% splitter
Slide 56
Slide 57
Optimization video
Slide 58
Example Optical Antenna for Heat-Assisted Magnetic
Recording
Slide 59
TE mode Optical Antenna Example 1 Media Coupling = Absorption
in Storage Layer (FWHM) Power injected into Waveguide 10nm thick
Storage Layer (FePt) Media Stack Optimization Region = Planar Gold
Film Arm = 650 x 150 nm 2 Peg = 50 x 50 nm 2 Thickness = 40 nm
Slide 60
Antenna Geometry Media Coupling Efficiency (%) Optical Antenna
Example 1 TE mode
Slide 61
storage layer cross-section 800 nm storage layer cross-section
800 nm Media Coupling 2% Wasted Antenna Absorption 26% Media
Coupling 7% Wasted Antenna Absorption 27% Optical Antenna Example
1
Slide 62
TM mode Optical Antenna Example 2 10nm thick Storage Layer
(FePt) Media Stack Optimization Region = Planar Gold Film Arm = 650
x 150 nm 2 Peg = 50 x 50 nm 2 Thickness = 40 nm Media Coupling =
Absorption in Storage Layer (FWHM) Power injected into
Waveguide
Slide 63
TM mode Optical Antenna Example 2 Antenna Geometry
Slide 64
media cross-section 800 nm media cross-section 800 nm Media
Coupling 4% Wasted Antenna Absorption 31% Media Coupling 10% Wasted
Antenna Absorption 32% Optical Antenna Example 2
Slide 65
TM mode Optical Antenna Example 3 Merit Function = Absorption
in Storage Layer (FWHM) Absorption in Antenna Peg
Slide 66
Example Custom Wrapper for Silicon Photonics
Slide 67
Easy Silicon Photonics Optimization Extremely easy setup of an
optimization Only figure of merit possible: Mode-matching Just one
Lumerical file to set up and matlab file to modify Covers many
Silicon Photonics applications
Slide 68
Easy Silicon Photonics Optimization -Create a simulation file
as if you were just going to test your own design -Name your source
Source -Name your mode matching monitor merit1 -Add a monitor
around the region to optimize named Velocity -Use sources to create
the mode you would like to couple into and call them mode1, mode2,
etc
Slide 69
Matlab setup file setup_EZSiPh_params Then type runOpt in
matlab and enjoy!