Computational Methods for Optoelectronics

Computational Methods for Optoelectronics Computational Methods for Optoelectronics

mx.nthu.edu.tw
from mx.nthu.edu.tw More from this publisher
22.07.2013 Views

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

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!