Computational Methods for Optoelectronics
Computational Methods for Optoelectronics Computational Methods for Optoelectronics
IPT 5260 Computational Methods for Optoelectronics Ray-Kuang Lee † Department of Electrical Engineering and Institute of Photonics Technologies National Tsing-Hua University, Hsinchu, Taiwan Course info: http://mx.nthu.edu.tw/∼rklee †e-mail: rklee@ee.nthu.edu.tw IPT-5260, Spring 2006 – p.1/30
- Page 2 and 3: Frequency (ωd/2πc) 0.9 0.8 0.7 0.
- Page 4 and 5: Reference Books W. H. Press et al.,
- Page 6 and 7: where A = ⎡ ⎢ ⎣ 1, Linear Alg
- Page 8 and 9: 2, Interpolation, Curve Fitting, an
- Page 10 and 11: Euler’s method 3, Ordinary Differ
- Page 12 and 13: 4, Partial Differential Equations A
- Page 14 and 15: Metallic Waveguide by ToyFDTD IPT-5
- Page 16 and 17: Propagation of solitons Nonlinear S
- Page 18 and 19: Vector bound solitons Coupled Nonli
- Page 20 and 21: Frequency (ωd/2πc) 0.9 0.8 0.7 0.
- Page 22 and 23: Elements Mesh generation Element as
- Page 24 and 25: 8, Monte Carlo Method Random number
- Page 26 and 27: 10, Case studies Newton-Kantorovich
- Page 28 and 29: Optical lithography IPT-5260, Sprin
- Page 30: 1. Two Homeworks (assigned), 70% Ev
IPT 5260<br />
<strong>Computational</strong> <strong>Methods</strong> <strong>for</strong> <strong>Optoelectronics</strong><br />
Ray-Kuang Lee †<br />
Department of Electrical Engineering<br />
and Institute of Photonics Technologies<br />
National Tsing-Hua University, Hsinchu, Taiwan<br />
Course info: http://mx.nthu.edu.tw/∼rklee<br />
†e-mail: rklee@ee.nthu.edu.tw<br />
IPT-5260, Spring 2006 – p.1/30
Frequency (ωd/2πc)<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
ω a<br />
|2><br />
|1><br />
0<br />
M Γ X M<br />
<strong>Computational</strong> <strong>Optoelectronics</strong><br />
x j<br />
50<br />
0<br />
-50<br />
-50 0 50<br />
xi IPT-5260, Spring 2006 – p.2/30
Time: T3T4Tn (10:10-13:00 AM, Tuesday)<br />
Course Description:<br />
IPT 52600<br />
Fundamental numerical simulation techniques <strong>for</strong> solving <strong>Optoelectronics</strong> related<br />
problems.<br />
Taking this course you are asked to program by yourself.<br />
Although this course is given primarily <strong>for</strong> the first year graduate students, those<br />
who are undergraduates or senior graduates are encouraged to take this course.<br />
Background: No required but you must learn how to program in C/C++, Fortran,<br />
Matlab, Mathematica, or Mapple (at least one of these programming languages).<br />
Remark: This course is more focused on numerical methods than numerical analysis.<br />
Teaching Method: in-class lectures with examples and projects studies.<br />
Evaluation:<br />
1. Two Homeworks, 70%;<br />
2. One Project, 30%.<br />
IPT-5260, Spring 2006 – p.3/30
Reference Books<br />
W. H. Press et al., "Numerical Recipes (in C, C++, or<br />
Fortran)," Cambridge University Press (1992).<br />
W. Y. Yang et al., "Applied Numerical <strong>Methods</strong> Using<br />
MATLAB," Wiley (2005).<br />
http://www.nr.com/<br />
ftp://ftp.wiley.com/public/sci_tech_med/applied_numerical/<br />
IPT-5260, Spring 2006 – p.4/30
Data Structures<br />
Algorithm<br />
Numerical Analysis<br />
Related courses<br />
Numerical Partial Differential Equations<br />
Scientific Computation<br />
<strong>Computational</strong> Physics<br />
<strong>Computational</strong> Fluid Dynamics, CFD<br />
First Principle calculation, ab-initio<br />
Finite Element Method, FEM<br />
Monte Carlo/Molecular Dynamics calculation, MC/MD<br />
Computer-Aided Design, CAD<br />
IPT-5260, Spring 2006 – p.5/30
where<br />
A =<br />
⎡<br />
⎢<br />
⎣<br />
1, Linear Algebraic Equations<br />
a11 a12 · · · a1N<br />
a21 a22 · · · a2N<br />
· · ·<br />
aM1 aM2 · · · aMN<br />
Gauss-Jordan elimination<br />
LU decomposition<br />
Jacobi iteration<br />
Gauss-Seidel iteration<br />
A · x = b,<br />
⎤<br />
⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ , x = ⎢<br />
⎥ ⎢<br />
⎦ ⎢<br />
⎣<br />
x1<br />
x2<br />
.<br />
xM<br />
⎤<br />
⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ , and b = ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
b1<br />
b2<br />
.<br />
bM<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦<br />
IPT-5260, Spring 2006 – p.6/30
Multiple scattering method <strong>for</strong> PBG<br />
Helmholtz equation:<br />
with<br />
˜k 2 (M) = k 2 ˜ǫ =<br />
⎧<br />
⎨<br />
⎩<br />
▽ 2 E + ˜ k 2 (M)E = 0<br />
write down the total field in decomposition,<br />
E(P) =<br />
then all we need is to solve<br />
+<br />
k 2 ǫj if M ∈ Cj(j = 1, 2, . . . , N)<br />
k 2 if M ∈ Cj(j = 1, 2, . . . , N)<br />
∞<br />
m=−∞<br />
∞<br />
m=−∞<br />
al,mJm[krl(P)]e imθ l(P)<br />
bl,mH (1)<br />
m [krl(P)]e imθ l(P) ,<br />
ˆbl − <br />
SlTl,j ˆ bj = SlQl.<br />
j=l<br />
Transmittance [dB]<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2<br />
-2.5<br />
10<br />
0<br />
-10<br />
-20<br />
-30<br />
-40<br />
a = 0.45<br />
2r = 0.15<br />
d = 0.45<br />
l = 1.0<br />
n c = 3.5<br />
-2 -1 0 1 2<br />
# of layers<br />
= 2 345<br />
-50<br />
0.2 0.3 0.4 0.5 0.6 0.7<br />
Normalized Frequency ωa/2πc<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-2 -1 0 1 2<br />
IPT-5260, Spring 2006 – p.7/30
2, Interpolation, Curve Fitting, and Integration<br />
1.5<br />
1<br />
0.5<br />
0<br />
−0.5<br />
equispaced points<br />
max error = 5.9001<br />
−1<br />
−1 −0.5 0 0.5 1<br />
−0.5<br />
Polynomial interpolation and extrapolation<br />
Rational function interpolation<br />
Chebyshev approximation<br />
Padé approximation<br />
1.5<br />
1<br />
0.5<br />
0<br />
Chebyshev points<br />
max error = 0.017523<br />
−1<br />
−1 −0.5 0 0.5 1<br />
Fast Fourier Trans<strong>for</strong>m and Discrete Fourier Trans<strong>for</strong>m<br />
Trapezoidal and Simpson method <strong>for</strong> integration<br />
IPT-5260, Spring 2006 – p.8/30
Finite difference approximation<br />
Second-order FD approximation <strong>for</strong> u ′ (xj)<br />
u ′ (xj) ≈ uj+1 − uj−1<br />
2h<br />
in the matrix-vector <strong>for</strong>m (with periodic boundary)<br />
⎛<br />
⎜<br />
⎝<br />
u ′ 1<br />
.<br />
u ′ j<br />
.<br />
u ′ N<br />
⎞<br />
⎛<br />
⎟ = h<br />
⎟<br />
⎠<br />
−1<br />
⎜<br />
⎝<br />
1<br />
0 2<br />
− 1<br />
0 2<br />
1<br />
2<br />
. ..<br />
− 1<br />
2 0<br />
. ..<br />
1<br />
2<br />
0<br />
− 1<br />
2<br />
− 1<br />
2<br />
1<br />
2<br />
0<br />
⎞ ⎛<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
⎠ ⎝<br />
u1<br />
.<br />
uj<br />
.<br />
uN<br />
⎞<br />
⎟<br />
⎠<br />
IPT-5260, Spring 2006 – p.9/30
Euler’s method<br />
3, Ordinary Differential Equations<br />
Runge-Kutta method<br />
Adaptive stepsize control<br />
Predictor-corrector method<br />
Boundary value problems<br />
Relaxation method<br />
d 2 y<br />
+ q(x)dy<br />
dx2 dx<br />
= r(x),<br />
IPT-5260, Spring 2006 – p.10/30
ODE with B. C.: 1D Bragg reflector<br />
coupled-mode equation:<br />
dE+(z)<br />
dz<br />
dE−(z)<br />
dz<br />
with the Boundary Condition:<br />
Transmission<br />
1<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
0<br />
-20 -10 0 10 20<br />
δ (1/cm)<br />
= iδE+(z) + iκE−(z)<br />
= iδE−(z) + iκE+(z)<br />
E+(z = 0) = 1<br />
E−(z = L) = 0<br />
Reflection<br />
A B A B A B A<br />
.... B ....<br />
1<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
0<br />
-20 -10 0 10 20<br />
δ (1/cm)<br />
IPT-5260, Spring 2006 – p.11/30
4, Partial Differential Equations<br />
A(x,y) ∂2u ∂x2 + B(x,y) ∂2u ∂x∂y + C(x,y)∂2 u<br />
∂y<br />
Euler method<br />
Crank-Nicholson method<br />
Beam Propagation Method<br />
Slit-Step Fast Fourier Trans<strong>for</strong>m<br />
Finite Difference Time Domain method<br />
Absorption Boundary Condition<br />
Periodic Boundary Condition<br />
Perfect Matching Layers<br />
∂u<br />
= f(x,y,u, 2 ∂x<br />
, ∂u<br />
∂y ),<br />
IPT-5260, Spring 2006 – p.12/30
Mach-Zehnder structure<br />
by BeamProp<br />
IPT-5260, Spring 2006 – p.13/30
Metallic Waveguide<br />
by ToyFDTD<br />
IPT-5260, Spring 2006 – p.14/30
5, Nonlinear Equations and Nonlinear PDE<br />
Nonlinear equation:<br />
Iterative method<br />
Newton-Raphson method<br />
f(x) = x 3 + x 2 = 5,<br />
Secant Method<br />
Nonlinear Schrödinger equation:<br />
Crank-Nicholson method<br />
Slit-Step Fast Fourier Trans<strong>for</strong>m<br />
Pseudospectral method<br />
i ∂U<br />
∂t + ∂2 U<br />
∂x 2 + |U|2 U = 0<br />
IPT-5260, Spring 2006 – p.15/30
Propagation of solitons<br />
Nonlinear Schrödinger equation:<br />
i ∂U<br />
∂t + ∂2 U<br />
∂x 2 + |U|2 U = 0<br />
supports soliton solutions, U(t = 0,x) = sech(x).<br />
1.4<br />
1.2<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
−30<br />
−20<br />
−10<br />
0<br />
10<br />
x<br />
20<br />
simulated by Fourier spectral + 4th-order explicit Runge-Kutta methods,<br />
Nx = 128, Nt = 50, error = 10 −6 , indep. of Nt; nlse.m.<br />
30<br />
0<br />
5<br />
10<br />
15<br />
t<br />
20<br />
25<br />
30<br />
35<br />
IPT-5260, Spring 2006 – p.16/30
Bound solitons in CGLE<br />
Complex Ginzburg-Landau Equation:<br />
iUz + D<br />
2 Utt + |U| 2 U = iδU + iǫ|U| 2 U + iβUtt<br />
+ iµ|U| 4 U − v|U| 4 U,<br />
seek <strong>for</strong> bound-state solutions by propagation method.<br />
N<br />
U(z,t) = U0(z,t + ρj)e iθj<br />
j=1<br />
R.-K. Lee, Y. Lai, and B. A. Malomed, Phys. Rev. A 70, 063817 (2004).<br />
IPT-5260, Spring 2006 – p.17/30
Vector bound solitons<br />
Coupled Nonlinear Schrödinger Equations:<br />
i ∂U<br />
∂z<br />
i ∂V<br />
∂z<br />
+ 1<br />
2<br />
+ 1<br />
2<br />
∂ 2 U<br />
∂t 2 + A|U|2 U + B|V | 2 U = 0<br />
∂ 2 V<br />
∂t 2 + A|V |2 V + B|U| 2 V = 0<br />
where A = 1/3, B = 2/3; and U, V are circular polarization fields. Time<br />
U, V<br />
1.5<br />
1<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-5 0 5<br />
M. Haelterman, A. P. Sheppard, and A. W. Snyder, Opt. Lett. 18, 1406 (1993).<br />
IPT-5260, Spring 2006 – p.18/30
6, Eigenvalues and Eigenvectors<br />
A · x = λx,<br />
Similarity trans<strong>for</strong>mation and Diagonalization<br />
Jacobi method<br />
The QR algorithm<br />
Mathieu equation: −uxx + 2q cos(2x)u = λx,<br />
λ<br />
32<br />
28<br />
24<br />
20<br />
16<br />
12<br />
8<br />
4<br />
0<br />
−4<br />
−8<br />
−12<br />
−16<br />
−20<br />
−24<br />
0 5 10 15<br />
q<br />
IPT-5260, Spring 2006 – p.19/30
Frequency (ωd/2πc)<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
0<br />
Band diagram and Density of States<br />
1<br />
ǫ(r)<br />
M Γ X M<br />
ω2<br />
∇ × {∇ × E(r)} = E(r),<br />
c2 0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
0 0.5 1 1.5 2 2.5 3<br />
x 10 4<br />
0<br />
DOS (A.U.)<br />
IPT-5260, Spring 2006 – p.20/30
Laplacian equation in a disk<br />
Eigenmodes of Laplacian equations, [ ∂2<br />
∂x 2 + ∂2<br />
∂x 2 ]u(x, y) = −λf(x, y).<br />
Mode 1<br />
λ = 1.0000000000<br />
Mode 6<br />
λ = 2.2954172674<br />
Mode 3<br />
λ = 1.5933405057<br />
Mode 10<br />
λ = 2.9172954551<br />
L. N. Trefethen, ”Spectral methods in Matlab,” SIAM (2000).<br />
IPT-5260, Spring 2006 – p.21/30
Elements<br />
Mesh generation<br />
Element assembly<br />
Boundary condition<br />
7, Finite Element Method<br />
IPT-5260, Spring 2006 – p.22/30
3.5<br />
3<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
−0.5<br />
−1<br />
Photonic Crystals<br />
−1.5<br />
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5<br />
3.5<br />
3<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
−0.5<br />
−1<br />
−1.5<br />
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5<br />
IPT-5260, Spring 2006 – p.23/30
8, Monte Carlo Method<br />
Random numbers with uni<strong>for</strong>m deviates<br />
Trans<strong>for</strong>mation method<br />
Rejection method<br />
Random bits<br />
Monte Carlo methods<br />
IPT-5260, Spring 2006 – p.24/30
1<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
1.545 1.55 1.555<br />
x 10 −3<br />
0<br />
Simulated annealing<br />
Genetic algorithm<br />
Penalty function<br />
Optimal control method<br />
Matlab built-in routines<br />
9, Optimization<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
−1<br />
−2<br />
−3<br />
0 2 4 6 8 10<br />
IPT-5260, Spring 2006 – p.25/30
10, Case studies<br />
Newton-Kantorovich method<br />
2D Gross-Pitaevskii equation<br />
Moment method<br />
... your project<br />
... your project<br />
Numerical Libraries<br />
Matlab<br />
IMSL<br />
Programming in Unix<br />
GNU Make and Concurrent Version System<br />
Parallel programming<br />
IPT-5260, Spring 2006 – p.26/30
Eigenfunction of Nonlinear PDF<br />
Gap solitons in optical lattices,<br />
i ∂<br />
∂ Φ0(t, x) = − 1<br />
2<br />
∂ 2<br />
which has gap soliton solutions.<br />
P<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
a<br />
∂x 2 Φ0(t, x) + V (x)Φ0(t, x) + g1D|φ0(t, x)| 2 φ0(t, x)<br />
0<br />
1 2 3 4<br />
µ<br />
b<br />
c<br />
2<br />
1<br />
0<br />
-1<br />
1<br />
0<br />
-1<br />
1<br />
0<br />
X<br />
(a)<br />
(b)<br />
(c)<br />
-1<br />
-50 -25 0 25 50<br />
by FS + NK methods, Nx = 512, no. of iterations < 10; gpeol.m.<br />
R.-K. Lee, E. A. Ostrovskaya, Yu. S. Kivshar, and Y. Lai, Phys. Rev. A 72, 033607 (2005).<br />
IPT-5260, Spring 2006 – p.27/30
Optical lithography<br />
IPT-5260, Spring 2006 – p.28/30
1. Linear Algebraic Equations (Mar. 7)<br />
Syllabus<br />
2. Interpolation, Curve Fitting, and Integration (Mar. 14)<br />
3. Ordinary Differential Equations (Mar. 21 and Mar. 28)<br />
Homework # 1: two-weeks to finish, deadline Apr. 11.<br />
4. Partial Differential Equations (Apr. 11 and Apr. 18)<br />
5. Nonlinear Equations and Nonlinear PDE (Apr. 25 and May 2)<br />
Homework # 2: two-weeks to finish.<br />
6. Eigenvalues and Eigenvectors (May 9)<br />
7. Finite Element Method (May 16)<br />
8. Monte Carlo Method (May 23)<br />
9. Optimization (May 30)<br />
Project: one-month to finish.<br />
10. Case studies (Jun. 6 and Jun 13)<br />
IPT-5260, Spring 2006 – p.29/30
1. Two Homeworks (assigned), 70%<br />
Evaluation<br />
HW1, Ordinary Differential Equations<br />
HW2, Nonlinear Partial Differential Equations<br />
2. One Project (chosen one that is related to your research), 30%<br />
Two/Three-dimensional PDE<br />
Nonlinear/Coupled ODE/PDE<br />
Finite Element Method<br />
Monte Carlo Method<br />
Optimization<br />
· · ·<br />
other suggestions<br />
IPT-5260, Spring 2006 – p.30/30