# 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.

## 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: Eqn:3.1 Eqn:3.2

Where, S is the diagonal tensor:

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

and Eqn:3.3 Eqn:3.4 Eqn:3.5

For the 2-D case: 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: Eqn:3.6 Eqn:3.7

Then Equation 3.1 reduces to: Eqn:3.8 Eqn:3.9

and in the time domain: Eqn:3.10 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: Eqn:3.12

re-arranging terms: Eqn:3.13

and reduces to the simple: Eqn:3.14

Now to solve equation Equation 3.6: or Eqn:3.15

and from equations Equation 3.3, Equation 3.4 we get: Eqn:3.16

re-arranging terms: Eqn:3.17

and in the time domain… Eqn:3.18

Converting to numerical form: Eqn:3.19

re-arranging terms: Eqn:3.20

re-arranging terms again: Eqn:3.21

and finally we have all the equations necessary to solve for Ex: Eqn:3.22 Eqn:3.23 Eqn:3.24

where,     and, 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: Eqn:3.25

Then Equation 3.2 reduces to: Eqn:3.26

or Eqn:3.27

and in the time domain: Eqn:3.28

Which is solved as follows:

#### Solving for Hz

Solving equation Equation 3.28 numerically: Eqn:3.29

re-arranging terms: Eqn:3.30

re-arranging terms again: Eqn:3.31

Now to solve equation Equation 3.25: and from equations Equation 3.4 we get: Eqn:3.32

re-arranging terms: Eqn:3.33

and re-arranging terms again: Eqn:3.34

Converting to numerical form: Eqn:3.35

re-arranging terms: Eqn:3.36

re-arranging terms again: Eqn:3.37

and finally we have all the equations necessary to solve for Hz: Eqn:3.38 Eqn:3.39 Eqn:3.40

where,    and… 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