749.fotonik3d_r
SPEC CPU®2026 Benchmark Description

Benchmark Name

749.fotonik3d_r

Benchmark Program General Category

Computational Electromagnetics (CEM)

Benchmark Author

Ulf Andersson cemulfa [at] proton [dot] me

749.fotonik3d_r was submitted to the SPEC CPU v8 Benchmark Search Program by Ulf Andersson.

Benchmark Description

Fotonik3D computes the transmission coefficient of a photonic waveguide using the finite-difference time-domain (FDTD) method for the Maxwell equations. UPML (Uniaxial Perfectly Matched Layer) for dielectric materials is used to terminate the computational domain.

The core of the FDTD method is 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. The FDTD method is also referred to as the Yee scheme. It is the standard time-domain method within CEM.

The code consists of three steps: initialization, time-stepping and wrap-up. About 98% of the time is spent in the time-stepping, in five routines:

  1. Updating the electric fields in dielectric materials (module material_mod routine mat_updateE)
  2. Updating the magnetic fields in dielectric materials (update_mod updateH)
  3. Computing the Discrete Fourier Transform (DFT) of electric and magnetic fields in power planes (power_mod power_DFT)
  4. Updating the electric fields in UPML (upml_mod UPML_updateE)
  5. Updating the magnetic fields in UPML (upml_mod UPML_updateH)

The excitation of the code is a 2D (x and z) cross section of the computational domain. A precomputed Single TE mode is read from file and multiplied with a time dependent pulse:

Ex(:,y_index,:) = Ex(:,y_index,:) + pulse(t)*Single_TE_mode(:,:) 

The computation of the excitation takes very little time.

The module power_mod performs the computation of the power flow.

During the initialization, two files containing a list of twinkles are read. A twinkle is one side of an FDTD-cell. These lists defines the two power planes through which we will compute the power flow. The input files also defines for which frequencies the power flow shall be computed.

During the time-stepping a DFT is computed for the perpendicular components (x and z) of the interpolated electric and magnetic fields at the midpoint of each twinkle in the power plane.

After time-stepping the power flow, i.e., Poynting's vector, is computed for each twinkle. Then the contribution from all the twinkles are summed for each frequency. This is written to an output file for both power planes. The transmission coefficient for each frequency can then be computed by a post-processing program. (In the original application we take more time steps in order to compute the power flow accurately.)

Input Description

All input files are ASCII unless otherwise noted.

yee.dat is the main input file. Inputs in this file must come in a specific order. See the comments in the file itself; for additional details, see the source to 'init.F90'. Among the fields are:

power1.dat and power2.dat define the two power planes were the power flow shall be computed:

These files define the frequencies for which to compute the power flow. For details on these two files, see the source file 'power.F90'. Among the fields are:

OBJ-epsilon.asc and OBJ-values.dat describe the photonic waveguide. OBJ-epsilon.asc has a short list of values for relative permittivity (epsilon_r). OBJ-values.dat is a binary file containing 1-byte integers, which is read using Fortran ACCESS='STREAM' FORM='UNFORMATTED'. It assigns one of these epsilon_r-values to each electric component of every cell. OBJ-values.dat is distributed in the SPEC CPU media as an xz-compressed file, which is expanded prior to the start of the run. For details of the expansion, in the run directory you can say:
    specinvoke -n inputgen.cmd

PSI.dat contains the definition of the single TE mode used for the Plane Source excitation. This file defines the location (its y-value) of the Plane Source and contains a pointer to a file, TEwaveguide.m, containing the description of the single TE mode. This TE mode has been precomputed by another code. It contains (nx+1)*(nz+1) values except for the refspeed workload where it contains (nx/2+1)*(nz/2+1) values.

SPEC® provides 4 workloads: test, train, refrate, and refspeed, with these characteristics:

Output Description

The output ASCII-file, pscyee.out, contains the power values for each frequency for the two power planes. It also contains the values of Ec which can be used for normalization. The values are validated by comparing them to a SPEC-provided set of expected outputs.

Various progress information is written to standard output, which may be useful when debugging, especially if the benchmark is run directly from the command line. When run under the control of the SPEC tools, standard out is captured to fotonik3d.log, which is not validated.

Differences from SPEC CPU 2017 549.fotonik3d_r and 649.fotonik3d_s

Changes vs. the SPEC CPU 2017 versions include:

Programming Language

Fortran

Threading Model

The SPECrate version is single-threaded. The SPECspeed version uses OpenMP.

Known Portability Issues

None

Sources and Licensing

749.fotonik3d_r is distributed under the SPEC license, also present on your SPEC CPU installed copy as $SPEC/Docs/licenses/SPEC-License.pdf (for Microsoft Windows systems: %SPEC%\Docs\licenses\SPEC-License.pdf).

Fotonik3D was contributed to SPEC, and licensed directly to SPEC, by its author, Ulf Andersson.

References

  1. Ulf Andersson, Min Qiu, and Ziyang Zhang, Parallel Power Computation for Photonic Crystal Devices, Methods and Applications of Analysis, 07/2006; 13(2):149-156. DOI: 10.4310/MAA.2006.v13.n2.a3, PDF available from: www.researchgate.net/publication/228405514

  2. Torleif Martin, Broadband Electromagnetic Scattering and Shielding Analysis using the Finite Difference Time Domain Method, Linköping 2001, ISBN 91-7219-914-8.

  3. S.D. Gedney (1996), An anisotropic perfectly matched layer absorbing media for the truncation of FDTD latices, IEEE Transactions on Antennas and Propagation, Vol. 44 (12): pp. 1630-1639. Bibcode: 1996ITAP...44.1630G. DOI:10.1109/8.546249.

  4. Taflove (ed.), Advances in Computational Electrodynamics, Sect. 5.4-5.9, 1998

  5. A. Taflove and S. C. Hagness, Computational Electrodynamics: The Finite-Difference Time-Domain Method, 3rd ed., Norwood, MA: Artech House, 2005.

  6. A. Taflove, A. Oskooi, and S. G. Johnson, eds., Advances in FDTD Computational Electrodynamics: Photonics and Nanotechnology. Norwood, MA: Artech House, 2013.

Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)