Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] }...

30
1/21/2020 1 Computational Science: Introduction to Finite-Difference Time-Domain Implementation of One-Dimensional FDTD Lecture Outline Review of Lecture 5 Sequence of Code Development FDTD Implementation Numerical boundary conditions Grid resolution Courant stability condition Perfect 1D boundary condition Sources Total number of iterations Revised FDTD Algorithm Slide 2

Transcript of Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] }...

Page 1: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

1

Computational Science:Introduction to Finite-Difference Time-Domain

Implementation ofOne-Dimensional FDTD

Lecture Outline

• Review of Lecture 5• Sequence of Code Development• FDTD Implementation

• Numerical boundary conditions• Grid resolution• Courant stability condition• Perfect 1D boundary condition• Sources• Total number of iterations• Revised FDTD Algorithm

Slide 2

Page 2: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

2

Slide 3

Review of Lecture #5

Representing Functions on a Grid

Slide 4

A grid is constructed by dividing space into discrete

cells

Example physical

(continuous) 2D function

Function is known only at discrete points

Representation of what is

actually stored in memory

Page 3: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

3

3D Grids

Slide 5

10, 10, 15x y zN N N

A three-dimensional grid looks like this:

A unit cell from the grid looks like this:

x y

z

Yee Cell for 1D, 2D, and 3D Grids

Slide 6

xy

z

xEyE

zE

xHyH

zH

3D Yee Grid2D Yee Grids1D Yee Grid

zE

xHyH

xy

xy

zHyE

xE

Ez Mode

Hz Mode

z

xE

yH

yExH

Ey Mode

Ex Mode

z

Benefits• Implicitly satisfies divergence equations• Naturally handles physical boundary

conditions• Elegant approximation of the curl equations

using finite-differences

Consequences• Field components are in physically different

locations• Field components may reside in different

materials even if they are in the same unit cell

• Field components will be out of phase

Page 4: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

4

Formulation of Update Equations (1 of 4)

Slide 7

0

0

H H

Normalize the magnetic field,

r r

0 0

H E

E Hc t c t

Assume linear, isotropic, and non-dispersive materials and expand the curl equations.

0

0

0

y xx xz

yy yx z

y x zz z

H EH

y z c t

EH H

z x c t

H H E

x y c t

0

0

0

y xx xz

yy yx z

y x zz z

E HE

y z c t

HE E

z x c t

E E H

x y c t

Formulation of Update Equations (2 of 4)

Slide 8

Finite-Difference Equation for Hx Finite-Difference Equation for Hy Finite-Difference Equation for Hz

Finite-Difference Equation for Ex Finite-Difference Equation for Ey Finite-Difference Equation for Ez

2 2

, , 1 , ,, 1, , ,

, , , ,, ,

0

t t

i j k i j ki j k i j k

t t t t

i j k i j ki

xj k

t t

z

xxx

y yz

H H

E E

y z

c t

E E

2 2

, , 1 , , 1, , , ,

, , , ,, ,

0

t t

i j k i j k i j k i j k

t t t t

i j k i j ki j

x x z z

y yk

ty yt

z x

E

c

H

E

H

t

E E

2 2

1, , , , , 1, , ,

, , , ,, ,

0

t t

i j k i j k i j k i j k

t t t t

i j k i j ki

y y x x

zj k

t tzzz

x y

c

E E E

H

t

E

H

2 2 2 2

, , , 1, , , , , 1

, , , ,, ,

0

t t t t

i j k i j k i j k i j k

t t t t

i j k i j ki j k

xx tx

z

t

z y

x t

y

y z

E E

H H

c

H

t

H

2 2 2 2

, , , , 1 , , 1, ,

, , , ,, ,

0

t t t t

i j k i j k i j k i j k

t t t t

i j k i j ki j k

yy ty

x

t

x z

y t

z

z x

E E

H H

c

H

t

H

2 2 2 2

, , 1, , , , , 1,

, , , ,, ,

0

t t t t

i j k i j k i j k i j k

t t t t

i j k

y y x

i j ki j k

zz t t tz

x

z

H H H H

x y

E E

