+ All Categories
Home > Documents > Computation Improvement of the FDTD for EM Radation Somlation

Computation Improvement of the FDTD for EM Radation Somlation

Date post: 22-Dec-2015
Category:
Upload: saaedkhalid
View: 6 times
Download: 2 times
Share this document with a friend
Description:
Computation Improvement of the FDTD for EM Radation Somlation
38
Computation Improvement of the Finite Difference Time Domain Method for Electromagnetic Radiation Simulation A Report Submitted in Partial Fulfillment of the Requirements for SYDE 750-7 Andrew D. Wiles, 96016017, MASc Candidate Faculty of Engineering Department of Systems Design Engineering Course Instructor: Professor G. J. Savage August 16, 2004
Transcript
Page 1: Computation Improvement of the FDTD for EM Radation Somlation

Computation Improvement of the Finite Difference

Time Domain Method for Electromagnetic

Radiation Simulation

A Report Submitted in Partial Fulfillment

of the Requirements for SYDE 750-7

Andrew D. Wiles, 96016017, MASc Candidate

Faculty of Engineering

Department of Systems Design Engineering

Course Instructor: Professor G. J. Savage

August 16, 2004

Page 2: Computation Improvement of the FDTD for EM Radation Somlation

Abstract

An implementation of the finite-difference time-domain method using the alternate-

direction implicit method in order to solve Maxwell’s equations for electromagnetic

radiation is tested. As a baseline, the traditional finite-difference time-domain method

is first run and the new algorithm is compared against it. Unfortunately, the so called

computation reduced method was not found to be successful in reducing the number

of computations.

Results of the simulation for a z-directed line source radiator showed that the

alternate-direction implicit method worsened the computation time for several dif-

ferent model configurations. It also provided results that were significantly different

than the traditional methods including a phase shift in the measured signals and an

additional attenuation of the signal. Further, it was observed that an appropriate

set of absorbing boundary conditions would be useful in maintaining stability and

providing useful results.

i

Page 3: Computation Improvement of the FDTD for EM Radation Somlation

Contents

1 Introduction 1

2 Finite-Difference Time-Domain Modelling Method 3

2.1 Traditional Yee Method . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 FDTD-ADI Method . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 Other Computation Improvement Methods . . . . . . . . . . . . . . . 8

3 Experimental Results 9

3.1 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.1.1 Excitation Pulse . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.1.2 Spatial Configurations . . . . . . . . . . . . . . . . . . . . . . 10

3.1.3 Time Steps for the FDTD-ADI . . . . . . . . . . . . . . . . . 10

3.2 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Conclusions 15

A Matlab Simulation Code 16

A.1 FDTD Code using Yee’s Method . . . . . . . . . . . . . . . . . . . . 16

A.2 FDTD-ADI Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

A.3 Tridiagonal System of Equations Solver . . . . . . . . . . . . . . . . . 32

ii

Page 4: Computation Improvement of the FDTD for EM Radation Somlation

Chapter 1

Introduction

There are many applications for the modelling of antennas and other radiating ojects

such as communications, position measurement techniques and electromagnetic in-

terference simulation [1]. Clearly, Maxwell’s equations are the starting point when

simulating most electromagnetic systems, but they quickly become impossible to use

in an analytical form [2]. Therefore, numerical techniques have become very im-

portant in generating solutions to Maxwell’s equations in an accurate and efficient

manner.

The finite-difference time-domain method (FDTD) is one of the more popular

simulation methods in that it is simple and fairly easy to implement [3]. However, as

with all systems that contain a spatio-temporal set of equations to be solved, the level

of computation becomes excessive and onerous. For example, the simulation that is

completed in this report using the FDTD method takes 12.7 seconds to compute the

transverse magnetic components of an electric field for an area that is approximately

45cm by 45cm for a period of one nanosecond. Considering that most communication

systems span 10s of kilometers and that large pieces of information is being contin-

uously encoded onto carrier signals, the FDTD method can become impossible to

compute or provide an accurate solution. Therefore, more efficient algorithms and

simpler representations are required to make the simulation of the electromagnetic

radiation feasible to perform.

In this report, a reformulation of the FDTD method is investigated. Specifically,

the FDTD is solved using the alternate-direction implicit method (ADI). The FDTD-

ADI reconfigures the problem so that each time step has two sub-iterations where,

1

Page 5: Computation Improvement of the FDTD for EM Radation Somlation

for the transverse magnetic case, the electric field is implicitly related to the magnetic

fields perpendicular to the electric field. Unfortunately, the implementation shown

here did not have the success of the previous researchers [4, 5]. In fact, the new

method was found to be worse due to the need to solve a large linear system for each

row and column in each time step. However, the remainder of the problem had very

little overhead, so if the time to compute the linear system could be reduced then the

algorithm would be much more efficient.

In this report, Chapter 2 describes the traditional FDTD method first presented by

Yee [6] followed by the ADI method which was expected to improve the computation

time. Chapter 3 provides a description of the actual results had with these methods

while Chapter 4 provides some concluding remarks.

2

Page 6: Computation Improvement of the FDTD for EM Radation Somlation

Chapter 2

Finite-Difference Time-Domain

Modelling Method

The Finite-Difference Time-Domain (FDTD) method was developed by Yee in 1966 to

solve electromagnetic problems from Maxwell’s equations using a numerical method[6].

The algorithm steps through discretized space and time to solve for the electric and

magnetic fields generated by a scatterer under the influence of incoming EM waves

or from a radiating source that may exist in the region of interest. Originally for

an isotropic medium, the algorithm has been improved to handle an assortment of

materials including conductive ones [3].

2.1 Traditional Yee Method

Beginning from the continuous form of Maxwell’s equations [6, 2],

∂B

∂t+ ∇× E = 0, (2.1)

∂D

∂t−∇× H = J, (2.2)

B = µH, (2.3)

D = εE, (2.4)

