Electromagnetic Simulation Using the FDTD Method with Python (eBook)
John Wiley & Sons (Verlag)
9781119565840 (ISBN)
Provides an introduction to the Finite Difference Time Domain method and shows how Python code can be used to implement various simulations
This book allows engineering students and practicing engineers to learn the finite-difference time-domain (FDTD) method and properly apply it toward their electromagnetic simulation projects. Each chapter contains a concise explanation of an essential concept and instruction on its implementation into computer code. Included projects increase in complexity, ranging from simulations in free space to propagation in dispersive media. This third edition utilizes the Python programming language, which is becoming the preferred computer language for the engineering and scientific community.
Electromagnetic Simulation Using the FDTD Method with Python, Third Edition is written with the goal of enabling readers to learn the FDTD method in a manageable amount of time. Some basic applications of signal processing theory are explained to enhance the effectiveness of FDTD simulation. Topics covered in include one-dimensional simulation with the FDTD method, two-dimensional simulation, and three-dimensional simulation. The book also covers advanced Python features and deep regional hyperthermia treatment planning.
Electromagnetic Simulation Using the FDTD Method with Python:
- Guides the reader from basic programs to complex, three-dimensional programs in a tutorial fashion
- Includes a rewritten fifth chapter that illustrates the most interesting applications in FDTD and the advanced graphics techniques of Python
- Covers peripheral topics pertinent to time-domain simulation, such as Z-transforms and the discrete Fourier transform
- Provides Python simulation programs on an accompanying website
An ideal book for senior undergraduate engineering students studying FDTD, Electromagnetic Simulation Using the FDTD Method with Python will also benefit scientists and engineers interested in the subject.
Jennifer E. Houle is the Vice President for Research at Moscow-Berlin Simulations. She also worked as a Senior Product Engineer at Micron Technology. She has a Masters degree in Electrical Engineering from the University of Idaho. Her work has been published in the International Journal of Magnetics and Electromagnetism and the Symposium on Nonlinear Optics and Sum Rules, and her research was presented at the 32nd Annual Meeting of the European Hyperthermic Oncology Society.
Dennis M. Sullivan, PhD, is Professor of Electrical and Computer Engineering at the University of Idaho. His research interests are electromagnetic and quantum simulation, and include hyperthermia cancer therapy, nonlinear optical simulation, and quantum semiconductor simulation. In 2013 he was made a fellow of the Institute of Electrical and Electronic Engineers. He published the first edition of Electromagnetic Simulation Using the FDTD Method with Wiley in 2001 and the second edition in 2013.
Provides an introduction to the Finite Difference Time Domain method and shows how Python code can be used to implement various simulations This book allows engineering students and practicing engineers to learn the finite-difference time-domain (FDTD) method and properly apply it toward their electromagnetic simulation projects. Each chapter contains a concise explanation of an essential concept and instruction on its implementation into computer code. Included projects increase in complexity, ranging from simulations in free space to propagation in dispersive media. This third edition utilizes the Python programming language, which is becoming the preferred computer language for the engineering and scientific community. Electromagnetic Simulation Using the FDTD Method with Python, Third Edition is written with the goal of enabling readers to learn the FDTD method in a manageable amount of time. Some basic applications of signal processing theory are explained to enhance the effectiveness of FDTD simulation. Topics covered in include one-dimensional simulation with the FDTD method, two-dimensional simulation, and three-dimensional simulation. The book also covers advanced Python features and deep regional hyperthermia treatment planning. Electromagnetic Simulation Using the FDTD Method with Python: Guides the reader from basic programs to complex, three-dimensional programs in a tutorial fashion Includes a rewritten fifth chapter that illustrates the most interesting applications in FDTD and the advanced graphics techniques of Python Covers peripheral topics pertinent to time-domain simulation, such as Z-transforms and the discrete Fourier transform Provides Python simulation programs on an accompanying website An ideal book for senior undergraduate engineering students studying FDTD, Electromagnetic Simulation Using the FDTD Method with Python will also benefit scientists and engineers interested in the subject.
Jennifer E. Houle is the Vice President for Research at Moscow-Berlin Simulations. She also worked as a Senior Product Engineer at Micron Technology. She has a Masters degree in Electrical Engineering from the University of Idaho. Her work has been published in the International Journal of Magnetics and Electromagnetism and the Symposium on Nonlinear Optics and Sum Rules, and her research was presented at the 32nd Annual Meeting of the European Hyperthermic Oncology Society. Dennis M. Sullivan, PhD, is Professor of Electrical and Computer Engineering at the University of Idaho. His research interests are electromagnetic and quantum simulation, and include hyperthermia cancer therapy, nonlinear optical simulation, and quantum semiconductor simulation. In 2013 he was made a fellow of the Institute of Electrical and Electronic Engineers. He published the first edition of Electromagnetic Simulation Using the FDTD Method with Wiley in 2001 and the second edition in 2013.
About the Authors ix
Preface xi
Guide to the Book xiii
1 One-Dimensional Simulation with the FDTD Method 1
1.1 One-Dimensional Free-Space Simulation 1
1.2 Stability and the FDTD Method 5
1.3 The Absorbing Boundary Condition in One Dimension 6
1.4 Propagation in a Dielectric Medium 7
1.5 Simulating Different Sources 9
1.6 Determining Cell Size 10
1.7 Propagation in a Lossy Dielectric Medium 11
1.A Appendix 14
References 15
2 More on One-Dimensional Simulation 25
2.1 Reformulation Using the Flux Density 25
2.2 Calculating the Frequency Domain Output 28
2.3 Frequency-Dependent Media 31
2.3.1 Auxiliary Differential Equation Method 35
2.4 Formulation Using Z Transforms 37
2.4.1 Simulation of Unmagnetized Plasma 38
2.5 Formulating a Lorentz Medium 41
2.5.1 Simulation of Human Muscle Tissue 45
References 47
3 Two-Dimensional Simulation 59
3.1 FDTD in Two Dimensions 59
3.2 The Perfectly Matched Layer (PML) 62
3.3 Total/Scattered Field Formulation 72
3.3.1 A Plane Wave Impinging on a Dielectric Cylinder 74
3.3.2 Fourier Analysis 76
References 78
4 Three-Dimensional Simulation 99
4.1 Free-Space Simulation 99
4.2 The PML in Three Dimensions 103
4.3 Total/Scattered Field Formulation in Three Dimensions 105
4.3.1 A Plane Wave Impinging on a Dielectric Sphere 107
References 111
5 Advanced Python Features 129
5.1 Classes 129
5.1.1 Named Tuples 131
5.2 Program Structure 133
5.2.1 Code Repetition 133
5.2.2 Overall Structure 135
5.3 Interactive Widgets 136
6 Deep Regional Hyperthermia Treatment Planning 159
6.1 Introduction 160
6.2 FDTD Simulation of the Sigma 60 161
6.2.1 Simulation of the Applicator 161
6.2.2 Simulation of the Patient Model 163
6.3 Simulation Procedure 165
6.4 Discussion 168
References 170
Appendix A The Z Transform 171
Appendix B Analytic Solution to Calculating the Electric Field 183
Index 195
1
ONE‐DIMENSIONAL SIMULATION WITH THE FDTD METHOD
This chapter provides a step‐by‐step introduction to the finite‐difference time‐domain (FDTD) method, beginning with the simplest possible problem, the simulation of a pulse propagating in free space in one dimension. This example is used to illustrate the FDTD formulation. Subsequent sections lead to formulations for more complicated media.
1.1 ONE‐DIMENSIONAL FREE‐SPACE SIMULATION
The time‐dependent Maxwell’s curl equations for free space are
E and H are vectors in three dimensions, so, in general, Eq. (1.1a) and (1.1b) represent three equations each. We will start with a simple one‐dimensional case using only Ex and Hy, so Eq. (1.1a) and (1.1b) become
These are the equations of a plane wave traveling in the z direction with the electric field oriented in the x direction and the magnetic field oriented in the y direction.
Taking the central difference approximations for both the temporal and spatial derivatives gives
In these two equations, time is specified by the superscripts, that is, n represents a time step, and the time t is t = Δt ⋅ n. Remember, we have to discretize everything for formulation into the computer. The term n + 1 means one time step later. The terms in parentheses represent distance, that is, k is used to calculate the distance z = Δx ⋅ k. (It might seem more sensible to use Δz as the incremental step because in this case we are going in the z direction. However, Δx is so commonly used for a spatial increment that we will use Δx.) The formulation of Eq. (1.3a) and (1.3b) assume that the E and H fields are interleaved in both space and time. H uses the arguments k + 1/2 and k − 1/2 to indicate that the H field values are assumed to be located between the E field values. This is illustrated in Fig. 1.1. Similarly, the n + 1/2 or n − 1/2 superscript indicates that it occurs slightly after or before n, respectively. Equations (1.3a) and (1.3b) can be rearranged in an iterative algorithm:
Notice that the calculations are interleaved in space and time. In Eq. (1.4a), for example, the new value of Ex is calculated from the previous value of Ex and the most recent values of Hy.
Figure 1.1 Interleaving of the E and H fields in space and time in the FDTD formulation. To calculate Hy, for instance, the neighboring values of Ex at k and k + 1 are needed. Similarly, to calculate Ex, the values of Hy at k + 1/2 and are needed.
This is the fundamental paradigm of the FDTD method (1).
Equations (1.4a) and (1.4b) are very similar, but because ε0 and μ0 differ by several orders of magnitude, Ex and Hy will differ by several orders of magnitude. This is circumvented by making the following change of variables (2):
Substituting this into Eq. (1.4a) and (1.4b) gives
Once the cell size Δx is chosen, then the time step Δt is determined by
where c0 is the speed of light in free space. (The reason for this will be explained in Section 1.2.) Therefore, remembering that ε0μ0 = 1/(c0)2,
Rewriting Eq. (1.6a) and (1.6b) in Python gives the following:
Note that the n, n + 1/2, or n − 1/2 in the superscripts is gone. Time is implicit in the FDTD method. In Eq. (1.9a), the ex on the right side of the equal sign is the previous value at n − 1/2, and the ex on the left side is the new value n + 1/2, which is being calculated. Position, however, is explicit. The only difference is that k + 1/2 and k − 1/2 are rounded to k and k − 1 in order to specify a position in an array in the program.
The program fd1d_1_1.py at the end of this chapter is a simple one‐dimensional FDTD program. It generates a Gaussian pulse in the center of the problem space, and the pulse propagates away in both directions as seen in Fig. 1.2. The Ex field is positive in both directions, but the Hy field is negative in the negative direction. The following points are worth noting about the program:
- The Ex and Hy values are calculated by separate loops, and they employ the interleaving described above.
- After the Ex values are calculated, the source is calculated. This is done by simply specifying a value of Ex at the point
k = kcand overriding what was previously calculated. This is referred to as a hard source because a specific value is imposed on the FDTD grid.
Figure 1.2 FDTD simulation of a pulse in free space after 100 time steps. The pulse originated in the center and travels outward.
PROBLEM SET 1.1
- Get the program fd1d_1_1.py running. What happens when the pulse hits the end of the array? Why?
- Modify the program so it has two sources, one at
kc ‐ 20and one atkc + 20. (Notice thatkcis the center of the problem space.) What happens when the pulses meet? Explain this from basic electromagnetic (EM) theory. - Instead of Ex as the source, use Hy at
k = kcas the source. What difference does it make? Try a two‐point magnetic source atkc ‐ 1andkcsuch thathy[kc ‐ 1] = ‐ hy[kc]. What does this look like? To what does it correspond physically?
1.2 STABILITY AND THE FDTD METHOD
Let us return to the discussion of how to determine the time step. An EM wave propagating in free space cannot go faster than the speed of light. To propagate a distance of one cell requires a minimum time of Δt = Δx/c0. With a two‐dimensional simulation, we must allow for the propagation in the diagonal direction, which brings the requirement to . Obviously, a three‐dimensional simulation requires . This is summarized by the well‐known Courant Condition (3, 4):
where n is the dimension of the simulation. Unless otherwise specified, throughout this book we will determine Δt by
This is not necessarily the best formula; we will use it for simplicity to avoid using square roots.
PROBLEM SET 1.2
- In fd1d_1_1.py, go to the governing equations, Eq. (1.9a) and (1.9b), and change the factor 0.5 to 1.0. What happens? Change it to 1.1. Now what happens? Change it to 0.25 and see what happens.
1.3 THE ABSORBING BOUNDARY CONDITION IN ONE DIMENSION
Absorbing boundary conditions are necessary to keep outgoing E and H fields from being reflected back into the problem space. Normally, in calculating the E field, we need to know the surrounding H values. This is a fundamental assumption of the FDTD method. At the edge of the problem space we will not have the value of one side. However, we have an advantage because we know that the fields at the edge must be propagating outward. We will use this fact to estimate the value at the end by using the value next to it (5).
Suppose we are looking for a boundary condition at the end where k = 0. If a wave is going toward a boundary in free space, it is traveling at c0, the speed of light. So, in one time step of the FDTD algorithm, it travels
This equation shows that it takes two time steps for the field to cross one cell. A commonsense approach tells us that an acceptable boundary condition might be
The implementation is relatively easy. Simply store a value of Ex(1) for two time steps and then assign it to Ex(0). Boundary conditions such as these have been implemented at both ends of the Ex array in the program fd1d_1_2.py. Figure 1.3 shows the results of a simulation using fd1d_1_2.py. A pulse that originates in the center propagates outward and is absorbed without reflecting...
| Erscheint lt. Verlag | 4.9.2020 |
|---|---|
| Sprache | englisch |
| Themenwelt | Naturwissenschaften ► Physik / Astronomie |
| Technik ► Elektrotechnik / Energietechnik | |
| Schlagworte | computational electrodynamics • computational electromagnetics • Electrical & Electronics Engineering • Electromagnetic • Electromagnetic Compatibility • electromagnetic engineering</p> • Electromagnetic Simulation • Electromagnetic theory • Elektromagnetische Verträglichkeit • Elektromagnetismus • Elektrotechnik u. Elektronik • FDTD • <p>finite difference time domain • Materials Science • Materialwissenschaften • Materialwissenschaften / Theorie, Modellierung u. Simulation • Modeling • Python • Simulations • System Theory • Theory, Modeling & Simulation • time domain |
| ISBN-13 | 9781119565840 / 9781119565840 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich