0% found this document useful (0 votes)
51 views71 pages

Compute Methods@Cornell

This document discusses computational photonics and numerical methods for modeling electromagnetic phenomena. It covers: 1) Time-domain and frequency-domain methods for simulating photonic structures. 2) Common basis choices for discretization in numerical modeling, including finite difference, finite element, and spectral methods. 3) The Yee finite-difference time-domain (FDTD) algorithm, which divides space and time into grids and uses centered differences to update electric and magnetic fields over time.

Uploaded by

Felipe Lucena
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views71 pages

Compute Methods@Cornell

This document discusses computational photonics and numerical methods for modeling electromagnetic phenomena. It covers: 1) Time-domain and frequency-domain methods for simulating photonic structures. 2) Common basis choices for discretization in numerical modeling, including finite difference, finite element, and spectral methods. 3) The Yee finite-difference time-domain (FDTD) algorithm, which divides space and time into grids and uses centered differences to update electric and magnetic fields over time.

Uploaded by

Felipe Lucena
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 71

Computational Photonics:

Frequency and Time Domain Methods

Steven G. Johnson
MIT Applied Mathematics
Nano-photonic media (l-scale)
strange waveguides

& microcavities
[B. Norris, UMN] [Assefa & Kolodziejski,
MIT]
3d
structures

[Mangan,
Corning]

synthetic materials
optical phenomena
hollow-core fibers
Photonic Crystals
periodic electromagnetic media
1887 1987
1-D 2-D 3-D

periodic in periodic in periodic in


one direction two directions three directions

can have a band gap: optical “insulators”


Electronic and Photonic Crystals
atoms in diamond structure dielectric spheres, diamond lattice
Medium
Periodic

photon frequency
Band Diagram
Bloch waves:

electron energy

wavevector wavevector
Electronic & Photonic Modeling
Electronic Photonic
• strongly interacting • non-interacting (or weakly),
—entanglement, Coulomb —simple approximations
—tricky approximations (finite resolution)
—any desired accuracy

• lengthscale dependent • scale-invariant


(from Planck’s h) —e.g. size ¥10 fi l ¥10
(except materials may change)
Computational Photonics Problems
• Time-domain simulation
— start with current J(x,t)
— run “numerical experiment” to simulate E(x, t), H(x, t)

• Frequency-domain linear response


— start with harmonic current J(x, t) = e–iwt J(x)
— solve for steady-state harmonic fields E(x), H(x)
— involves solving linear equation Ax=b

• Frequency-domain eigensolver
— solve for source-free harmonic eigenfields
E(x), H(x) ~ e–iwt
— involves solving eigenequation Ax=w2x
Numerical Methods: Basis Choices
finite difference finite elements
in irregular “elements,”
discretize approximate unknowns
unknowns by low-degree polynomial
on regular grid

df f ( x + Dx) - f ( x - Dx)
ª + O(Dx 2 )
dx Dx
boundary-element methods
† discretize only the
spectral methods
boundaries between
complete basis of homogeneous media
+ smooth functions
(e.g. Fourier series)
…solve
+ integral equation
+ ….. via Green’s functions
Numerical Methods: Basis Choices
finite difference finite elements
in irregular “elements,”
discretize approximate unknowns
unknowns by low-degree polynomial
on regular grid

boundary-element methods
spectral methods
discretize only the
boundaries between
complete basis of homogeneous media
+ smooth functions
(e.g. Fourier series)
+ …solve
integral equation
+ …..
via Green’s functions

Much easier to analyze, implement, Potentially much more efficient,


generalize, parallelize, optimize, … especially for high resolution
Computational Photonics Problems Numerical Methods: Basis Choices

finite difference
• Time-domain simulation
— start with current J(x,t)
— run “numerical experiment” to spectral methods
simulate E(x, t), H(x, t)
df f ( x + Dx) - f ( x - Dx)
dx
ª
Dx
+ O(Dx 2 ) +
• Frequency-domain linear response
— start with harmonic current J(x, t) = e–iwt J(x) +

— solve for steady-state harmonic fields E(x), H(x) + …..
— involves solving linear equation Ax=b
finite elements
• Frequency-domain eigensolver in irregular “elements,”
approximate unknowns
— solve for source-free harmonic eigenfields
by low-degree polynomial
E(x), H(x) ~ e–iwt
— involves solving eigenequation Ax=w2x

