FDTD 2-D UPML Theory

For the actual “theory” of the UPML see Taflove2005 pp. 285-302. The following are the equations for the 2-D implementation of the UPML ABC.

Contents

Introduction

The equations for the 2-D UPML are adapted from Taflove2005 pages 285-302. Also from Sullivan2000 and Gedney1996: “An Anisotrophic PML Absorbing Media for the FDTD Simulation of Fields in Lossy and Dispersive Media” Electromagnetics, vol. 16 pp. 399-415, July/August 1996

UPML ABC Theory

Starting from (Taflove2005 page 289), the Maxwell’s curl equations in time harmonic form:

Where, S is the diagonal tensor:

[ sy sz / sx      0                0    ]
[     0        sx sz / sy          0    ]
[     0           0          sx sy / sz ]

and

731660ab249a1b4af94ca64744e81944.png Eqn:3.5

For the 2-D case:

982d6e6278707411d12aa825d1c2f03c.png

and the tensor S reduces to…

[ sy / sx       0            0   ]
[   0        sx / sy         0   ]
[   0           0          sx sy ]

2-D UPML for the Electric Field

In order to solve equation Equation 3.1 without involving
a convolution define the following relationships:

3edbb50ce82982a08e849ca67347ca96.png Eqn:3.7

Then Equation 3.1 reduces to:

af64aaed4db64a306703da79efa30e26.png Eqn:3.8
dfe39faddea078d592eb08d6f41718c1.png Eqn:3.9

and in the time domain:

48a98d24428b21ab923a52829e0dd256.png Eqn:3.11

Which is easily solved.

Note: The Numerical notation used in the equations is as follows:

E_x(i,j,n+1) is E_x at point x=i, y=j at timestep n+1

E_x(i,j-1,n) is E_x at point x=i, y=j-1 at timestep n

H_z(i, j-.5, n+.5) is H_z at point x=i, y=j-.5 at timestep n-.5
  (a 1/2 time-step, using the Yee "leap frogging" algorithm)

Solving for Ex (an example)

Solving equation Equation 3.10 numerically:

05ed306f958db6eeadb36a06d4100538.png Eqn:3.12

re-arranging terms:

da73a3041881b6c4f4efa2835a6b9c42.png Eqn:3.13

and reduces to the simple:

0863d2c91191e9df37add49cf1b8f0f9.png Eqn:3.14

Now to solve equation Equation 3.6:

8cab5c0f4063e85cdd8146f85d109b29.png

or

926e9eba8ecba43529f2065f81c019c9.png Eqn:3.15

and from equations Equation 3.3, Equation 3.4 we get:

237e2d1b468c675275d84dfe89998bbb.png Eqn:3.16

re-arranging terms:

e0a1e989ddd4ffdfc34d8becacdae760.png Eqn:3.17

and in the time domain…

9daa7dfab5b450bafdc3b1f757da44e7.png Eqn:3.18

Converting to numerical form:

49cd410910f8a965d460f3f0f45c1f6a.png Eqn:3.19

re-arranging terms:

5937da5ed3a88d9892ea571b25bafdac.png Eqn:3.20

re-arranging terms again:

96efe31204f1573a673e151ea88b1331.png Eqn:3.21

and finally we have all the equations necessary to solve for Ex:

eec07bb5adadbd5344267beec9df7241.png Eqn:3.22
72c83cd4e7a9152337900e18c0a8f8ec.png Eqn:3.23
91dae3a031b5d97937cd09825d977014.png Eqn:3.24

where,

b766ec7c7b9649bd821ac88cab30cce9.png
82596f91a5394386b36000cc42375bf3.png
c4be40677cc42a6101e69fcd03bc232f.png
6c436dc7d6940d4b2fb7f8d435018620.png
70288250923c18eb552574dbf633fb95.png

and,

f9211f11ac30a559ea5bc3822da4d3f7.png

It’s important to note how c2x and c3x vary with ‘y’ and c4x and c5x vary with ‘x’.

c2x and c3x are used with Ex parallel to the UPML boundary, and
c4x and c5x are used with Ex perpendicular to the UPML boundary.

2-D UPML for the Magnetic Field

In order to solve equation Equation 3.2 without involving
a convolution define the following relationship:

Then Equation 3.2 reduces to:

5454e26a3f121761b6dfe54eee7d730b.png Eqn:3.26

or

ea1f580005245f2e3ad6494fd3f21208.png Eqn:3.27

and in the time domain:

Which is solved as follows:

Solving for Hz

Solving equation Equation 3.28 numerically:

8ee00747190d1ffd7af78d9c189fd5bd.png Eqn:3.29

re-arranging terms:

c5b134abba9c6298f05837e5d78b450b.png Eqn:3.30

re-arranging terms again:

806328fab64fc1ba5ac69bdcf9622652.png Eqn:3.31

Now to solve equation Equation 3.25:

5e2bcbe071d712fa8939633665702e62.png

and from equations Equation 3.4 we get:

a00b262585272d13ce26c4f70e04706b.png Eqn:3.32

re-arranging terms:

83c3daaf95f93a49ddf6e1b26e810659.png Eqn:3.33

and re-arranging terms again:

667c7876b868300532ed38e4c60834ac.png Eqn:3.34

Converting to numerical form:

f6faf03b522f00383511a1e441bcdb12.png Eqn:3.35

re-arranging terms:

ce4fa1510158021cdc7dc90d81f15fef.png Eqn:3.36

re-arranging terms again:

238a09e43db5786e61547354777547d9.png Eqn:3.37

and finally we have all the equations necessary to solve for Hz:

0249afb4717e1c3b06420471806622a1.png Eqn:3.38
84f0a1fc5bbf97cff8d9530db0b41cbe.png Eqn:3.39
60abd61450e7f4c6c2e2d2e457ab29f5.png Eqn:3.40

where,

2573bc6c7ff60fd1452c09babe597729.png
c6d27ae7eeae270d6b3756c28de6a10a.png
8125fa5f98f9ec752874be75907c745c.png
e5b6594e7c1ef31cded5cc6d7e9de472.png

and…

f9211f11ac30a559ea5bc3822da4d3f7.png

It’s important to note how d1z and d2z vary with ‘x’ and d3z and d4z vary with ‘y’.

FDTD Source Code and Results

See the UPML C source code for more implementation details (In particular, the generation of the PML gradient):

  • Yee2d.c .c file (FDTD code)
  • Results (Display Hz vs time) Note: Displays Hz in main grid and pml

See Also

Personal tools
Toolbox