Читать книгу Electromagnetic Simulation Using the FDTD Method with Python - Dennis M. Sullivan - Страница 15
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
(1.12)
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 anything back into the problem space.
Figure 1.3 Simulation of an FDTD program with absorbing boundary conditions. Notice that the pulse is absorbed at the edges without reflecting anything back.