c t

Page 5: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

5

Formulation of Update Equations (3 of 4)

Slide 9

Let the problem be uniform in the x and y directions.

0x y

Maxwell’s equations separates into two sets of equations.

0

0

0

0

yy yx

y xx x

y xx x

yy yx

HE

z c t

H E

z c t

E H

z c t

EH

z c t

2 2

2 2

2 2

2 2

1

0

0

1

0

1

1

0

t t

t t

t t

t t

k ky y

k ky

k kx x

k kx x

k ky

kt tyyt t

kt t xx t t t

kt t yy t t t

kt tt t x

y

k kx x

k k

y

k

xy y xk

x

z c t

z c t

z c t

z c

E E

E

H H

t

E

E E

E E

H H

H H

H H

Formulation of Update Equations (4 of 4)

Slide 10

Derive update equations by solving the finite-difference equations for the future time value.

2 2

2 2

1

1

t t

t t

k ky y

k k

k kx x

k k

k t tHxt t

t tkEyy yt t

x

t

x

H mz

m

E E

E

H

H HE

z

0

0

kEy k

yy

kHx k

xx

c tm

c tm

Arrive at the following FDTD algorithm.0 0 k k

Ey Hxk kyy xx

c t c tm m

2 2

1

t t

k t tHx

k k

kx tx

y

t

yk mHE

HE

z

2 2

1t tt tk

Eyt t t

kx

k ky y

kx

E mEH

z

H

Loop over z

Loop over z

Includes:• Basic FDTD engine

Excludes:• Dirichlet BC’s• Calculate source parameters• Simple soft source• Perfectly absorbing BC’s• TF/SF source• Fourier transforms• Reflectance/Transmittance• Calculate grid parameters• Incorporate device

Page 6: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

6

Slide 11

Sequence of Code Development

Step 1 – Basic FDTD Algorithm

Slide 12

• Basic update equations

Page 7: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

7

Step 2 – Add Simple Soft Source

Slide 13

• Basic update equations• Add a soft source

Step 3 – Add Absorbing Boundary

Slide 14

• Basic update equations• Add a soft source• Add perfect boundary

condition

Page 8: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

8

Step 4 – Add TF/SF

Slide 15

• Basic update equations• Add a soft source• Add perfect boundary

condition• Incorporate TF/SF “one-

way” source

Step 5 – Move Source & Add T/R

Slide 16

• Basic update equations• Add a soft source• Add perfect boundary

condition• Incorporate TF/SF “one-

way” source• Move position of source• Calculate transmittance

and reflectance

Page 9: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

9

Step 6 – Add Device (Complete Algorithm)

Slide 17

• Basic update equations• Add a soft source• Add perfect boundary

condition• Incorporate TF/SF “one-

way” source• Move position of source• Calculate transmittance

and reflectance• Add a real device

Summary of Code Development Sequence

Slide 18

Step 1 – Implement basic FDTD algorithm Step 2 – Add the source

Step 3 – Add absorbing boundary Step 4 – Add “one-way” source

Step 5 – Calculate transmittance and reflectance

Step 6 – Add a device

Page 10: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

10

Slide 19

NumericalBoundary Conditions

A Problem at the Boundary of the Grid

Slide 20

2 2

1

t t

k t tHx

k k

kx tx

y

t

yk mHE

HE

z

The update equation must be implemented for every point in the grid.

1

What do we do at ?

does not exist.zNy

z

E

k N

2 2

1t tt tk

Eyt t t

kx

k ky y

kx

E mEH

z

H

0

What do we do at 1?

does not exist.xH

k

Page 11: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

11

Dirichlet Boundary Condition

Slide 21

2

2

2

1

0 z

z

t

t

z

t

k t tHx zt

t

N tHx zt

k ky y

Ny

kx

kx

Nx

m k

E

Nz

m k Nz

H

E

H

EH

2

2 2

1

1

1

1 1

0

1

t

t t

t

Eyt

t t

t tk

y

ky

ky

x

k kx x

Eyt

E

E

m kz

m kz

H

H HE