boundary-element methods
discretize only the
boundaries between
homogeneous media
FDTD
Finite-Difference Time-Domain methods

Divide both space and time into discrete grids


— spatial resolution ∆x
— temporal resolution ∆t

Very general: arbitrary geometries, materials,


nonlinearities, dispersion, sources, …
— any photonics calculation, in principle

∂H 1 r ∂E 1 r J
= - —¥ E = —¥ H -
∂t m ∂t e e

dielectric function e(x) = n2(x)


The Yee Discretization (1966)
a cubic “voxel”: ∆x ¥ ∆y ¥ ∆z (i, j+1)
(i+1, j+1, k+1)

Hz
Ey
(i, j, k+1) Hz

Hx
Ez Hy (i, j) (i+1, j)
(i+1, j+1, k)
Ex
Ey
(i, j, k) (i+1, j, k)
Ex

Staggered grid in space:


— every field component is stored on a different grid
The Yee Discretization (1966)
(i, j+1)
∂H 1
= - — ¥ E fi L
∂t m Ey
Hz
∂H z 1 Ê ∂Ey ∂Ex ˆ
=- Á - ˜
∂t 1
i+ , j +
1 m Ë ∂x ∂y ¯ (i, j) (i+1, j)
2 2 Ex
Ê 1 1 1 1 ˆ
E (i + 1, j + ) - Ey (i, j + ) Ex (i + , j + 1) - Ex (i + , j) ˜
1Á y 2 2 - 2 2
ª- Á ˜
mÁ Dx Dy ˜
Ë ¯
+ O(∆x2) + O(∆y2)
all derivatives become center differences…
The Yee Discretization (1966)
all derivatives become center differences…
including derivatives in time
1 1
H(n + ) - H(n - )
∂H 1 2 2
= - —¥ E ª
∂t t= nDt m t= nDt
Dt
+ O(∆t2)
Explicit time-stepping:
Dx
stability requires Dt <
# dimensions
(vs. implicit time steps: invert large matrix at each step)
FDTD Discretization Upshot

• For stability, space and time resolutions are proportional


— doubling resolution in 3d requires
at least 16 = 24 times the work!

• But at least the error goes quadratically with resolution


…right?
…not necessarily!
Difficulty with a grid:
representing discontinuous materials?

“staircasing”

… how does this affect accuracy?


Field Discontinuity Degrades
Order of Accuracy
E
TE polarization (E in plane: discontinuous)
a

a
Sub-pixel smoothing
Can eliminate
discontinuity
by “grayscaling”
— assign some average e
to each pixel

e?
= discretizing a smoothed structure
— that means we are changing geometry
— can actually add to error
Past sub-pixel smoothing methods
can make error worse!
& convergence is
Three previous smoothing methods
still only linear

[ Dey, 1999 ]
[ Kaneda, 1997 ]
[ Mohammadi, 2005]
A Criterion for Accurate Smoothing
1st-order errors È 2 1 2˘
from ~ Ú Í De E|| - D( ) D^ ˙
smoothing De Î e ˚

We want the smoothing errors to be zero to 1st order


— minimizes error and 2nd-order convergent!
† Use a tensor e: Ê
e ˆ
Á ˜ E||
(in principal axes:)
Á e ˜
Á -1 ˜
[ Meade et al., 1993 ] Ë e-1 ¯ E^
Consistently the Lowest Error
a

quadratic accuracy! quadratic!

[ Farjadpour et al., Opt. Lett. 2006 ]


… & in 3d too

(notice that
ranking of
other methods
has shuffled!)
A qualitatively different case: corners
still ~lowest error, but not quadratic

zero-perturbation
criterion
not satisfied
due to E divergence
at corner
— analytically,
error ~ ∆x1.404
Yes, but what can you do with FDTD?
Some common tasks:

• Frequency-domain response:
— put in harmonic source and wait for steady-state

• Transmission/reflection spectra:
— get entire spectrum from a single simulation
(Fourier transform of impulse response)

• Eigenmodes and resonant modes:


— get all modes from a single simulation
(some tricky signal processing)
Transmission Spectra in FDTD
e=1

a e = 12

example: a 90° bend, 2d strip waveguide

transmitted power = energy flux here:


Transmission Spectra in FDTD
e=1

a e = 12