where B is the magnetic flux density, E is the electric field intensity, D is the

3

Page 7: Computation Improvement of the FDTD for EM Radation Somlation

electric flux density, H is the magnetic field intensity and ε is the electric permittivity

and µ is the magnetic permeability.

The FDTD method has been developed for one-dimensional, two-dimensional and

three-dimensional forms, but for simplicity here, the two-dimensional problem for the

transverse magnetic case will be discussed as found in Yee[6]. The finite difference

equations for the transverse magnetic case are

En+1z (i, j) = En

z (i, j)

+∆t

ε0∆x

[H

n+12

y (i + 12, j) − H

n+12

y (i − 12, j)

]

− ∆t

ε0∆y

[H

n+12

x (i, j + 12) − H

n+12

x (i, j − 12)

], (2.5)

Hn+

12

y (i, j + 12) = H

n−12

y (i, j + 12) − ∆t

ε0∆y[En

z (i, j + 1) − Enz (i, j)] , (2.6)

Hn+

12

x (i + 12, j) = H

n−12

y (i + 12, j) − ∆t

ε0∆x[En

z (i + 1, j) − Enz (i, j)] , (2.7)

where n denotes the time step for time point n∆t and (i, j) represent the dis-

cretized spatial positions for position (i∆x, j∆y). The “half-steps” are used to up-

date the overlapping electric and magnetic fields. That is, the magnetic fields are

updated on the 12

time and space steps while the electric fields are updated on the

full time and space steps. Useful diagrams for both the two-dimensional case and the

three-dimensional case are given in Sullivan [3]. To solve for the electric and magnetic

fields, the algorithm steps through each time and spatial step updating the equations

as shown in appendix A.1.

The FDTD method as presented by Yee has a weakness at the boundaries of

the simulation region because without any boundary conditions outgoing waves will

reflect at the boundary and continue to propagate throughout the region instead of

continuing outwards. Several methods have been investigated to absorb the outgoing

waves but the most popular and robust is clearly Berenger’s perfectly matched layers

for absorbing boundary conditions[7]. Berenger’s PML method uses the permeability

4

Page 8: Computation Improvement of the FDTD for EM Radation Somlation

and permittivity properties together to cause propagating waves to cancel at the

edges. Further discussion is beyond the scope of this report since it was not actually

used in the simulations.

Prior to starting the algorithm the size of the spatial steps and the time steps must

be determined. For stability and accuracy, the spatial step size must be significantly

smaller than the largest wavelength being modelled. Typically, the ratio is 10-20

times smaller than the largest wavelength, i.e. ∆d < λmax/10 [6, 3, 5] where ∆d is

the cell dimension for a given axis. In general, the cell size can be specified differently

for each axis but for simplicity here the cell size has been set to the same size in both

axes.

The conditions surrounding ∆t are much more stringent where the size of the time

step is dependent on the dimension of the problem. For a simulation in free space ∆t

is governed by the Courant condition,

∆t ≤ ∆d√nd · c0

, (2.8)

where nd is the dimension of the problem, i.e. 2 for the two-dimensional transverse

magnetic case that was presented above and c0 is the speed of light.

The size of the problem space in association with the sizes of the time step and

spatial steps is what causes the FDTD to become computationally challenging. Since

the time step is inversely proportional to the speed of light then the time steps

are typically in the nano- or picosecond range. A simulation that spans over a ten

second period becomes onerous at best. With this in mind, this report compares

the traditional method with the FDTD-ADI, discussed in section 2.2, in regards to

accuracy and improving the amount of computation. The simulation code for the

tradiational Yee method can be found in appendix A.1.

2.2 FDTD-ADI Method

The Alternating-Direction Implicit (ADI) method was first introduced to assist in

solving partial differential equations [8] hence being an appropriate choice of method

here. In general the ADI method has not become prevalent as it has been superceded

by other methods such as the multigrid method, also presented in Press [8].

5

Page 9: Computation Improvement of the FDTD for EM Radation Somlation

However, the ADI method has become useful in improving the computation time

of the FDTD as first published in 1999 by Namiki [4] and Zheng et al. [5]. Namiki

had published a two-dimensional method while Zheng et al. began with a three-

dimensional model. In 2000, Namiki published his three-dimensional solution [9] and

then, in association with one of his colleagues, Namiki published his error analysis

of the two-dimensional method one month later [10]. In 2002, Zhao published two

important tips for the implementation of the FDTD-ADI method [11] and Wang et

al. explained how to implement Berenger’s PML absorbing boundary condition when

using the FDTD-ADI method [12].

The FDTD-ADI method is based on rewriting equations (2.5) - (2.7) into two

sub-iterations, also known as half-time steps, called the first and second procedure

respectively [4]. The transverse magnetic equations from [10] are shown below1.

First Procedure

Hn+

12

x (i, j + 12) = Hn

x (i, j + 12) − ∆t

2µ∆y[En

z (i, j + 1) − Enz (i, j)] (2.9)

Hn+

12

y (i + 12, j) = Hn

y (i + 12, j) − ∆t

2µ∆x

[E

n+12

z (i + 1, j) − En+

12

z (i, j)

](2.10)

En+

12

z (i, j) = Enz (i, j)

+∆t

2ε∆x

[H

n+12

y (i + 12, j) − H

n+12

y (i − 12, j)

]

− ∆t

2ε∆y

[Hn

x (i, j + 12) − Hn

x (i, j − 12)]

(2.11)

Second Procedure

Hn+1x (i, j + 1

2) = H

n+12

x (i, j + 12) − ∆t

2µ∆y

[En+1

z (i, j + 1) − En+1z (i, j)

](2.12)

Hn+1y (i + 1

2, j) = H

n+12

y (i + 12, j) − ∆t

2µ∆x

[E

n+12

z (i + 1, j) − En+

12

z (i, j)

](2.13)

1Note that this author has added a factor of 1/2 in the spatial derivative terms on the RHS. This