One easy thing to do is assume the fields outside the grid are zero. This is called a Dirichletboundary condition.

To incorporate the Dirichlet boundary condition, modify the update equations as follows.

Equations MATLAB Code

Slide 22

2 2

2 2

1

0

t t

z z z z

t t

k k k k kx x Hx y y zt tt t

N N N Nx x Hx y ztt t

H H m E E k N

H H m E k N

1 1 1 1

2

1

2 2

1

1

0ty y Ey xt t t t

k k k k kt ty y Ey x xt t t t t

E E m H k

E E m H H k

Update Equations%% MAIN FDTD LOOP%for T = 1 : STEPS

% Update H from E (Dirichlet Boundary Conditions)for nz = 1 : Nz-1

Hx(nz) = Hx(nz) + mHx(nz)*(Ey(nz+1) - Ey(nz))/dz;endHx(Nz) = Hx(Nz) + mHx(Nz)*(0 - Ey(Nz))/dz;

% Update E from H (Dirichlet Boundary Conditions)Ey(1) = Ey(1) + mEy(1)*(Hx(1) – 0)/dz;for nz = 2 : Nz

Ey(nz) = Ey(nz) + mEy(nz)*(Hx(nz) - Hx(nz-1))/dz;end

end

DO NOT use ‘if’ statements to implement boundary conditions.

Page 12: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

12

Periodic Boundary Condition

Slide 23

2

2

2

1

1

t

t

z

t

z

z

k t tHx z

x

kx

kx

N t

k ky y

N

t

yt

N tHx zt

y

m k Nz

m k Nz

E EH

H

HEE

2 2

2 2

1

1

1

1 1

1t

z

t t

t

t t

ky

Ey

x

t

k

y

t t

t tk

Nx

k

y

x

x

k

Et

y

E

E

Hm k

z

E mH

H

Hk

z

Some devices are periodic along a particular direction. When this is the case, the field is also periodic.

To incorporate a periodic boundary condition, modifythe update equations as follows.

z periodic

periodic

Slide 24

Grid Resolution

Page 13: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

13

Consideration #1: Wavelength

Slide 25

The grid resolution must be sufficient to resolve the shortest wavelength.

Nl Comments

10 to 20 Low contrast dielectrics

20 to 30 High contrast dielectrics

40 to 60 Most metallic structures

100 to 200 Plasmonic devices

0min

max max

c

f nl nmax is the largest refractive index found

anywhere in the grid. fmax is the maximum frequency in your simulation.

First, determine the smallest wavelength:

min 10NNl l

l

l

Second, resolve the shortest wavelength with at least 10 cells.

1 point

Consideration #2: Mechanical Features

Slide 26

The grid resolution must be sufficient to resolve the smallest mechanical features of the device.

mind

Unit cell of a diamond lattice

1dN 4dN 1dN 1dN

mind

First, determine the smallest feature:

min 1d dd

dN

N

Second, resolve the smallest feature with at least 1 to 4 cells.

Page 14: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

14

Calculating the Initial Grid Resolution

Slide 27

Must resolve the minimum wavelength

min 10NNl l

l

l x

Must resolve the minimum structural dimension

min 1d dd

dN

N

Set the initial grid resolution to the smallest number computed above

min ,x y dl

y

Resolving Critical Dimensions (1 of 3)

Slide 28

We have not yet considered the actual dimensions of the device we wish to simulate.

This means we likely cannot resolve the exact dimensions of a device.

Not an exact fit.Cannot fill a fraction of a cell.

x

yd

Suppose we wish to place a device of length d onto a grid.

Page 15: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

15

Resolving Critical Dimensions (2 of 3)

Slide 29

To fix this, first calculate how many cells N are needed to resolve the most important dimension. In this case, let this be d.

x

yd

x

dN

10.5 cellsN

Second, we determine how many cells we wish to exactly resolve d. We do this by rounding N up to the nearest integer.

ceilx

dN

11 cellsN

Resolving Critical Dimensions (3 of 3)

Slide 30

Third, adjust the value of x to represent the dimension d exactly.

x

yd

x

d

N

11 cellsN

Call this step “snapping” the grid to a critical dimension.

