The finite-difference time-domain (FDTD) method has been widely used to perform transient electromagnetic simulation. Compared to the traditional FDTD method, the finite-element time-domain (FETD) method with unstructured meshes and an adaptive time-stepping scheme has the potential to dramatically cut down the number of unknowns and the number of time steps. However, with a need to solve a large-scale unstructured sparse matrix at every time step, the FETD method is generally difficult to scale with the available parallel computing resources. To make efficient use of the multicore resources in current computing platforms, we designed a parallel FETD method that used multiple threads to accelerate the key steps for solving a large sparse matrix, including the construction of the preconditioner and matrix-vector multiplication. Using a customized incomplete Cholesky preconditioner, we achieved faster convergence than many existing preconditioners and a scalable parallel performance over multiple cores. To further reduce the total calculation time, we implemented an overlapping scheme and a preconditioner-reusing scheme. The overlapping scheme executed the solver computation and the preconditioner computation concurrently using different parts of the parallel resources. The preconditioner reusing scheme reduced the need to recompute preconditioners when increasing the time-step size, thus reducing the frequency of the less scalable preconditioner computations. It brought performance benefits by reducing the frequency of less scalable preconditioner computation. Computed parallel FETD results showed the same level of accuracy as FDTD results. In terms of parallel performance, using eight cores, the method cut execution time by a factor of 4 (i.e., 50 parallel efficiency). For a realistic salt model, we simulated TEM responses from 0.01 s to 30 s in 5 min, using hundreds of CPU cores.
Read full abstract