113.GemsFDTD
SPEC MPI2007 Benchmark Description

Benchmark Name

113.GemsFDTD


Benchmark Author

Ulf Andersson <ulfa [at] nada.kth.se> and others at the Parallel and Scientific Computing Institute (PSCI) in Sweden.


Benchmark Program General Category

Computational Electromagnetics (CEM)


Benchmark Description

GemsFDTD solves the Maxwell equations in 3D in the time domain using the finite-difference time-domain (FDTD) method. The radar cross section (RCS) of a perfectly conducting (PEC) object is computed. GemsFDTD is a subset of the code GemsTD developed in the General ElectroMagnetic Solvers (GEMS) project. The MPI version of GemsFDTD is a subset of the Gems multiblock code, MBfrida, written by Anders �lund and Martin Johansson.

The code consists of three steps, initialization, timestepping and post-processing.

The core of the FDTD method are second-order accurate central-difference approximations of the Faraday's and Ampere's laws. These central-differences are employed on a staggered Cartesian grid resulting in an explicit finite-difference method. These updates are performed in the module material_class. The FDTD method is also referred to as the Yee scheme. It is the standard time-domain method within CEM.

An incident plane wave is generated using so-called Huygens' surfaces. This means that the computational domain is split into a total-field part and a scattered field part, where the scattered field part surrounds the total-field part. This part only takes a few percent of the total execution time. It uses the excite_mod module to compute the shape of the incident fields.

The computational domain is truncated by an absorbing layer in order to minimize the artificial reflections at the boundary. The Uni-axial perfectly matched layer (UPML) by Gedney is used here.

A time-domain near-to-far-field transformation computes the RCS according to Martin and Pettersson. This is handled by the module NFT_class. Fast Fourier transforms (FFT) are employed in the post-processing of the fourier_transf_mod.

The execution time is concentrated in five subroutines, two update routines, two UPML routines, and the routine NFT_store.

The train case differences from the mref case only in the number of computed time steps.


MPI Usage

GemsFDTD divides the computational space into 3D blocks that are distributed across processors. Domain decomposition is done using MPI_DIMS_CREATE. Most inter-block communication uses MPI_SEND and MPI_RECV.

The code has been modified to run at rank counts that show generally increasing performance. In every case, either 2 or 3 ranks are set aside for UPML computations; the remaining ranks are used for interior field updates. Of these, some may be idled in order to give a better domain decomposition. For example, if 59 ranks are available for interior field updates, only 56 will actively participate in the computation. The optimal rank counts are: 1, 2, 3, 4, 6, 8, 9, 12, 14, 16, 18, 20, 24, 27, 28, 30, 32, 36, 40, 42, 45, 48, 50, 54, 56, 60, 63, 64, 70, 72, 75, 80, 81, 84, 90, 96, 98, 99, 100, 105, 108, 112, 117, 120, 125, 126, 128, 132, 135, 140, 144, 147, 150, 156, 160, 162, 165, 168, 175, 176, 180, 189, 192, 195, 196, 198, 200, 208, 210, 216, 220, 224, 225, 231, 234, 240, 243, 245, 250, 252, 256


Input Description

A main input file called yee.dat is needed. A number of PRIMARY keywords can be given. They are always written in capital letters. There are a total of ten primary keywords available. With the exception of PROGRESS, they must all be present in yee.dat. A PRIMARY keyword may have one or several Secondary keywords.

The PRIMARY keywords are used to define problem size, number of time steps to be taken, the cell size, and the CFL value. Furthermore, they are used for definitions of the excitation, an incident plane wave, the absorbing layer at the outer boundary, the near-to-far-field transform, and the multiblock domain decomposition. Finally the primary keyword PEC and its secondary keyword Filename are used to specify a file that contains a description of the PEC object.

The order in which PRIMARY keywords appear in yee.dat is arbitrary. The same is true for the Secondary keywords.

In total, there are two input files, the main input file yee.dat and the PEC description file.


Output Description

Output is an ASCII file containing the requested frequency-domain RCS data. The name of the output file is <Filenamebase>.nft where <Filenamebase> is given in the input file under the PRIMARY keyword NFTRANS_TD and the Secondary keyword Filenamebase.


Programming Language

Fortran 90


Known portability issues

None


References

Allen Taflove, Computational Electrodynamics: The Finite-Difference Time-Domain Method, Artech House, 2000

T. Martin and L. Pettersson, IEEE Trans. Ant. Prop. Vol. 48, No. 4, pp. 494-501, Apr. 2000.

S. Gedney, IEEE Trans. Ant. Prop., vol. 44, no. 12, pp 1630-1639, Dec. 1996.

A report on a subset of GemsFDTD may be found at http://www.p dc.kth.se/info/research/trita/PDC_TRITA_2002_1.pdf

www.psci.kth.se/Programs/GEMS/


Last updated: 8 February 2007