Gaussian-pulse
current source J
Fourier-transform the fields at each x:
-iwt -iwnDt
Ew = Ú E(t)e dt ª Â E(nDt)e Dt
n
1 *
P(w ) =
2
Ú Re[Ew ¥ H w ]dx

Transmission Spectra in FDTD
must always do two simulations: one for normalization

electric P0(w)
field Ez:

P(w)
transmission = P(w) / P0(w)
Reflection Spectra in FDTD
e=1

e = 12

1
PR (w ) = Ú Re[(Ew - Ew0 )* ¥ (H w - H w0 )]dx
2

for reflection, subtract incident fields


(from normalization run)

1 *
P(w ) =
2
Ú Re[Ew ¥ H w ]dx
Transmission/Reflection Spectra
e=1

a e = 12

T 1–T–R

wa / 2πc = a / l
Dimensionless Units

Maxwell’s equations are scale invariant


— most useful quantities are dimensionless ratios
like a / l, for a characteristic lengthscale a
— same ratio, same e, m = same solution
regardless of whether a = 1µm or 1km

Our (typical) approach:


pick characteristic lengthscale a
– measure distance in units of a
– measure time in units of a/c
– measure w in units of 2πc/a = a / l
– ....
Absorbing Boundaries:
Perfectly Matched Layers
“perfect” absorber: PML Artificial absorbing material
overlapping the computation

Theoretically reflectionless

… but PML is no longer perfect


with finite resolution,
so “gradually turn on” absorption
over finite-thickness PML
Computational Photonics Problems Numerical Methods: Basis Choices

finite difference
• Time-domain simulation
— start with current J(x,t)
— run “numerical experiment” to spectral methods
simulate E(x, t), H(x, t)
df f ( x + Dx) - f ( x - Dx)
dx
ª
Dx
+ O(Dx 2 ) +
• Frequency-domain linear response
— start with harmonic current J(x, t) = e–iwt J(x) +

— solve for steady-state harmonic fields E(x), H(x) + …..
— involves solving linear equation Ax=b
finite elements
• Frequency-domain eigensolver in irregular “elements,”
approximate unknowns
— solve for source-free harmonic eigenfields
by low-degree polynomial
E(x), H(x) ~ e–iwt
— involves solving eigenequation Ax=w2x

boundary-element methods
discretize only the
boundaries between
homogeneous media
A Maxwell Eigenproblem
r r 1∂ r w r
—¥E =- H =i H First task:
c ∂t c get rid of this mess
r r 1∂ r r0 w r
— ¥ H =e E + J = -i eE
c ∂t c

dielectric function e(x) = n2(x)

1 r Êw ˆ 2 r
+ constraint
—¥ —¥H =Á ˜ H r
Ë c¯ —⋅ H = 0
e
eigen-operator eigen-value eigen-state
Electronic & Photonic Eigenproblems
Electronic Photonic
Ê h2 2 ˆ 1 r Ê w ˆ 2 r

Á- — + V ˜y = Ey —¥ —¥H =Á ˜ H
Ë 2m ¯ e Ë c¯
nonlinear eigenproblem simple linear eigenproblem
(V depends on e density |y|2) (for linear materials)

—many well-known
computational techniques

Hermitian = real E & w, … Periodicity = Bloch’s theorem…


A 2d Model System

dielectric “atom”
e=12 (e.g. Si)

square lattice,
period a
a
a
E
TM
H
Periodic Eigenproblems
if eigen-operator is periodic, then Bloch-Floquet theorem applies:

r r i ( k ⋅ x -wt ) r
r r
r
can choose: H( x ,t) = e Hkr ( x )

planewave
periodic “envelope”

Corollary 1: k is conserved, i.e. no scattering of Bloch wave


r
Corollary 2: Hrk given by finite unit cell,
so w are discrete wn(k)
A More Familiar Eigenproblem
e=1

a e = 12 y
x
band diagram / dispersion relation
w
find the normal modes light cone
(all non-guided modes)
of the waveguide:
i(kx-wt )
H(y,t) = H k (y)e
(propagation constant k
a.k.a. b)
k
Solving the Maxwell Eigenproblem
Finite cell Ë discrete eigenvalues wn 1 wn 2
(— + ik) ¥ (— + ik) ¥ H n = 2 H n
e c
Want to solve for wn(k),
& plot vs. “all” k for “all” n,
constraint: (— + ik) ⋅ H = 0
1

0.9
† where:
0.8