was omitted from the paper published by Namiki [10] but appears in his original work [4].

6

Page 10: Computation Improvement of the FDTD for EM Radation Somlation

En+1z (i, j) = E

n+12

z (i, j)

+∆t

2ε∆x

[H

n+12

y (i + 12, j) − H

n+12

y (i − 12, j)

]

− ∆t

2ε∆y

[Hn+1

x (i, j + 12) − Hn+1

x (i, j − 12)]

(2.14)

In this form, the equations cannot be solved directly but must be solved implicitly.

Therefore, in the first sub-iteration equation (2.10) is substituted into equation (2.11)

to eliminate the Hn+

12

y term so that En+

12

z can be found by equation (2.15). The Hn+

12

y

can then be solved directly by equation (2.10). Similarly in the second procedure,

equation (2.12) is substituted into (2.14) to eliminate Hn+1x term so that En+1

z can

be found by equation (2.19). Again, Hn+1x can be found from equation (2.12).

αEn+

12

z (i − 1, j) + βEn+

12

z (i, j) + γEn+

12

z (i + 1, j)

= Enz +

∆t

2ε∆x

[Hn

y (i + 12, j) − Hn

y (i − 12, j)

]

− ∆t

2ε∆x

[Hn

x (i, j + 12) − Hn

x (i, j − 12)]

(2.15)

where

α = − ∆t

2µ∆x· ∆t

2ε∆x(2.16)

γ = − ∆t

2µ∆x· ∆t

2ε∆x(2.17)

β =1 − α − γ. (2.18)

αEn+1z (i, j − 1) + βEn+1

z (i, j) + γEn+1z (i, j + 1)

= En+

12

z +∆t

2ε∆y

[H

n+12

y (i + 12, j) − H

n+12

y (i − 12, j)

]

− ∆t

2ε∆x

[H

n+12

x (i, j + 12) − H

n+12

x (i, j − 12)

](2.19)

7

Page 11: Computation Improvement of the FDTD for EM Radation Somlation

where

α = − ∆t

2µ∆y· ∆t

2ε∆y(2.20)

γ = − ∆t

2µ∆y· ∆t

2ε∆y(2.21)

β =1 − α − γ. (2.22)

Obviously, in both sub-iterations α, β and γ are identical if ∆x is set to the same

size of ∆y. Also, α and γ are equal here, however, Namiki [10] had taken non-uniform

material properties into account hence α and γ could be generalized to be a function

of the spatial indices i, j.

Equations (2.15) and (2.19) form a linear systems of equations for row i and

column j respectively. This linear system is of the form Ax = b and A has the form

of a tridiagonal matrix. There are several ways to solve this system but Zhao has

suggested a method that ensures stability [11] because the method suggested in Press

can become unstable [8]. See appendix A.3 for the code that implements the solver

suggested by Zhao.

This method was also implemented in Matlab and the code can be found in ap-

pendix A.2. However, Berenger’s PML absorbing conditions [7, 12] were not included

as it was found to be very complicated to implement.

2.3 Other Computation Improvement Methods

While the FDTD-ADI is one method that is being investigated to reduce computation

time by allowing the time step to be relaxed, multiresolution time domain schemes are

being used to relax the size of the spatial cell size, hence reducing the computation

across the spatial domain [13]. Although, this is an area of active research, the

FDTD-ADI method will be focused upon in this report.

8

Page 12: Computation Improvement of the FDTD for EM Radation Somlation

Chapter 3

Experimental Results

This section is separated into two sections where first the experiments that were

performed are described and then the results are presented and discussed. The ulti-

mate goal was to compare the results from the FDTD using Yee’s method with the

FDTD-ADI method for a variety of spatial sizes. There were no absorbing boundary

conditions implemented but the PML solution should be investigated in the future.

The simulations with the first method were performed with the code in appendix A.1

while the FDTD-ADI simulations were performed with the code in appendix A.2.

3.1 Experiments

3.1.1 Excitation Pulse

The system of interest is a z-directed line source in free space which radiates a signal

as the surface current in the line changes. Although the actual line source can be

modelled using a Thevinen or Norton equivalent it was decided to bypass this part

for now and simply apply a given signal applied to cell (ic, jc) as shown in equation

3.1. This is a “soft-source” excitation since the source is simply added to the field

rather than replacing the field at the source site. The period was set to T ≈ 5.0ps

and each simulation was computed for one nanosecond.

Enz (ic, jc) = En−1

z + sin(2π

Tn∆t) (3.1)

9

Page 13: Computation Improvement of the FDTD for EM Radation Somlation

The excitation pulse is applied at every time step in the simulation. However,

some care needs to be had in applying the excitation in the FDTD-ADI since there

are two sub-iterations for each time step. Zhao[11] suggests that one of two methods

can be used, (i) the full excitation pulse can be applied in the first procedure and

none in the second procedure or (ii) a fraction of the excitation pulse can be applied

in each procedure as long as the full signal is applied for the given time step. In this

work, neither version seemed to provide much difference in the results and so the first

method was chosen for simplicity, but future work would involve investigating this

further.

3.1.2 Spatial Configurations

The z-directed line source is considered to always be at the center of the simulation

region and that the Ez field is the value of interest. Therefore, the simulation region

has been discretized into squares of 3mm by 3mm. The cell size was held constant for

all simulations but the simulation region was varied from a 100 by 100 region of cells

to 300 by 300 simulation region. The full list is shown in the first column of table 3.2.

3.1.3 Time Steps for the FDTD-ADI

The main purpose of the FDTD-ADI method is to be able to increase the size of

the time step without the restrictions of the Courant condition in equation (2.8).

Therefore, the FDTD-ADI was tested with five different time steps that were a scaled

value of the time step in the standard FDTD as in follows.

∆tFDTDADI = θ∆tY ee (3.2)

In this report, results are presented for θ = 1, 2, 4, 5, 10 and the simulation was

