INVERSE DESIGN FOR NANO-PHOTONICS Yablonovitch Group, UC Berkeley June 4 th 2013
Preview:
Citation preview
- Slide 1
- 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
- Slide 8
- Optimizations: Heuristic methods Genetic algorithms Particle
swarm optimization Ant colony Parameter sweeps
- Slide 9
- 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!