0.7
H(x,y)#ei(k⋅x – wt)
0.6

0.5

0.4
Photonic Band Gap
0.3

0.2

0.1
TM bands

0

1 Limit range of k: irreducible Brillouin zone

2 Limit degrees of freedom: expand H in finite basis

3 Efficiently solve eigenproblem: iterative methods


Solving the Maxwell Eigenproblem: 1
1 Limit range of k: irreducible Brillouin zone
—Bloch’s theorem: solutions are periodic in k
M

2p ky
first Brillouin zone G X a
kx
= minimum |k| “primitive cell”

† reduced by symmetry
irreducible Brillouin zone:

2 Limit degrees of freedom: expand H in finite basis

3 Efficiently solve eigenproblem: iterative methods


Solving the Maxwell Eigenproblem: 2a
1 Limit range of k: irreducible Brillouin zone
2 Limit degrees of freedom: expand H in finite basis (N)

N
H = H(xt ) = Â hm bm (x t ) ˆ 2
solve: A H = w H
m=1

2
finite matrix problem: Ah = w Bh

f g = Ú f* ⋅g Aml = bm Aˆ bl Bml = bm bl

3 Efficiently solve eigenproblem: iterative methods


Solving the Maxwell Eigenproblem: 2b
1 Limit range of k: irreducible Brillouin zone
2 Limit degrees of freedom: expand H in finite basis
— must satisfy constraint: (— + ik) ⋅ H = 0

Planewave (FFT) basis Finite-element basis


constraint, boundary conditions:
iG⋅xt
H(x t ) = Â HG e † Nédélec elements
G [ Nédélec, Numerische Math.
35, 315 (1980) ]
constraint: H G ⋅ (G + k) = 0
nonuniform mesh,
uniform “grid,” periodic boundaries,
more arbitrary boundaries,
simple code, O(N log N) [ figure: Peyrilloux et al.,
J. Lightwave Tech.
21, 536 (2003) ]
complex code & mesh, O(N)

† 3 Efficiently solve eigenproblem: iterative methods


Solving the Maxwell Eigenproblem: 3a
1 Limit range of k: irreducible Brillouin zone
2 Limit degrees of freedom: expand H in finite basis
3 Efficiently solve eigenproblem: iterative methods
2
Ah = w Bh
Slow way: compute A & B, ask LAPACK for eigenvalues
— requires O(N2) storage, O(N3) time
Faster way:
— start with initial guess eigenvector h0
— iteratively improve
— O(Np) storage, ~ O(Np2) time for p eigenvectors
(p smallest eigenvalues)
Solving the Maxwell Eigenproblem: 3b
1 Limit range of k: irreducible Brillouin zone
2 Limit degrees of freedom: expand H in finite basis
3 Efficiently solve eigenproblem: iterative methods
2
Ah = w Bh
Many iterative methods:
— Arnoldi, Lanczos, Davidson, Jacobi-Davidson, …,
Rayleigh-quotient minimization
Solving the Maxwell Eigenproblem: 3c
1 Limit range of k: irreducible Brillouin zone
2 Limit degrees of freedom: expand H in finite basis
3 Efficiently solve eigenproblem: iterative methods
2
Ah = w Bh
Many iterative methods:
— Arnoldi, Lanczos, Davidson, Jacobi-Davidson, …,
Rayleigh-quotient minimization
for Hermitian matrices, smallest eigenvalue w0 minimizes:
“variational 2 h' Ah minimize by preconditioned
theorem” w = min
0 conjugate-gradient (or…)
h h' Bh
Band Diagram of 2d Model System
a (radius 0.2a rods, e=12)
1

frequency w (2πc/a) = a / l
0.9

0.8

0.7

0.6

0.5

0.4
Photonic Band Gap
0.3

0.2
TM bands
0.1

irreducible Brillouin zone G X M G


M
r E gap for
k X TM
G H n > ~1.75:1
Origin of Gap in 2d Model System
orthogonal: node in high e 1

0.9

0.8

Ez 0.7

0.6

0.5

0.4
Photonic Band Gap
0.3

0.2
TM bands
lives in high e 0.1

0
G X M G
Ez
E gap for
TM
H n > ~1.75:1
– +
The Iteration Scheme is Important
(minimizing function of 104–108+ variables!)
2 h' Ah
w = min
0 = f (h)
h h' Bh