run for one nanosecond in each case.

3.2 Results and Discussion

Figure 3.1 shows the typical output of the Yee FDTD simulation. The center of the

concentric circles contains the z-directed line source and the coloured rings represent

10

Page 14: Computation Improvement of the FDTD for EM Radation Somlation

Figure 3.1: Sample Ez Field at n=100. The colour plot shows the electric field for the

transverse magnetic problem using Yee’s Method for the 150 by 150 problem. The

maxima are in the blue region while the minima are in the red-yellow range.

maxima (blues) and minima (reds and yellow). A moving animation for each time

step will show the actual wave propagation as the results are being computed. The

moving animations were created for each case and they all showed similar behaviour

qualitatively.

The run times for the various simulation region sizes and their associated FDTD

simulation configuration is shown in table 3.2, while figure 3.2 contains the results

for 150 by 150 simulation region at six different locations throughout the region.

Unfortunately, the run times were not improved by the FDTD-ADI method. This

could be because of many things which need to be investigated further. First, the

simulation was run on a 2.8GHz Computer with a Pentium 4 processor with 1 gigabyte

11

Page 15: Computation Improvement of the FDTD for EM Radation Somlation

of RAM running the Windows XP Professional operating system. Unfortunately, the

Windows operating systems have a lot of hidden processes that were not turned off

during the running of the simulation and therefore may have caused a small inflation

in the run times recorded. Future simulations are likely better to be performed on a

Linux or Unix system where the priority level can be set explicitly.

However, the discrepancy between the two methods is still significant. So the

Matlab profiler was run for the FDTD-ADI method for the 150 by 150 case with

θ = 4. It was quite clear that a problem exists with the algorithm because the linear

solver for the tridiagonal matrix accounts for nearly 88% of the computation time in

the simulation. So clearly, a more efficient linear solver needs to be found to make

the FTDT-ADI useful. This result does seem unusual since the linear solver that was

implemented was provided by Zhao who had presented the alternative algorithm to

ensure stability and also claimed it to be efficient.

Further, the accuracy of the FDTD-ADI algorithm can be questioned using the

results presented in figure 3.2. At each of the locations in the volume the signal seems

to be shifted approximately π/4 radians (90o). Also, the FDTD-ADI method tends

to cause the system to decay faster as the amplitudes at 12mm are almost negligible

for the FDTD-ADI method while the signal for the Yee method is still quite strong.

Both issues may be due to how the simulation is excited as mentioned in section 3.1.1.

That is, perhaps the input signal is shifted in time depending on when the excitation

is applied within the FDTD-ADI sub-iterations.

Finally, it was observed that the FDTD-ADI algorithm did occasionally go unsta-

ble midway through the simulation at the simulation region boundaries. The unstable

behaviour would then propagate through the volume. It is expected that this could

be corrected if Berenger’s perfectly matched layers [7, 12] are used for the absorbing

boundary constraints.

12

Page 16: Computation Improvement of the FDTD for EM Radation Somlation

0 0.2 0.4 0.6 0.8 1

−10

0

10

Ez field at 3mm to the right of the source

Ez

0 0.2 0.4 0.6 0.8 1

−10

0

10

Ez field at 3mm to the above of the source

Ez

0 0.2 0.4 0.6 0.8 1

−10

0

10

Ez field at 6mm to the right of the source

Ez

0 0.2 0.4 0.6 0.8 1

−10

0

10

Ez field at 6mm to the above of the source

Ez

0 0.2 0.4 0.6 0.8 1

−10

0

10

Ez field at 12mm to the right of the source

Time (ns)

Ez

0 0.2 0.4 0.6 0.8 1

−10

0

10

Ez field at 12mm to the above of the source

Time (ns)

Ez

Figure 3.2: Sample results for six different locations relative to the excitation source.

The black solid curve is the result using the Yee simulation, the blue dashed curve

is the FDTD-ADI method with θ = 1 and the green dotted curve is result for the

FDTD-ADI method where θ = 2.

13

Page 17: Computation Improvement of the FDTD for EM Radation Somlation

Table 3.1: Run times in seconds for several configurations of the simulation are shown

here in the table. The no. of cells refers to the number of discretizations in one

direction (x or y). In the first case, 100 cells means that the simulation is solved for a

100 by 100 grid. The Yee times are the run times for each spatial configuration using

the traditional Yee method as discussed in section 2.1. The remaining columns are

run times for the FDTD-ADI method where θ refers to the ratio of the time step in

the Yee method relative to the actual time step used.

No. of cells Yee θ = 1 θ = 2 θ = 4 θ = 5 θ = 10

100 7.761 227.067 122.646 61.028 49.311 14.091

150 12.728 513.629 246.054 114.965 89.388 35.491

200 20.800 994.706 437.509 225.875 93.204 46.767

250 33.748 946.110 499.440 311.078 234.337 136.476

300 66.566 1949.964 1074.957 493.139 395.018 197.414

14

Page 18: Computation Improvement of the FDTD for EM Radation Somlation

Chapter 4

Conclusions

In this implementation of the FDTD method for electromagnetic simulation, the ADI

method does not reduce the computation time of the traditional FDTD method. In

fact, the solution time is increased significantly with most of the computation over-

head residing in the solution of the tridiagonal system of equations that needs to be

solved as a result of the reformulation for the ADI solution. Also, this implementa-

tion causes the phase of signal measured from the FDTD-ADI solution to shift by 90

degrees and is attenuated much faster. This is potentially caused by the way that the

simulation is excited due to the two sub-iterations in the FDTD-ADI. Finally, the

lack of a set of absorbing boundary conidtions, such as the Berenger PML, resulted

in wave reflections in the simulation that caused erroneous values.

Future work should include determining the exact cause of the errors mentioned

above and the multiresolution time domain (MRTD) method should also be investi-

gated as discussed in section 2.3. The MRTD method may provide a better estimate