Unfortunately, using a uniform grid, this can only be done for one critical dimension per axis.

Page 16: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

16

“Snap” Grid to Critical Dimensions

Slide 31

Decide what dimensions along each axis are critical

Compute how many grid cells comprise dx and dy and round UP

ceil

ceil

x x x

y y y

M d

M d

Typically this is a lattice constant or grating period along x Typically this is a layer thickness along y

and x yd d

initi

al g

rid

critical dimension

Adjust grid resolution to fit these dimensions in grid EXACTLY

x x x

y y y

d M

d M

adju

sted

grid

critical dimension

decr

ease

Slide 32

Courant Stability Condition

Page 17: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

17

Numerical Propagation Through Grid

Slide 33

During a single iteration, a disturbance in the electric field at one point can only be felt by the immediately adjacent magnetic fields. It takes at least two time steps before that disturbance is felt by an adjacent electric field. This is simply due to how the update equations are implemented during a single iteration.

z

Physical Propagation Through Space

Slide 34

Electromagnetic waves in vacuum propagate at the speed of light. Inside a material, they propagate at a reduced speed.

z

00 299792458 m s refractive index

cv c n

n

Page 18: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

18

A Limit on t

Slide 35

zNumerical distance covered in one time step:

Physical distance covered in one time step: 0c t n

Over a time duration of one time step t, an electromagnetic disturbance will travel:

Because of the numerical algorithm, it is not possible for a disturbance to travel farther than one unit cell in a single time step.

We need to make sure that a physical wave would not propagate farther than a single unit cell in one time step.

0c tz

n

This places an upper limit on the time step.

0

n zt

c

n should be set to the smallest refractive index found anywhere in the

grid. Usually this is just made to be 1.0 and dropped from the equation.

The Courant Stability Condition

Slide 36

Refractive index is greater than or equal to one, so our condition on t can be written more simply as:

0

zt

c

For 2D or 3D grids, the condition can be generalized as

0 2 2 2

1

1 1 1t

cx y z

The Courant stability condition

Sort of a worst case.n=1 produces the fastest possible physical wave.

Page 19: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

19

Practical Implementation of the Stability Condition

Slide 37

The stability condition will be most restrictive along the shortest dimension of the grid unit cell.

min min , ,x y z

This can be generalized to account for special cases.

min min

02

nt

c

1. Your grid is filled with dielectric and travels slower everywhere.2. Your model includes dispersive materials with refractive index less than one.

A good equation to ensure stability and accuracy on any grid is then

min

02t

c

Note: A factor of 0.5 was included here as a safety margin.

Time Step for Our 1D Grid

Slide 38

bc

02

n zt

c

nbc = refractive index at the grid boundaries.

This means a wave will travel the distance of one grid cell in exactly two time steps.

It is a necessary condition for the perfect boundary condition we will soon implement.

This implies that we cannot have different materials at the two boundaries using this boundary condition.

Page 20: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

20

Slide 39

Perfect 1D Boundary Condition

z

The Problem

Slide 40

The finite-difference equation here requires knowledge of the electric field outside of the grid.

2 2

1z

t t

z

z

z k t tHxt

N Nx x

Ny y

t

NE EH

zH m

Page 21: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

21

Implementing the Perfect Boundary Condition

Slide 41

Then…

1

2

z z

t t t

N Ny yE E

2 time steps later

z

If and only if…

• the field is only travelling outward at the boundaries,• the materials at the boundaries are linear, homogeneous, isotropic and

non-dispersive,• The refractive index at both boundaries is nbc,• t = nbcz/(2c0) exactly.

Visualizing the Perfect Boundary Condition

Slide 42

8

n

xE2

7

n

xE

Page 22: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

22

Summary of the 1D Perfect Boundary Condition

Slide 43

Conditions• Waves at the boundaries are only travelling outward,• Materials at the boundaries are linear, homogeneous, isotropic and non-dispersive,• The refractive index is the same at both boundaries and is nbc,• Time step is chosen so physical waves travel 1 cell in exactly two time stepst = nbcz/(2c0).