Steepest-descent: minimize (h + a —f) over a … repeat

Conjugate-gradient: minimize (h + a d)
† — d is —f + (stuff): conjugate to previous search dirs
Preconditioned steepest descent: minimize (h + a d)
— d = (approximate A-1) —f ~ Newton’s method
Preconditioned conjugate-gradient: minimize (h + a d)
— d is (approximate A-1) [—f + (stuff)]
The Iteration Scheme is Important
(minimizing function of ~40,000 variables)
1000000

100000
E E E E E
10000 E EEE
EEEE
EEEEEE
EEE
EE
EE
E
1000 J E
EE
E
EE
EE
E
EE
EE
EE
E
Ñ E
EE
EE
E
EE
EE
E
EE
EE
E
EE
EE
E
E
100
Ñ
J
E
EE
E
EE
EE
E
EE
EE
E
E
no preconditioning
% error

Ñ Ñ
J E
EE
E
EE
EE
E
EE
E
10 J Ñ E
E
EE
EE
E
E
J ÑÑ E
EE
E
EE
E
J ÑÑ E
E
EE
E
J ÑÑ E
E
EE
E
1 JJ ÑÑÑÑ E
E
EE
EE
E
E
Ñ
JJJJJ ÑÑÑÑÑÑ E
E
EE
JJ ÑÑ
ÑÑ
ÑÑ
ÑÑ
Ñ
ÑÑ
ÑÑ
Ñ
ÑÑ
ÑÑ
Ñ EE
E
0.1 JJ Ñ
ÑÑ
ÑÑ
ÑÑ
Ñ
ÑÑ
ÑÑ EE
E
ÑÑ
Ñ
ÑÑ
ÑÑ
Ñ
ÑÑ E
E
J ÑÑ
Ñ
ÑÑ
ÑÑ
Ñ EE
E
J ÑÑ
ÑÑ
Ñ EE
E
E
0.01 ÑÑ
ÑÑ
Ñ EE
E
J ÑÑ
ÑÑ EE
E
Ñ
ÑÑ
Ñ EE
E
E
Ñ
Ñ
ÑÑ E
E
J ÑÑ
Ñ
0.001 ÑÑ
preconditioned J
J
ÑÑ
Ñ
ÑÑ
0.0001
conjugate-gradient J
J
no conjugate-gradient
0.00001 J
J
0.000001
1 10 100 1000
# iterations
The Boundary Conditions are Tricky
E|| is continuous

E^ is discontinuous
(D^ = eE^ is continuous)

Any single scalar e fails:


(mean D) ≠ (any e) (mean E)
e?
Use a tensor e:
Êe ˆ
Á ˜ E||
Á e ˜
Á -1 ˜
Ë e-1 ¯ E^
The e-averaging is Important
100

H
H
backwards averaging
10 H H H H H
B
J B
B H H
H H
correct averaging
B H H
% error

J
J
B B B changes order
B no Baveraging
J
1 J J
B B of convergence
J
J J
B B
from ∆x to ∆x2
tensor averaging J J
0.1
J J

0.01
10 100 (similar effects
resolution (pixels/period) in other E&M
numerics & analyses)
Gap, Schmap?
1

a 0.9

0.8

0.7

frequency w
0.6

0.5

0.4
Photonic Band Gap
0.3

0.2
TM bands
0.1

0
G X M G

But, what can we do with the gap?


Intentional “defects” are good

microcavities waveguides (“wires”)

3D Photonic C rysta l with Defects


Intentional “defects” in 2d
(Same computation, with supercell = many primitive cells)

a
Microcavity Blues
For cavities (point defects)
frequency-domain has its drawbacks:

• Best methods compute lowest-w bands,


but Nd supercells have Nd modes
below the cavity mode — expensive

• Best methods are for Hermitian operators,


but losses requires non-Hermitian
Time-Domain Eigensolvers
(finite-difference time-domain = FDTD)

Simulate Maxwell’s equations on a discrete grid,


+ absorbing boundaries (leakage loss)

• Excite with broad-spectrum dipole ( ) source

Dw

signal processing Response is many


complex wn sharp peaks,
[ Mandelshtam,
J. Chem. Phys. 107, 6756 (1997) ] one peak per mode

decay rate in time gives loss


Signal Processing is Tricky
signal processing
complex wn
?
a common approach: least-squares fit of spectrum
0.8 450
E
0.6 EE 400
EE