to the model solution than the finite difference scheme presented here, but one will

never know until it is attempted. It is possible that this may be investigated as part

of the project for another course.

15

Page 19: Computation Improvement of the FDTD for EM Radation Somlation

Appendix A

Matlab Simulation Code

A.1 FDTD Code using Yee’s Method

Here the code for Yee’s method[6] with Berenger’s PML absorbing boundary condi-

tions [7] is shown. Note, that the PML was actually disabled in this simulation (i.e.

npmls = 0) because difficulties was had in implementing the PML in the FDTD-ADI

method. The algorithm was taken from some sample code provided on disc in Balanis’

Antenna text [1] and modified for the author’s purposes in this report.

% 2D FDTD code using traditional Yee method for z-directed line source.

% Transverse Magnetic solution.

t1 = cputime;

%************************************************

% constants need for the problem.

%************************************************

pi = 4.0 * atan(1.0); %not sure why various authors use this

% instead of the matlab function.

mu0 = 4.0 * pi * 1.0e-7; %permeability of free space.

eps0 = 8.854e-12; %permittivity of free space.

c0 = 1.0/sqrt(mu0*eps0); %speed of light.

aimp = sqrt(mu0/eps0); %wave impedance.

%************************************************

16

Page 20: Computation Improvement of the FDTD for EM Radation Somlation

% define the region parameters, size, PML, etc.

%************************************************

npmls = 0; %number of PML cells.

nmax = 100; %number of time steps.

%x-axis.

ie = 150; %size of evaluated region in x-direction.

ib = ie + 1; %add buffer for spatial derivatives.

ip = ie - npmls; %define actual region that is being modelled.

%i.e. inside the PML layers.

%y-axis.

je = 150; %size of evaluated region in y-direction.

jb = je + 1; %add buffer for spatial derivatives.

jp = je - npmls; %define actual region that is being modelled.

%i.e. inside the PML layers.

%space and time steps.

dx = 0.003 %FDTD cell size.

cdt= dx/c0/2.0;

dt = dx/c0/2.0; %time step size determined by the Courant condition.

%************************************************

% need to define the voltage activation sites.

% for now let’s assume it is in the middle somewhere.

%************************************************

ic = ie/2 + 1;

jc = je/2 + 1;

%************************************************

% set up the Berenger PML absorbing boundary

% constraints material constants.

%************************************************

17

Page 21: Computation Improvement of the FDTD for EM Radation Somlation

%first the max values are needed.

sigmax = (-3.0)*eps0*c0*log(1e-5)/(2.0*dx*npmls);

rhomax = sigmax * (aimp^2);

%set up the absorbing layers values for the free space material.

for m = 1:npmls

sig(m) = sigmax * ((m-0.5)/(npmls+0.5))^2;

rho(m) = rhomax * ((m)/(npmls+0.5))^2;

end

%************************************************

% set up constants for the FDTD equations at the boundary

% layer.

%************************************************

for m = 1:npmls

re = sig(m)*dt/eps0;

rm = rho(m)*dt/mu0;

%constants for the Ez equation.

ca(m) = exp(-re);

cb(m) = -(exp(-re)-1.0)/sig(m)/dx;

da(m) = exp(-rm);

db(m) = -(exp(-rm)-1.0)/rho(m)/dx;

end

%************************************************

% intialize all of the spatially dependent matrices.

% HX, HY, EZX, EZY, etc...

%************************************************

% ez equations.

for i = 1:ib

for j = 1:jb

18

Page 22: Computation Improvement of the FDTD for EM Radation Somlation

ez(i,j) = 0.0; %assume no electric field present at t = 0.

ezx(i,j) = 0.0; %assume no electric field present at t = 0.

caezx(i,j) = 1.0; %free space assumption.

cbezx(i,j) = dt/eps0/dx; %free space assumption.

ezy(i,j) = 0.0; %assume no electric field present at t = 0.

caezy(i,j) = 1.0; %free space assumption.

cbezy(i,j) = dt/eps0/dx; %free space assumption.

end

end

% hx equations.

for i = 1:ib

for j = 1:je

hx(i,j) = 0.0; %assume no magnetic field present at t = 0.

dahx(i,j) = 1.0; %free space assumption.

dbhx(i,j) = dt/mu0/dx; %free space assumption.

end

end

% hy equations.

for i = 1:ie

for j = 1:jb;

hy(i,j) = 0.0; %assume no magnetic field present at t = 0.

dahy(i,j) = 1.0; %free space assumption.

dbhy(i,j) = dt/mu0/dx; %free space assumption.

end

end

%************************************************

% set up the PML boundaries.

%************************************************

%<<< Ez Fields >>>

% left and right PML regions.

19

Page 23: Computation Improvement of the FDTD for EM Radation Somlation

for i = 2:ie

for j = 2:(npmls + 1)

m = npmls + 2 - j;

caezy(i,j) = ca(m);

cbezy(i,j) = cb(m);

end

for j = (jp + 1):je

m = j - jp;

caezy(i,j) = ca(m);

cbezy(i,j) = cb(m);

end

end

% back and front PML regions.

for j = 2:je

for i = 2:(npmls + 1)

m = npmls + 2 - i;

caezx(i,j) = ca(m);

cbezx(i,j) = cb(m);

end

for i= (ip + 1):ie

m = i - ip;

caezx(i,j) = ca(m);

cbezx(i,j) = cb(m);

end

end

%<<< Hx Fields >>>

% left and right PML regions .....

for i = 2:ie

for j = 1:npmls

m = npmls + 1 - j;

dahx(i,j) = da(m);

dbhx(i,j) = db(m);

20

Page 24: Computation Improvement of the FDTD for EM Radation Somlation

end

for j = (jp + 1):je

m = j - jp;

dahx(i,j) = da(m);

dbhx(i,j) = db(m);

end

end

%<<< Hy Fields >>>

% front and back PML regions.

for j = 2:je