Implementation at z-Low BoundaryAt the z-low boundary, we need only modify the E-field update equation.

2

1

1 12 1

12

1

ttkEyt t ty

x

x y

hh

HE Eh

zHh m

Implementation at z-High BoundaryAt the z-high boundary, we need only modify the H-field update equation.

2 2

2

2 1 1 z

z

z

t

z

t

N N tx

k

NyN

xty Ht x

ee

EE He e m

zH

Slide 44

Sources

Page 23: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

23

The Gaussian Pulse

Slide 45

Typically short pulses are used as sources in FDTD. This approximates an impulse function so that a broad range of frequencies can be simulated at the same time in the same simulation.

1 e

0t 0t 0t

2

0expt t

g t

Frequency Content of Gaussian Pulse

Slide 46

The Fourier transform of a Gaussian pulse is another Gaussian function.

2 2

2 2maxmax

1exp G exp

t fg t f

ff

max

1f

The frequency content of the Gaussian pulse extends from DC up to above fmax. The frequency fmax is actually the 1/epoint of the frequency spectrum.

maxf

max

1 1

e f

max

1

f

Frequency

G f

0

Page 24: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

24

Designing the Pulse Source (1 of 2)

Slide 47

Step 1: Determine the maximum frequency of interest in your simulation.

maxf

Step 2: Compute the pulse duration to have sufficient energy at fmax.

maxmax

1 1 f

f

max

0.5

f

Step 3: You may need to reduce your time step. Your Gaussian pulse should be resolved by at least 10 to 20 time steps.

t

tN

Typically, you determine a first t based on the Courant stability

condition, then determine a second t based on resolving the maximum frequency, and finally go with the smallest value of the two t’s.

All of this should be satisfied automatically if t = nz/(2c0).10tN

Designing the Pulse Source (2 of 2)

Slide 48

Step 4: Compute the delay time t0

0 3t The pulse source must start at zero and gradually increase. NO STEP FUNCTIONS!!

WRONG!!The step function at the beginning will induce very large field gradients.0 0t

t

STILL WRONG!!While better, this source still starts with a step function that will produce large field gradients.

0t

t

CORRECT!!This source “eases” into the Gaussian source.

0 6t

t

Page 25: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

25

Visualizing the Arrays

49

z Usually several hundred points.

Ey, Hx, ER, UR, mEy, and mHx are stored in arrays of length Nz.

tUsually several

thousand time steps.

gE is stored in an array of length STEPS.

Two Ways to Incorporate a Simple Source

Slide 50

Source #1: Simple Hard SourceThe simple hard source is the easiest to implement. After updating the field across the entire grid, one field component at one point on the grid is overwritten with the source. This approach injects power into the model, but the source point behaves like a perfect electric conductor or perfect magnetic conductor and will scatter waves.

2

and/or t H Ek kt tt yx

kk g EH g OVERWRITE

Not usually a practical source.We won’t use it in this course.

Source #2: Simple Soft SourceThe simple soft source is better than the hard source because it is transparent to scattered waves passing through it. After updating the field across the entire grid, the source function is added to one field component at one point on the grid. This approach injects power into the model in both directions. It is great for testing boundary conditions.

2 2

and/or t t

k kx x H Ek kt t

ky t tt

kyt

H H E gEg

ADD TORarely used.Use this until we learn TF/SF.

Page 26: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

26

Movie of Source #1 – Simple Hard Source

51

Movie of Source #2 – Simple Soft Source

52

Page 27: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

27

Movie of Source #3 – TF/SF Soft Source

53

Slide 54

Total Number of Iterations

Page 28: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

28

Considerations for Estimating the Total Number of Iterations

55

The total number of iterations depends heavily on the device being modeled and what properties of it are being calculated.

Device Considerations1. Highly resonant devices typically require more iterations.2. Purely scattering devices typically require very few iterations.3. More iterations are needed the more times the waves bounce around in the grid.

Information Considerations1. Calculating abrupt spectral shapes requires many iterations.2. Calculating fine frequency resolution requires many iterations.3. Calculating only the approximate position of resonances often requires fewer iterations.