0.4 EE
E
350 fit to:
E E
E
0.2 E
EE
EE
E
E
E E E
E
EE
EE
E E
300 E E
A
0 E E E E E E E E E
EEE
E
EE
E
EE E
EE
E
EE
EE
E
EE
E
EEEE
E
EE
EE
E
EE
E
EE
E
EE
EE
E
EE
E
EE
E
EE
E
EE
E
EE
EE
E
EE
E
EE
E
EE
EE
E
EE
E
EE
E
EE
EE
E
EE
E
EE
EE
E
EE
E
EE
E
EE
EE
E
EE
E
EE
E
EE
EE
E
EE
E
EE
E
EE
E
E
E
E E E
EE
E
(w - w 0 ) 2 + G 2
E
EEE
EE
E E
EE
E
E 250
EE E
E
E E EE
E
E E
E
-0.2 E 200

-0.4
E EE
EE
EE FFT 150
E E

E
-0.6 100 E E
E
-0.8 E E
E
50
EE

E E
EE
-1 E EE EEEE
EEEEEEEEEEEEEEEEEEE
0
0 1 2 3 4 5 6 7 8 9 10 0 0.5 1 1.5 2 2.5 3 3.5 4

Decaying signal (t) Lorentzian peak (w)


Fits and Uncertainty
problem: have to run long enough to completely decay
1 40000
E
EE
E
0.8 EE
EE E 35000
EE

0.6 EE
EE
EE EE
E
EE
EE
E
EE
E
actual
EE EE EE
E 30000
EE EE EE
E
0.4 EE EE E
EE
EE EE E
E
E
EE EE EE EE
E E E E EE
E E EE EE 25000
0.2 E E E E E E E E E E E E E E
0 E E E E E E E E E E E E E E E E E E E E 20000

E E E E E E E
-0.2 E E E E E E E
E E EE E
E E E E EE 15000
E EE EE EE E
EE EE E
-0.4 EE
EE EE EE
E
E
E
EE E E
EE EE E
-0.6 E
EE
EE
EE
EE
EE
E
E
EE
EE
E
E 10000
signal
EE
EE
-0.8 E
EE
E
EE
E
E 5000
portion
E E E
-1 E 0 E E E E E E E E
0 1 2 3 4 5 6 7 8 9 10 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5

Portion of decaying signal (t) Unresolved Lorentzian peak (w)

There is a better way, which gets complex w to > 10 digits


Unreliability of Fitting Process
Resolving two overlapping peaks is
near-impossible 6-parameter nonlinear fit
(too many local minima to converge reliably)
1200

1000
E
sum of two peaks
There is a better
800
E
E
way, which gets
600
complex w
for both peaks
400
w = 1+0.033i E E to > 10 digits
E E
w = 1.03+0.025i
200
E E
E E
E EE
E
E E EE E EE
0 E E E EE E E E E EE E E E E E E E EE E E E E EE E E

0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5
Sum of two Lorentzian peaks (w)
Quantum-inspired signal processing (NMR spectroscopy):
Filter-Diagonalization Method (FDM)
[ Mandelshtam, J. Chem. Phys. 107, 6756 (1997) ]

Given time series yn, write: y n = y(nDt) = Â ak e -iw k nDt

k
…find complex amplitudes ak & frequencies wk
by a simple linear-algebra problem!

Idea: pretend y(t) is autocorrelation of a quantum system:



ˆ ∂ ˆ -iHˆ Dt / h
H y = ih y time-∆t evolution-operator: U =e
∂t
say: y n = y (0) y (nDt) = y (0) Uˆ n y (0)


Filter-Diagonalization Method
[ Mandelshtam, J. Chem. Phys. 107, 6756 (1997) ]
(FDM)

y n = y (0) y (nDt) = y (0) Uˆ n y (0) ˆ


U =e -iHˆ Dt / h

We want to diagonalize U: eigenvalues of U are eiw∆t


…expand U in basis of†|y(n∆t)>:

U m,n = y (mDt) Uˆ y (nDt) = y (0) Uˆ mUˆ Uˆ n y (0) = y m +n +1

Umn given by yn’s — just diagonalize known matrix!


Filter-Diagonalization Summary
[ Mandelshtam, J. Chem. Phys. 107, 6756 (1997) ]

Umn given by yn’s — just diagonalize known matrix!