for i = 1:npmls

m = npmls + 1 - i;

dahy(i,j) = da(m);

dbhy(i,j) = db(m);

end

for i = (ip + 1):ie

m = i - ip;

dahy(i,j) = da(m);

dbhy(i,j) = db(m);

end

end

%************************************************

% start the time stepping loop.

%************************************************

for n = 1:nmax

% set up the pulse excitation.

% b = 25.0;

% dum = 4.0/b/dt * (n*dt - b*dt);

% voltage = 2.0 * dum * exp(-(dum)^2);

voltage = sin((n*dt)*(2*pi/(cdt*20)));

21

Page 25: Computation Improvement of the FDTD for EM Radation Somlation

%************************************************

% ez field update.

%************************************************

ezx(2:ie,2:je)=caezx(2:ie,2:je).*ezx(2:ie,2:je)+...

cbezx(2:ie,2:je).*(hy(2:ie,2:je)-hy(1:ie-1,2:je));

ezy(2:ie,2:je)=caezy(2:ie,2:je).*ezy(2:ie,2:je)+...

cbezy(2:ie,2:je).*(hx(2:ie,1:je-1)-hx(2:ie,2:je));

% determine total ez field.

ez(2:ie,2:je)=ezx(2:ie,2:je)+ezy(2:ie,2:je);

%************************************************

% apply the soft source excitation at ic, jc.

%************************************************

ez(ic,jc) = ez(ic,jc) + voltage/dx;

%ez(ic,jc) = voltage/dx;

%************************************************

% hx field update.

%************************************************

hx(1:ib,1:je)=dahx(1:ib,1:je).*hx(1:ib,1:je)+...

dbhx(1:ib,1:je).*(ez(1:ib,1:je)-ez(1:ib,2:jb));

%************************************************

% hy field update.

%************************************************

hy(1:ie,1:jb)=dahy(1:ie,1:jb).*hy(1:ie,1:jb)+...

dbhy(1:ie,1:jb).*(ez(2:ib,1:jb)-ez(1:ie,1:jb));

testPoint1Yee(n,:) = [10^9*n*dt, ez(ic+10, jc)];

testPoint2Yee(n,:) = [10^9*n*dt, ez(ic, jc+10)];

testPoint3Yee(n,:) = [10^9*n*dt, ez(ic+20, jc)];

testPoint4Yee(n,:) = [10^9*n*dt, ez(ic, jc+20)];

testPoint5Yee(n,:) = [10^9*n*dt, ez(ic+40, jc)];

testPoint6Yee(n,:) = [10^9*n*dt, ez(ic, jc+40)];

22

Page 26: Computation Improvement of the FDTD for EM Radation Somlation

if rem(n,3)==0

s=int2str(n);

n2=n/3;

clf;

pcolor(ez);

axis([1 ie 1 je]);

caxis([-50 50]);

shading interp;

if n==3;

M=moviein(37);

end;