Great for hunting resonances!

A Rule of Thumb

Slide 56

How long does it take a wave to propagate across the grid (worst case)?

maxprop

0

distancetime

velocityzn N z

tc

Simulation time T must include the entire pulse of duration .12T

Simulation time should allow for 5 bounces.

prop5T t

A rule-of-thumb for total simulation time is then

prop12 5T t Note: For highly resonant devices, this will NOT be enough time!

Given the time step t, the total number of iterations is then

STEPS roundT

t

This must be an integer quantity.

Page 29: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

29

Slide 57

Revised FDTD Algorithm

Revised FDTD Algorithm

Slide 58

Finished!

Compute Grid Resolution

2 2

2 2

1

2

t t

z z z z

t t

k k k k kx x Hx y y zt tt t

N N N Nx x Hx y ztt t

H H m E E z k N

H H m E z k Ne

min minmin ,

round

d

c

c

dz

N N

N d z

z d N

l

l

Update H from E

no

Compute Time Step bc 02t n z c

Compute Source

max 0

2

0

0.5 5

exp

f t

t tg t

Compute Update Coeff’s0 0 k k

Ey Hxk kyy xx

c t c tm m

Initialize Fields0k k

y xE H

1 1 1 1

2

2 2

2

1

1

1

ty y Ey xt t t t

k k k k kt ty y E y x xt t t t t

E E m H z k

E E m H H z k

h

Update E from H

src srck ky y tt t t

E E g

Inject Source

Visualize fields

Done?yes

2

12 1 1,

tx th h h H

Record H-Field Boundary Term

2 1 1, Nzy t

e e e E Record E-Field Boundary Term

z

z

Loop

ove

r tim

e

t

Build DeviceERyy and URxx

Initialize Boundary Terms2 1 2 1 0h h e e

Includes:• Basic FDTD engine• Dirichlet BC’s• Calculate source parameters• Simple soft source• Perfectly absorbing BC’s

Excludes:• TF/SF source• Fourier transforms• Reflectance/transmittance• Calculate grid parameters• Incorporate device

Page 30: Lecture -- Implementation of 1D FDTD · 2020. 1. 22. · í l î í l î ì î ì ð & } u µ o ] } v } ( h µ ] } v ~ í } ( ð ^ o ] ó + + P H U U G G E } u o ] Ì Z u P v ] (

1/21/2020

30

Equations MATLAB Code

Slide 59

min minmin ,

round

d

c

c

dz

N N

N d z

z d N

l

l

Grid Resolution% COMPUTE DEFAULT GRID RESOLUTIONdz1 = min(LAMBDA)/nmax/NRES;dz2 = dmin/NDRES;dz = min(dz1,dz2);

% SNAP GRID TO CRITIAL DIMENSIONSN = ceil(dc/dz);dz = dc/N;

2 2

2 22

1

t t

z z z z

t t

z

k k k k kx x Hx y y zt tt t

N N N Nx x H

Nyx yt ztt t t

H H m E E k N

H H m E kE N

1

2 2

1 1 1 1

22

1

2

1

1t

k k k k kt ty y Ey x xt t t t t

ty y Ey xt t x tt tt

E E m H H k

E H kHE m

Update Equations

%% MAIN FDTD LOOP%for T = 1 : STEPS

% Update H from E (Perfect Boundary Conditions)H2=H1; H1=Hx(1);for nz = 1 : Nz-1

Hx(nz) = Hx(nz) + mHx(nz)*(Ey(nz+1) - Ey(nz))/dz;end Hx(Nz) = Hx(Nz) + mHx(Nz)*(E2 - Ey(Nz))/dz;

% Update E from H (Perfect Boundary Conditions)E2=E1; E1=Ey(Nz);Ey(1) = Ey(1) + mEy(1)*(Hx(1) – H2)/dz;for nz = 2 : Nz

Ey(nz) = Ey(nz) + mEy(nz)*(Hx(nz) - Hx(nz-1))/dz;end

% Inject Soft SourceEy(nzsrc) = Ey(nzsrc) + g(T);

end

src srck ky y tt t t

E E g