A few omitted steps:
—Generalized eigenvalue problem (basis not orthogonal)
—Filter yn’s (Fourier transform):
small bandwidth = smaller matrix (less singular)

• resolves many peaks at once


• # peaks not known a priori
• resolve overlapping peaks
• resolution >> Fourier uncertainty
Do try this at home
FDTD simulation:
http://ab-initio.mit.edu/meep/

Bloch-mode eigensolver:
http://ab-initio.mit.edu/mpb/

Filter-diagonalization:
http://ab-initio.mit.edu/harminv/

Photonic-crystal tutorials (+ THIS TALK):


http://ab-initio.mit.edu/
/photons/tutorial/
Meep (FDTD) MPB (Eigensolver)
• Arbitrary e(x) — including
dispersive, loss/gain, • Arbitrary periodic e(x) —
and nonlinear [c(2) and c(3)] anisotropic, magneto-optic, …
(lossless, linear materials)
• Arbitrary J(x,t)
• PML/periodic/metal bound. • 1d/2d/3d

• 1d/2d/3d/cylindrical • band diagrams, group velocities


perturbation theory, …
• power spectra • eigenmodes

Free/open-source • fully scriptable interface


software (GNU)
• built-in multivariate optimization,
• MPI parallelism integration, root-finding, …
• exploit mirror symmetries • field output (standard HDF5 format)
Unix Philosophy
combine small, well-designed tools, via files

Input text file MPB/Meep standard formats


(text + HDF5)
Disadvantage:
— have to learn several programs
Visualization / Analysis
Advantages: software
— flexibility (Matlab, Mayavi [vtk],
— batch processing, shell scripting command-line tools, …)
— ease of development
Unix Philosophy
combine small, well-designed tools, via files

Input text file MPB/Meep standard formats


(text + HDF5)

GNU Guile scripting interpreter


(Scheme language)
Visualization / Analysis
software
Embed a full scripting language: (Matlab, Mayavi [vtk],
— parameter sweeps command-line tools, …)
— complex parameterized geometries
— optimization, integration, etc.
— programmable J(x, t), etc.
— … Turing complete
A Simple Example (MPB)
e=1

a e = 12 y
find the normal modes wn(k) x
of the waveguide:
i(kx-wt )
H(y,t) = H k (y)e

Need to specify:
• computational cell size/resolution
† • geometry, i.e. e(y)
• what k values
• how many modes (n = 1, 2, … ?)
A File Format Made of Parentheses
Need to specify:
• computational cell size/resolution
(set! geometry-lattice (make lattice (size no-size 10 no-size)
(set! resolution 32)

• geometry, i.e. e(y)


• what k values
• how many modes (n = 1, 2, … ?) 1 pixel

10 (320 pixels)
e=1

a e = 12 y
x
A File Format Made of Parentheses
Need to specify:
• computational cell size/resolution
• geometry, i.e. e(y)
(set! geometry (choose units of a)
(list
(make block (size infinity 1 infinity)
(center 0 0 0)
(material (make dielectric (epsilon 12))))))
• what k values
• how many modes (n = 1, 2, … ?)

e=1

a e = 12 y
x
A File Format Made of Parentheses
Need to specify:
• computational cell size/resolution
• geometry, i.e. e(y)
(units of 2π/a)
• what k values
(set! k-points
(interpolate 10 (list (vector3 0 0 0) (vector3 2 0 0))))

(built-in function)
• how many modes (n = 1, 2, … ?)

e=1

a e = 12 y
x
A File Format Made of Parentheses
Need to specify:
• computational cell size/resolution
• geometry, i.e. e(y) …Then run:
• what k values (run)
• how many modes (n = 1, 2, … ?)
(set! num-bands 5) or only TM polarization:
(run-tm)

or only TM, even modes:


(run-tm-yeven)

e=1

a e = 12 y
x
Simple Example (MPB) Results
e=1

a e = 12 y
find the normal modes wn(k) x
of the waveguide:

red = even
blue = odd
Do try this at home
FDTD simulation:
http://ab-initio.mit.edu/meep/

Bloch-mode eigensolver:
http://ab-initio.mit.edu/mpb/

Filter-diagonalization:
http://ab-initio.mit.edu/harminv/

Photonic-crystal tutorials (+ THIS TALK):


http://ab-initio.mit.edu/
/photons/tutorial/

You might also like