t2=[’TMz Gaussian Derivative Pulse. Time step #’,s];

title(t2);

hold;

M(:,n2)=getframe;

end

end

t2 = cputime;

fprintf(’CPU Time = %d’, t2-t1);

%save tm_open M;

%movie(M,2,7);

A.2 FDTD-ADI Code

Here the code for the FDTD-ADI method as given by Namiki in [4, 9] is shown.

Again, there is no PML implementation, however the parameters were left in for

future use.

% 2D FDTD-ADI code using Namiki’s method for z-directed line source.

% Transverse Magnetic solution.

23

Page 27: Computation Improvement of the FDTD for EM Radation Somlation

t1 = cputime;

% time step factor

xTimeStep = 4.0;

nTimeSteps = 200;

%************************************************

% constants need for the problem.

%************************************************

pi = 4.0 * atan(1.0); %not sure why various authors use this

% instead of the matlab function.

mu0 = 4.0 * pi * 1.0e-7; %permeability of free space.

eps0 = 8.854e-12; %permittivity of free space.

c0 = 1.0/sqrt(mu0*eps0); %speed of light.

aimp = sqrt(mu0/eps0); %wave impedance.

%************************************************

% define the region parameters, size, PML, etc.

%************************************************

npmls = 0; %number of PML cells.

nmax = nTimeSteps/xTimeStep;%number of time steps.

%x-axis.

ie = 150; %size of evaluated region in x-direction.

ib = ie + 1; %add buffer for spatial derivatives.

ip = ie - npmls; %define actual region that is being modelled.

%i.e. inside the PML layers.

%y-axis.

je = 150; %size of evaluated region in y-direction.

jb = je + 1; %add buffer for spatial derivatives.

jp = je - npmls; %define actual region that is being modelled.

%i.e. inside the PML layers.

24

Page 28: Computation Improvement of the FDTD for EM Radation Somlation

%space and time steps.

dx = 0.003 %FDTD cell size.

cdt = dx/c0/2.0;

dt =xTimeStep*cdt; %time step size determined by the Courant condition.

%************************************************

% need to define the voltage activation sites.

% for now let’s assume it is in the middle somewhere.

%************************************************

ic = ie/2 + 1;

jc = je/2 + 1;

%************************************************

% intialize all of the spatially dependent matrices.

% HX, HY, EZX, EZY, etc...

%************************************************

% ez equations.

for i = 1:ib

for j = 1:jb

ez(i,j) = 0.0; %assume no electric field present at t = 0.

sigma(i,j) = 0.0;

caez(i,j) = eps0/(eps0 + sigma(i,j)*dt); %free space assumption.

cbez(i,j) = 0.5*dt/(eps0 + sigma(i,j)*dt)/dx; %free space assumption.

end

end

% hx equations.

for i = 1:ib

for j = 1:je

hx(i,j) = 0.0; %assume no magnetic field present at t = 0.

dahx(i,j) = 1.0; %free space assumption.

dbhx(i,j) = 0.5*dt/mu0/dx; %free space assumption.

end

25

Page 29: Computation Improvement of the FDTD for EM Radation Somlation

end

% hy equations.

for i = 1:ie

for j = 1:jb;

hy(i,j) = 0.0; %assume no magnetic field present at t = 0.

dahy(i,j) = 1.0; %free space assumption.

dbhy(i,j) = 0.5*dt/mu0/dx; %free space assumption.

end

end

%************************************************

% start the time stepping loop.

%************************************************

%allocate memory for the tridiagonal matrices first.

A1 = spalloc(ib,ib,3);

A2 = spalloc(jb,jb,3);

% build A1 and A2 for situations where the step sizes

% are constant and material properties are constant.

alpha = -1*dt^2/(mu0*eps0*dx^2);

gamma = alpha;

beta = 1-alpha-gamma;

% build A1

i = 1;

A1(i,i) = beta+alpha;

A1(i,i+1) = gamma;

for i = 2:ie

A1(i, i-1) = alpha;

A1(i, i) = beta;

26

Page 30: Computation Improvement of the FDTD for EM Radation Somlation

A1(i, i+1) = gamma;

end

i = ib;

A1(i, i-1) = alpha;

A1(i, i) = beta+gamma;

% build A2

j = 1;

A2(j,j) = beta+alpha;

A2(j,j+1) = gamma;

for j = 2:je

A2(j, j-1) = alpha;

A2(j, j) = beta;

A2(j, j+1) = gamma;

end

j = jb;

A2(j, j-1) = alpha;

A2(j, j) = beta+gamma;

% allocate memory for test data.

testPoint1 = zeros(nmax, 2);

testPoint2 = zeros(nmax, 2);

testPoint3 = zeros(nmax, 2);

testPoint4 = zeros(nmax, 2);

testPoint5 = zeros(nmax, 2);

testPoint6 = zeros(nmax, 2);

for n = 1:nmax

% set up the pulse excitation.

% b = 25.0/xTimeStep;

27

Page 31: Computation Improvement of the FDTD for EM Radation Somlation

% dum = 4.0/b/dt * (n*dt - b*dt);

% voltage = 2.0 * dum * exp(-(dum)^2);

voltage = sin((n*dt)*(2*pi/(cdt/20)));

%<<< first half-time step >>>

%************************************************

% hx field update.

%************************************************

hx(1:ib, 1:je) = dahx(1:ib, 1:je) .* hx(1:ib, 1:je) +...

dbhx(1:ib, 1:je) .* (ez(1:ib, 1:je) - ez(1:ib,2:jb));

%************************************************

% ez field update.

%************************************************

for j = 2:je

i = 1;

r(i) = caez(i,j)*ez(i,j) + cbez(i,j)*(hy(i,j)...

+ hx(i,j-1) - hx(i,j));

% use these if the gamma and beta are position dependent.

% gamma = -1*dbhx(i,j) * cbez(i,j);

% beta = 1 - gamma;

% A1(i,1) = beta;

% A1(i,2) = gamma;

for i = 2:ie

% alpha = -1*dbhx(i-1,j) * cbez(i,j);

% gamma = -1*dbhx(i,j) * cbez(i,j);

% beta = 1 - alpha - gamma;

r(i) = caez(i,j)*ez(i,j) + cbez(i,j)*(hy(i,j)...

- hy(i-1,j) + hx(i,j-1) - hx(i,j));

% A1(i, i-1) = alpha;

28

Page 32: Computation Improvement of the FDTD for EM Radation Somlation

% A1(i, i) = beta;

% A1(i, i+1) = gamma;

end

i = ib;

% alpha = -1*dbhx(i-1,j) * cbez(i,j);

% beta = 1 - alpha;

% A1(i, i-1) = alpha;

% A1(i, i) = beta;

r(i) = caez(i,j)*ez(i,j) + cbez(i,j)*(-hy(i-1,j)...

+ hx(i,j-1) - hx(i,j) );

%temp = (inv(A1)*(r’))’;

temp = tridiagsolve(A1, r);

for i = 1:ib

ez(i,j) = temp(i);

end

end

%************************************************

% apply the soft source excitation at ic, jc.

%************************************************

ez(ic,jc) = ez(ic,jc) + 1.0*voltage/dx;

%ez(2:ie, 2:je) = ezx(2:ie, 2:je) + ezy(2:ie, 2:je);

%************************************************

% hy field update.

%************************************************

hy(1:ie,1:jb) = dahy(1:ie, 1:jb) .* hy(1:ie, 1:jb) +...

dbhy(1:ie, 1:jb).*(ez(2:ib, 1:jb)-ez(1:ie, 1:jb));

%<<< second half-time step >>>

29

Page 33: Computation Improvement of the FDTD for EM Radation Somlation

%************************************************

% hy field update.

%************************************************

hy(1:ie,1:jb) = dahy(1:ie, 1:jb) .* hy(1:ie, 1:jb) +...

dbhy(1:ie, 1:jb).*(ez(2:ib, 1:jb)-ez(1:ie, 1:jb));

%************************************************

% ez field update.

%************************************************

for i = 2:ie

j = 1;

r(j) = caez(i,j)*ez(i,j) + cbez(i,j)*(hy(i,j)...

- hy(i-1,j) - hx(i,j));

% gamma = -1*dbhx(i,j) * caez(i,j);

% beta = 1 - gamma;

% A2(j,1) = beta;

% A2(j,2) = gamma;

for j = 2:je

% alpha = -1*dbhx(i-1,j) * cbez(i,j);

% gamma = -1*dbhx(i,j) * cbez(i,j);

% beta = 1 - alpha - gamma;

r(j) = caez(i,j)*ez(i,j) + cbez(i,j)*(hy(i,j)...

- hy(i-1,j) + hx(i,j-1) - hx(i,j));

% A2(j, j-1) = alpha;

% A2(j, j) = beta;

% A2(j, j+1) = gamma;

end

j = jb;

% alpha = -1*dbhx(i,j-1) * cbez(i,j);

30

Page 34: Computation Improvement of the FDTD for EM Radation Somlation

% beta = 1 - alpha;

% A2(j, j-1) = alpha;

% A2(j, j) = beta;

r(j) = caez(i,j)*ez(i,j) + cbez(i,j)*(hy(i,j)...

- hy(i-1,j) + hx(i,j-1) );

%temp = (inv(A2)*(r’))’;

temp = tridiagsolve(A2, r);

for j = 1:jb

ez(i,j) = temp(j);

end

end

%************************************************

% apply the soft source excitation at ic, jc.

%************************************************

ez(ic,jc) = ez(ic,jc) + 0.0*voltage/dx;

%************************************************

% hx field update.

%************************************************

hx(1:ib, 1:je) = dahx(1:ib, 1:je) .* hx(1:ib, 1:je) +...

dbhx(1:ib, 1:je) .* (ez(1:ib, 1:je) - ez(1:ib,2:jb));

testPoint1(n,:) = [10^9*n*dt, ez(ic+10, jc)];

testPoint2(n,:) = [10^9*n*dt, ez(ic, jc+10)];

testPoint3(n,:) = [10^9*n*dt, ez(ic-20, jc)];

testPoint4(n,:) = [10^9*n*dt, ez(ic, jc+20)];

testPoint5(n,:) = [10^9*n*dt, ez(ic+40, jc)];

testPoint6(n,:) = [10^9*n*dt, ez(ic, jc+40)];

if rem(n,2)==0

31

Page 35: Computation Improvement of the FDTD for EM Radation Somlation

s=int2str(n);

n2=n/2;

clf;

pcolor(ez);

axis([1 ie 1 je]);

caxis([-50 50]);

shading interp;

if n==2;

M=moviein(37);

end;

t2=[’TMz Gaussian Derivative Pulse. Time step #’,s];

title(t2);

hold;

M(:,n2)=getframe;

end

end

t2 = cputime;

fprintf(’CPU Time = %d’, t2-t1);

%save tm_open M;

%movie(M,2,5);

A.3 Tridiagonal System of Equations Solver

Here the code for the tridiagonal systems of equation solver as given by Zhao[11] is

shown.

function x = tridiagsolve(A,b)

%this is the routine proposed by Zhao to ensure

% stability in the FDTD-ADI algorithm.

%size of the problem.

N = size(A,1);

32

Page 36: Computation Improvement of the FDTD for EM Radation Somlation

%initialize for the first value.

i = 1;

x(i) = A(i,i+1)/A(i,i);

g(i) = b(i)/A(i,i);

%solve the rest of the problem.

for i = 2:(N-1)

x(i) = A(i,i+1)/(A(i,i)-A(i,i-1)*x(i-1));

g(i) = (b(i) - A(i,i-1)*g(i-1))/(A(i,i) - A(i,i-1)*x(i-1));

end

i=N;

x(i) = (b(i) - A(i,i-1)*g(i-1))/(A(i,i) - A(i,i-1)*x(i-1));

for i = (N-1):-1:1

x(i) = g(i) - x(i)*x(i+1);

end

33

Page 37: Computation Improvement of the FDTD for EM Radation Somlation

Bibliography

[1] C. A. Balanis, Antenna Theory, Analysis and Design. New York: John Wiley

& Sons, 1997.

[2] ——, Advanced Engineering Electromagnetics. New York: John Wiley & Sons,

1989.

[3] D. M. Sullivan, Electromagnetic Simulation Using the FDTD Method. New

York: IEEE Press, 2000.

[4] T. Namiki, “A new FDTD algorithm based on alternating-direction implicit

method,” IEEE Trans. Microwave Theory Tech., vol. 47, no. 10, pp. 2003–2007,

1999.

[5] F. Zheng, Z. Chen, and J. Zhang, “A finite-difference time-domain method with-

out the courant stability conditions,” IEEE Microwave Guided Wave Lett., vol. 9,

no. 11, pp. 441–443, 1999.

[6] K. S. Yee, “Numerical solution of initial boundary value problems involving

maxwell’s equations in isotropic media,” IEEE Trans. Antennas Propagat.,

vol. 14, no. 3, pp. 302–307, 1966.

[7] J.-P. Berenger, “A perfectly matched layer for the absorption of electromagnetic

waves,” Journal of Computational Physics, vol. 114, pp. 185–200, 1994.

[8] W. H. Press, S. A. Teukolsky, and W. T. V. B. P. Flannery, Numerical Recipes

in C++, The Art of Scientific Computing, 2ed Edition. New York: Cambridge

University Press, 2002.

[9] T. Namiki, “3-D ADI-FDTD method – unconditionally stable time domain al-

gorithm for solving full vector maxwell’s equations,” IEEE Trans. Microwave

Theory Tech., vol. 48, no. 10, pp. 1743–1748, 2000.

34

Page 38: Computation Improvement of the FDTD for EM Radation Somlation

[10] T. Namiki and K. Ito, “Investigation of numerical errors of the two-dimensional

ADI-FDTD method,” IEEE Trans. Microwave Theory Tech., vol. 48, no. 11, pp.

1950–1956, 2000.

[11] A. P. Zhao, “Two special notes on the implementation of the unconditionally

stable ADI-FDTD method,” Microwave and Optical Technology Letters, vol. 33,

no. 4, pp. 273–277, 2002.

[12] S. Wang and F. L. Teixeira, “An efficient PML implementation for the ADI-

FDTD method,” IEEE Microwave Wireless Compon. Lett., vol. 13, no. 2, pp.

72–74, 2003.

[13] M. Krumpholz and L. P. B. Katehi, “MRTD: New time-domain schemes based on

multiresolution analysis,” IEEE Trans. Microwave Theory Tech., vol. 44, no. 4,

pp. 555–571, 1996.

35


Recommended