Electronics: Open-Source Software For Electromagnetic Scattering Simulation: The Case of Antenna Design
Electronics: Open-Source Software For Electromagnetic Scattering Simulation: The Case of Antenna Design
Electronics: Open-Source Software For Electromagnetic Scattering Simulation: The Case of Antenna Design
Review
Open-Source Software for Electromagnetic Scattering
Simulation: The Case of Antenna Design
Alessandro Fedeli 1 , Claudio Montecucco 2 and Gian Luigi Gragnani 1, *
1 Department of Electrical, Electronic, Telecommunications Engineering, and Naval Architecture,
University of Genoa, Via all’Opera Pia 11A, 16145 Genoa, Italy; [email protected]
2 Atel Antennas S.r.l., Viale Caduti sul Lavoro 35, 15061 Arquata Scrivia, Italy; [email protected]
* Correspondence: [email protected]
Received: 30 October 2019; Accepted: 5 December 2019; Published: 9 December 2019
Abstract: Electromagnetic scattering simulation is an extremely wide and interesting field, and its
continuous evolution is associated with the development of computing resources. Undeniably,
antenna design at all levels strongly relies on electromagnetic simulation software. However, despite the
large number and the high quality of the available open-source simulation packages, most companies
have no doubts about the choice of commercial program suites. At the same time, in the academic
world, it is frequent to develop in-house simulation software, even from scratch and without proper
knowledge of the existing possibilities. The rationale of the present paper is to review, from a
practical viewpoint, the open-source software that can be useful in the antenna design process. To this
end, an introductory overview of the usual design workflow is firstly presented. Subsequently,
the strengths and weaknesses of open-source software compared to its commercial counterpart are
analyzed. After that, the main open-source packages that are currently available online are briefly
described. The last part of this paper is devoted to a preliminary numerical benchmark for the
assessment of the capabilities and limitations of a subset of the presented open-source programs.
The benchmark includes the calculation of some fundamental antenna parameters for four different
typologies of radiating elements.
1. Introduction
Numerical simulation applied to electromagnetic scattering problems represents a very broad
and multifaceted field. Historically, its bases derive from the initial attempts to find numerical
solutions for describing electromagnetic propagation phenomena in complex and realistic scenarios,
where analytical calculations were inapplicable. Throughout the years, the enormous increase in
the available computer power, as well as the benefits of hardware task parallelization, have brought
the electromagnetic simulation to a new era. Simultaneously, the worldwide availability of Internet
connections, as well as the widespread diffusion of information and communication technologies,
have removed all the barriers in opening science [1].
In this fast-growing background, the use and the development of numerical software for
electromagnetic simulation follow two main directions.
• In the industrial world, the standard approach is to employ commercial software suites,
because of their easy integration in the design workflow, as well as their extended support
and documentation.
• In the academic world, it is very frequent to develop in-house simulation software from scratch,
or alternatively to modify existing software packages in order to experiment new models and
algorithms. In other words, the development of electromagnetic simulation software is still a wide
research field itself, as witnessed by many recent papers on this topic (e.g., [2–12]). Of course,
for advanced and high-level simulations, the use of commercial programs (sometimes combined
with academic/research licenses) is customary.
However, in both situations, the knowledge of the existing open-source possibilities is often
scarce. In both academic and industrial frameworks, especially when the available budget is rather
low, it is more common to find illegal versions of commercial software suites rather than move to
their open-source counterparts. Of course, this creates an important ethic problem, which is also
accompanied by a series of potential security concerns.
Moreover, it is very rare that more than one academic institution work together for the practical
development of open-source simulation packages, and it is more than rare that both universities and
companies work together on that. The only exception is represented by several public-funding research
projects at national or international levels. However, when such projects come to an end, these joint
efforts encounter significant difficulties.
We are not here to prove the superiority of open-source software with respect to commercial
products. Clearly, the better usability, reliability, and computational efficiency of commercial software
packages are so far undeniable, and, therefore, will not be discussed in these pages.
We only believe that a proper knowledge of the existing open-source alternatives can be very
useful for researchers working in this field. From the point of view of graduate and undergraduate
students and their teachers, open-source software can assume an important role in their educational
path. Furthermore, it should be stressed that an up-to-date view of the available open-source
packages can be beneficial even for the developers of commercial electromagnetic software houses.
Cultural motivations also exist: in the research and scientific community there is nowadays an
increasing demand of open data, results, algorithms, and codes [13].
It is easy to understand that a comprehensive review of open-source packages is a huge work, and
cannot be resolved from a unique perspective. The goal of the present paper is to review open-source
software in electromagnetic scattering simulation, and in particular to identify possible open-source
programs that can be fruitfully used in the design of antennas and its workflow. Another aim of this
research is to evaluate the pre- and post-processing capabilities of the open-source packages. It should
be clear that this work is not intended as a compared validation of various software implementations,
and the main target of this review is not to select a problem formulation, a simulation method, or a
software package with respect to others. On the one hand, computational electromagnetics (CEM)
software should be primarily compared based on computational or result quality merits, and in this
field, the potentialities of the different packages are often problem-dependent. On the other hand,
the form of ownership and user experience are not scientific criteria in a strict sense, but these factors
influence software diffusion and should not be neglected: open-source packages achieve a widespread
distribution where usability is taken into account.
As a result, this review is organized as follows. A first distinction between open-source and free
software is given in Section 2, for the readers that are unfamiliar with the subject. In the subsequent
Section 3, some basics for a general understanding of the antenna design workflow are provided.
After that, an overview of the different calculation methods, along with some strengths and weaknesses
of open-source and commercial software packages, are presented in Section 4. The subsequent
Sections 5–7 are devoted to a first description of the main open-source programs that are currently
available. A preliminary numerical assessment, in which a subset of the presented packages has been
evaluated, is reported in Section 8. In particular, an initial benchmark composed of four different kinds
of antenna structures is taken into account. Results are discussed and compared in Section 9. Finally,
Section 10 draws some concluding remarks.
Electronics 2019, 8, 1506 3 of 31
3. Design Workflow
In general, the workflow of any device is a complex process, made of many different phases,
that could be reiterated until a satisfactory result is obtained. A simplified sketch of the antenna design
workflow, in which hardware prototyping and the subsequent steps are not included, is reported in
Figure 1.
Without entering in all the details, from the point of view of the electromagnetic simulation,
three subsequent phases in the design process of antennas and electromagnetic devices can always be
identified. According to the common terminology, we have:
• Pre-processing;
• Solution of the electromagnetic problem, by means of a proper numerical “engine;”
• Post-processing.
Solution of the
Pre-processing Post-processing
electromagnetic problem
Specifications
are not met Evaluation of
Check
results
Specifications
are met
Figure 1. Simplified block diagram of the antenna design workflow, in which hardware prototyping
and all the subsequent steps are omitted.
To carry out these steps, the user can interact with the software either with a graphical user
interface (GUI) or by writing a text file in a specific scripting language. A mix of these two approaches
is also possible. Furthermore, during this pre-processing phase, the documentation useful for the
production of the device may be generated (e.g., drawings, layouts, part list, etc.).
4. Calculation Methods
The most common calculation methods adopted for the electromagnetic simulation can be
subdivided into several classes, based on the kind of numerical approximation of Maxwell’s equations.
Moreover, both methods operating directly in time domain and single-frequency approaches exist.
Not all the possible numerical methods are implemented in an open-source version. As regards
antenna design, the choice is essentially limited to two methods: the Finite Difference Time Domain
method (FDTD) and the Method of Moments (MoM, implemented in the frequency domain). A third
approach, which is widespread in the open-source community for the solution of complex equations,
i.e., the Finite Elements Method (FEM), is usually implemented in multi-physics packages not
necessarily focused on electromagnetic applications, and at the present time, it does not appear
sufficiently mature for an open application in electromagnetics. However, some promising FEM codes
are briefly discussed in Section 7. A more deep discussion about the cited methods, as well as their
open-source implementations, will be presented in the following sections.
It should be noted that it is quite difficult to describe methods’ formulations with a correct level
of detail in the framework of this review, especially for the most advanced techniques. In addition,
there would be a risk of repetitions with respect to the existing scientific literature. For these reasons,
we decided to provide some key references to theoretical works on modeling formulations instead of
replicating part of their content and equations. For readers interested in the mathematical bases of the
presented methods, several very good books exist where the most common formulations are presented,
discussed and compared [15–18]. These books may be very useful for educational purposes, too.
Electronics 2019, 8, 1506 5 of 31
Figure 2. Advantages and disadvantages of commercial software packages for electromagnetic simulation.
At present, the use of open-source software for electromagnetic simulation requires the integration
of inhomogeneous products, which seldom offer the same level of functionality. If a complete system
is needed (i.e., including pre-processing, solver engine, and post-processing) it is sure that several
open-source packages should be integrated together with other “homemade” modules. However,
the possibility of accessing source codes and the existence of good developers communities sometimes
Electronics 2019, 8, 1506 6 of 31
allow the user to solve problems quicker than with commercial products. A concise list of key points
about open-source software in electromagnetics, describing some pros and cons, is reported in Figure 3.
Figure 3. Advantages and disadvantages of open-source software packages for electromagnetic simulation.
5. Method of Moments
Historically, Method of Moments [19,20] is the first kind of solvers for which the initial open-source
applications were developed. The most famous code that implements the MoM is the NEC-2 [21].
Most of the MoM applications are developed in the frequency domain, and the open-source world is
not an exception. In fact, all the programs described in the following sections have been elaborated
starting from Maxwell’s equations in the frequency domain.
at most, a half-space. Therefore, antennas and devices containing dielectric parts cannot be simulated,
even though in the past the code was employed for simulating the emissions radiated by printed
circuit board tracks [25]. When metallic plates have to be modeled, they are approximated with a grid
of wires [26–28]. There are also some limitations about the positioning of intersections and reciprocal
positions of wires, that have been highlighted through the years.
Despite these limitations, this software program is successfully adopted for the analysis,
the design, and the validation of various kinds of antennas. To cite some examples, Olver and Sterr used
NEC-2 for validating the project of a corner reflector antenna developed with the FDTD method [29].
NEC-2 has also been used for the calibration of antennas for electromagnetic compatibility [30,31],
as well as for the modeling of lightning [32] and transient over-voltages [33]. NEC-2 code has also
found interesting applications in radio astronomy, in particular for projects related to low-frequency
radio-telescopy [34,35]. The use of NEC-2 as a simulation engine in optimization processes has been
proposed for the project of generic wire antennas [36], as well as for the optimization of the parameters
of dipole arrays [37] and the design of logarithmic-periodic antennas [38]. In the field of arrays, around
the NEC-2 program algorithms for the estimation of the direction of arrival (DOA) have been also
developed [39].
The original NEC-2 source code, developed in Fortran, is currently available, as well as are the C
and C++ porting of the code.
Presently, no modeling software or other programs for the generation of input data are available.
In addition, there is a limited possibility of post-processing the output data by using open-source
packages. On the other hand, a huge variety of ready-made antenna models can be found over the
Internet. These models are useful as the starting point for antenna design.
Among the most interesting software packages that exploit the NEC-2 engine, we highlight:
nec2c [40] It is a C porting of the original source code; it has been widely tested and can replace
the original code without problems. Differently from the original Fortran code,
it allows command line input/output and dynamically allocates the resources (there
is no need to recompile the application if the predefined memory is not sufficient).
necpp [41] It is also known as nec2++, it is the C++ porting of the original source code; it may be
interesting since the program has been restored and it is organized around a library
that can be called from C, C++, Python and Ruby codes.
xnecview [42] It is a program for visualizing input and output data. Regarding input data, it allows
the user to visualize the analyzed structure; at the output, it provides the radiation
pattern in two and three dimensions, the input impedance, the voltage standing wave
ratio (VSWR) and the maximum gain with respect to frequency. This program can
export graphs as image files, but it cannot create files and tables containing numerical
values. The program code is rather difficult to understand.
xnec2c [43] By partially using the xnecview code, the nec2c developer realized an application
for visualizing and modifying the project in an interactive way. Unfortunately,
the program has no textual output in the numerical format, but only a visual one.
However, in the latest versions, it is possible to export some data not only as images
but also as a file to be handled with the well known graphing utility gnuplot [44].
The NEC-2 has evolved in versions 3 and 4. These codes have been classified for a long time and
presently are not available free of charge. Nevertheless, it seems that the classifications constraints
have been removed almost completely and that now the NEC-4.2 source code can be obtained for a
fee [45].
5.2. MiniNEC3
Despite the very similar name, the MiniNEC software package is structurally different from
NEC-2 [46] as regards the numerical model, the implemented code, and the input/output. The original
Electronics 2019, 8, 1506 8 of 31
code, written in an old version of the BASIC programming language, is still available nowadays [47].
According to some users, the behavior of MiniNEC is better than NEC-2 for handling wires very close
together and junctions between wires with different diameters.
5.3. Puma-EM
Puma-EM [48] is a software package developed in order to study the Radar Cross Section (RCS)
of perfectly conducting structures. It is based on the Boundary Element Method (BEM) [49,50] together
with a Multilevel Fast Multipole Method [51]. It is capable of computing the monostatic and bistatic
RCS and to perform Synthetic Aperture Radar (SAR) calculations in the presence of perfectly electric
conducting (PEC) targets. These targets can include junctions (e.g., plates intersected with volumes)
and therefore the code can be applied to complicated geometries. Puma-EM does not have the
necessary characteristics to model transmitting antennas and for retrieving their input parameters but
is able to evaluate their radiation pattern. The software package has the attracting feature of accepting,
as geometric input models, files generated by Gmsh [52], a mesh-generator program well known in
the open-source world.
5.4. SCUFF-EM
SCUFF-EM [53,54] (or scuff-em) is a software suite based on the BEM [49,50]. The acronym stands
for Surface-CUrrent-Field Formulation of ElectroMagnetism. The implementation is very accurate: in
particular, the author and his collaborators paid attention to the development of an efficient method
for calculating the integrals involved in the BEM formulation [55]. The program is well documented,
although some parts of the documentation are incomplete.
SCUFF-EM was born with the original intention of studying highly specialized phenomena in
photonics, such as the Casimir forces or the radiative transfer [56–59]. However, it evolved in a
complete suite for the BEM analysis of electromagnetic scattering for nanophotonics, RF/microwave
engineering, electrostatics, and so on [58]. It includes a main library with a low-level C++ application
program interface (API) and many command-line applications, each one developed for dealing with
particular electromagnetic problems.
The most interesting ones, as far as RF design is concerned, are scuff-scatter, a generic application
for the study of electromagnetic scattering, scuff-static, specialized for electrostatics, and mostly
important scuff-rf.
The open-source package SCUFF-EM also includes a general high-level application (scuff-solver)
that exposes the functionalities developed in the single modules, with an interface that can be called
from C++, Python, and MATLAB applications.
For the definition of geometric entities and the corresponding meshing operations, SCUFF-EM
uses the Gmsh software [52]. Moreover, it can also perform complex operations on the generated
meshes, such as translations, rotations, duplications, etc.
5.5. Buff-em
Buff-em is complementary to the SCUFF-EM software since it implements some cases that are not
included in SCUFF-EM. In particular, these cases are characterized by the presence of inhomogeneous
dielectric materials (SCUFF-EM can deal with piecewise homogeneous materials only) and anisotropic
materials. Buff-em implements the solution of Maxwell’s equations based on volumetric currents
using SWG basis functions [60]. The implementation of Buff-em is also very accurate [61]. However,
at present, Buff-em is not as rich of capabilities as SCUFF-EM. Although the Buff-em library offers
analogous functionalities as SCUFF-EM, so far only the scattering module and a program for Casimir
forces and radiative heat transfer [62] are already implemented as independent command line tools.
Moreover, as the software author says, Buff-em is significantly slower than SCUFF-EM when both
software packages can be used for the solution of the same problem. We also notice that, due to the
Electronics 2019, 8, 1506 9 of 31
adopted implementation choices, Buff-em cannot deal with surface currents, and therefore it cannot
model PEC objects.
6.1. OpenEMS
Actually, the openEMS program [66] is the solver of a suite of well-integrated applications [72]
for the geometric modeling, the solution, the generation of output data in different formats, and the
integration of the circuit simulation of electromagnetic systems and apparatuses. Basically, the suite is
composed of four tools, integrated with each other.
CSXCAD is a library which allows the user to define various elementary geometric entities,
and operate with them by means of the typical operations that can be found in computer graphics
applications (rotations, translations, duplications, extrusions, masks, etc.). Both graphical and
physical properties (e.g., dielectric permittivity) can be added to each object. Differently from other
modeling tools, the CSXCAD library has been probably conceived from the beginning for the use
with electromagnetic simulation. Therefore, it is possible to define particular properties inside the
model, e.g., Drude, Debye, or Lorentz behaviors, as well as to insert lumped elements and test points.
The CSXCAD library takes care of the mesh generation and the problem discretization. In this respect,
it is worth noticing that the openEMS suite can handle non-uniform meshes, and CSXCAD includes
some routines for the semi-automatic generation of meshes with non-uniform spacing and accurate
smoothing. Furthermore, CSXCAD contains an interface package to be used with Octave/Matlab.
QCSXCAD extends CSXCAD with a section devoted to the generation of GUIs, and AppCSXCAD
is a graphical tool using the QCSXCAD library. Although AppCSXCAD should theoretically allow
the complete graphical handling of the definition and generation of the simulation space, presently
the interface is relatively poor and not very comfortable for the user. However, this interface turns
out to be particularly interesting for the visualization of geometries (including feed ports, probes,
and lumped elements) and for exporting the model in other graphical formats for the visualization
with external software (e.g., Paraview [73] or Povray [74]).
The core program of the suite, openEMS, is based on the EC-FDTD method [75,76]. The method
has been originally developed in the field of MRI (Magnetic Resonance Imaging) [77,78], but it is
completely general. Examples of the use of the package in the field of antennas and arrays can be
found in [79–81]. It is worth noting that openEMS has been also successfully employed in advanced
biophysical research [82].
Electronics 2019, 8, 1506 10 of 31
6.2. GprMax
The gprMax software [67], as the name suggests, was born for the electromagnetic simulation
in the frame of ground penetrating radar (GPR) applications. However, nowadays it can be properly
considered as a general-purpose simulator.
The last version of gprMax is written in Python language (version 3) and the most critical sections
for the computing performance are implemented in Cython [83]. The program not only includes a
parallel solver based on the OpenMP libraries, but it is also one of the few packages (among the ones
discussed in this document) that can actually exploit the computing power of an Nvidia GPUs [84].
The development of gprMax is very accurate, and great attention is paid to the theoretical
correctness of the employed algorithms. Among the possible feed ports, gprMax also includes a
“virtual” transmission line [85] which, as the developers say, should avoid most of the perturbations
introduced in simulation models by other kinds of ports (e.g., lumped element ports).
The history of the development of this software package can be summarized through some papers
by the developers [86–88]. More references can be found on the gprMax website [83]. On the same
site, there is also a summary of the many research papers whose development was based on gprMax.
According to this list, gprMax is cited by more than 500 scientific papers.
Being written in Python, gprMax is intrinsically capable of interfacing with all the Python world,
and itself is also written as a Python package. As regards the post-processing phase and visualization
of results, some examples of using the open-source graphing package matplotlib [89] are included
in the source code. Moreover, the output files (both geometries and results) can be easily read with
Paraview [73], by using a macro that can be found on the gprMax website.
6.3. Meep
Meep [68] is a program that was born in the framework of advanced optics and is likely to
be the most advanced among open-source FDTD programs. It is fully scriptable by using the
Scheme language, in C++ and Python. The package contains advanced tools for both simulation
and post-processing and has been used in photonics [90,91] but also for the optimization of patch
antennas [92].
Nevertheless, due to the functional complexity, the learning curve of the Meep simulator is rather
steep, especially when the user wants to move outside the photonic applications (for which several
examples exist) to simulate antennas and other conventional devices at radio ad microwave frequencies.
6.4. Vulture
Vulture [69] implements a general-purpose FDTD algorithm, which has some interesting
capabilities for electromagnetic engineering. At the moment the development seems to be stalled,
although it continues on the front of research papers [93,94].
6.5. Angora
Angora [70] was born in the field of optical imaging, with the objective to simulate a whole
microscopy system [95], and has been successively enhanced to deal also with biological and other
samples showing complicated dispersion relations [96].
6.6. GS-Vit
GSvit [71] includes a set of numerical tools for the FDTD simulation, with the additional
support for graphics cards compatible with the Nvidia CUDA (Compute Unified Device Architecture)
environment [97,98]. The main scientific purposes include research in the field of nanotechnology
and nanoscale optics, as well as near-field scanning microscopy, Raman scattering, scattering from
rough surfaces, etc. However, as the FDTD method is universal, it can be used in principle for any
other scope.
Electronics 2019, 8, 1506 11 of 31
deall.ll [102] It is a C++ library to construct Finite Element models. In its web site, there are some
examples of electromagnetic problems.
FEniCS [103] The FEniCS Project aims at creating mathematical methods and software for
automated computational mathematical modeling by using finite element methods.
The use of FeniCS in electromagnetic applications is discussed in [104].
BEM++ [105] It is not a FEM library. It is instead a Boundary Element library, which has been used to
face problems modeled with Maxwell and/or Helmholtz equations. It is cited in this
section, as it can be interfaced with FEniCS, to describe coupled FEM-BEM problems.
Elmer [106] Elmer is a multi-physical simulation software that was made open-source in 2005.
Among the many modules available, it contains a solver for the time-domain wave
equation and a solver for the vector Helmholtz equation. Unfortunately, there is
no literature (to the authors’ knowledge) about such modules and also the internal
documentation is very limited.
ONELAB [107] ONELAB (Open Numerical Engineering LABoratory) is a complete environment
for pre-processing, solving and post-processing, based on the mesh generator and
post-processor Gmsh [52] and on the solver GetDP [108,109]. On the website of
ONELAB [110] some references to simple examples of antenna models can be found.
XLiFE++ [111] XLiFE++ (eXtended Library of Finite Elements in C++) contains solvers for
Helmholtz and Maxwell equations.
FreeFEM [112] It is a FEM library, which is very popular among researchers. To give some
examples, it has been successfully used in microwave optics [113] and in microwave
imaging [114].
It should be stressed again that none of the previous packages provide a “ready-to-use” user
program, but a notable programming effort is still needed to define the problem and model of
the solution.
8. Numerical Assessment
A fair comparison of the existing open-source electromagnetic simulation software that can be used
for antenna design is quite difficult for three main reasons. First, suitable testing benchmarks should be
defined. Second, the post-processing phase of open-source software is often non-homogeneous, and
therefore not all the relevant parameters may be directly provided in output by all packages. Third,
because of the free nature of open-source programs, all-inclusive and cross-platform installation utilities
are almost never provided. As a result, installation and compatibility issues frequently arise, and it is
sometimes difficult to run programs that—in principle—are very powerful.
Electronics 2019, 8, 1506 12 of 31
𝑙 = 300 mm
Dipole
𝑔 = 2 mm gap
𝑧
Perfectly matched layer
𝑥
Figure 4. Half-wavelength dipole antenna. Dimensions and geometry of the gprMax cylindrical
model simulation.
It is worth noting that the nec2c code, which is based on an MoM formulation, does not require
the discretization of the surrounding space, but only of the antenna element. Conversely, the two
FDTD codes gprMax and openEMS need to build a simulation region around the antenna in which
even the free space is discretized, and surrounded by proper absorbing boundary conditions.
Electronics 2019, 8, 1506 13 of 31
The gprMax simulation involved a region of space of dimension 0.3 × 0.3 × 0.6 m, discretized
with 2 mm voxel size (150 × 150 × 300 ' 6.75 × 106 cells). The antenna is located at the center of this
region, and it is fed by a 50 Ω z-directed transmission line port excited with a Gaussian waveform
with the central frequency equal to 1 GHz. A perfectly matched layer (PML) of 10-cells width encloses
the simulation domain. The simulated time window has a width of T = 100 ns, with a time step equal
to ∆t = 3.85 ps (25,964 iterations).
In the openEMS simulation, a domain of the same size as in the gprMax simulation has been
considered, with also the same depth of the PML layer. Using the capability of openEMS to deal
with non-uniform meshes, the domain was discretized into 153 × 153 × 302 ' 7.06 × 106 FDTD cells,
and the simulation resulted in a time step of ∆t = 2.31 ps. The simulated time window has a width of
T = 60 ns (26,000 iterations).
The considered antenna structure can be simulated by employing different kinds of numerical
models. For instance, thin wire or cylindrical models can be adopted. The wire model is the simplest
one and represents the antenna as a wire (or an edge) in the simulation mesh. As previously mentioned,
the open-source nec2c software can only deal with wire models. With nec2c, the simulation was carried
out by considering a wire of radius 0.3 mm, divided into 151 uniform segments. This is about the
same wire model used in the original benchmark [116], where the segments are 150 and a small gap is
left for feeding the structure. The magnitude of the reflection coefficient S11 measured at the antenna
port has been reported in Figure 5a, where the open-source software is compared with a wire-model
simulation obtained by two commercial software packages. Moreover, the analytic solution in the case
of a sinusoidal current distribution has been reported in this graph [117].
A good agreement is observed between the computed reflection coefficients. The real and
imaginary parts of the complex impedance measured at the antenna port versus frequency are
also shown in Figure 5c,e, respectively, where the same comments as before still hold. In all cases,
there are relevant differences between the analytic solution and the numerical ones around 1 GHz and
2 GHz, where the theoretical impedance computed with the sinusoidal current approximation tends to
infinity [117] since the length of the dipole l is a multiple of the wavelength in free space.
The compared simulation results achieved with a cylindrical model of the same dipole, where the
arms are represented with a cylinder of diameter d = 2 mm, can be found in the same figure.
In particular, Figure 5b reports the reflection coefficient magnitude, whereas the complex impedance is
shown in Figure 5d,f.
In general, results are quite similar; the only significant differences are noticed for the impedance
calculation by means of the second commercial code. A small underestimation of the impedance
values is also observed in the gprMax simulation. These differences in results may be ascribed to the
different modelling capabilities of the adopted simulators, and in particular to the staircase effect in the
uniform FDTD mesh.
Moreover, the gain of the antenna obtained with nec2c compared with a commercial program and
the analytic solution [117] is reported in Figure 6, in case of a thin wire dipole. It is evident that these
results match exactly. Unfortunately, not all the software packages implement near-field to far-field
(NFFF) transformations (e.g., gprMax) and therefore the radiation pattern is not always available.
This may be a limitation of some open-source programs for the design and characterization of antennas
in far-field conditions.
Electronics 2019, 8, 1506 14 of 31
0 0
−2 −2
−4 −4
−6 −6
|S11| [dB]
|S11| [dB]
−8 −8
−10 −10
nec2c nec2c
−12 gprMax −12 gprMax
−14 openEMS −14 openEMS
Commercial 1 Commercial 1
−16 Commercial 2 −16 Commercial 2
Analytic Analytic
−18 −18
0 0.4 0.8 1.2 1.6 2 0 0.4 0.8 1.2 1.6 2
Frequency [GHz] Frequency [GHz]
(a) (b)
3.5 nec2c 3.5 nec2c
gprMax gprMax
3 openEMS 3 openEMS
Commercial 1 Commercial 1
2.5 Commercial 2 2.5 Commercial 2
real(Zin) [kΩ]
real(Zin) [kΩ]
Analytic Analytic
2 2
1.5 1.5
1 1
0.5 0.5
0 0
0 0.4 0.8 1.2 1.6 2 0 0.4 0.8 1.2 1.6 2
Frequency [GHz] Frequency [GHz]
(c) (d)
1 1
0.5 0.5
0 0
imag(Zin) [kΩ]
imag(Zin) [kΩ]
−0.5 −0.5
−1 −1
−1.5 nec2c −1.5 nec2c
gprMax gprMax
−2 openEMS −2 openEMS
Commercial 1 Commercial 1
−2.5 Commercial 2 −2.5 Commercial 2
Analytic Analytic
−3 −3
0 0.4 0.8 1.2 1.6 2 0 0.4 0.8 1.2 1.6 2
Frequency [GHz] Frequency [GHz]
(e) (f)
Figure 5. Half-wavelength dipole antenna. Magnitude of the reflection coefficient with different
modelling strategies and different solvers: (a) Wire model and (b) cylindrical model. Real part of the
input impedance obtained with (c) Wire model; (d) Cylindrical model. Imaginary part of the input
impedance with (e) wire and (f) cylindrical models. Results are compared with the analytical solution
obtained for a sinusoidal current distribution [117].
Electronics 2019, 8, 1506 15 of 31
0
330 30
0
-10
300 -20 60
-30
-40
270 90
240 120
nec2c
210 150
Commercial
180 Analytic
Figure 6. Half-wavelength dipole antenna. Gain pattern (in decibel) obtained with different electromagnetic
solvers, compared to the analytical solution for a sinusoidal current distribution [117]. Vertical cut on the xz
plane.
𝐷𝑙
−2
−4
|S11| [dB]
−6
−8
nec2c
gprMax
𝑧 Commercial
−10
𝑦 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6
feed point
𝑥 Frequency [GHz]
(a) (b)
2 2
nec2c
gprMax
Commercial 1
1.5
0
imag(Zin) [kΩ]
real(Zin) [kΩ]
1 −1
−2
0.5
−3 nec2c
gprMax
Commercial
0 −4
0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6
Frequency [GHz] Frequency [GHz]
(c) (d)
Figure 7. Circular loop antenna. (a) Dimensions of the model and geometry of the gprMax simulation
domain. Parameters versus frequency, obtained with different electromagnetic solvers: (b) magnitude
of the reflection coefficient; (c) input impedance, real part; (d) input impedance, imaginary part.
270
240 1 300
0
-1
-2
210 330
-3
-4
-5
-6
180 0
150 30
nec2c
120 60 Commercial
90
Figure 8. Circular loop antenna. Gain pattern (in decibel) obtained with different electromagnetic
solvers: horizontal cut on the xy plane.
Electronics 2019, 8, 1506 17 of 31
𝑊𝑏
𝐿𝑏
𝑊𝑝
𝐿𝑝
𝐻𝑏
𝑧
𝑦
feed point
𝑥
(a)
𝑊𝑓
𝐿𝑓
𝑧 𝐻𝑓 𝐷𝑓
edge
𝑥
𝑦
transmission line
(b)
Figure 9. Box-plate antenna. Dimensions and geometry of the model: (a) Global view, dimensions of
box and plate. (b) Zoom on the feed point of the gprMax simulation and its dimensions.
Electronics 2019, 8, 1506 18 of 31
The openEMS simulation has been carried out by using the same domain size as in gprMax
simulation, the same depth of PML and fixing the minimum acceptable resolution to λ/40 at 6 GHz.
This resulted in a domain discretized into 407 × 409 × 244 ' 40.6 × 106 FDTD cells, with a time-step
∆t = 1.35 ps and a total excitation length of 873 × ∆t, corresponding to a Gaussian modulated pulse
with a −20 dB band [0.1 − 6.0] GHz.
A comparison between the simulated magnitude of the reflection coefficient versus frequency
is presented in Figure 10. A very good agreement between the various electromagnetic solvers is
observed, despite the complexity of the structure. Moreover, these results match very well with the
experimental measurements reported in [116].
−1
−2
|S11| [dB]
−3
−4
−5
gprMax
−6 openEMS
Commercial 1
Commercial 2
−7
0 0.5 1 1.5 2 2.5 3
Frequency [GHz]
Figure 10. Box-plate antenna. Magnitude of the reflection coefficient versus frequency, obtained with
different electromagnetic solvers.
As for openEMS, again the capability of using non-uniform meshes has been used to refine some
details of the simulation, however, in order to compare results, the simulation domain was taken as
much as possible similar to the one used for gprMax. In particular, the dimensions of the simulation
volume and the number of PML layers were exactly the same, while minor differences were in the total
number of cells (4.22 × 105 cells in the coarse mesh and 3.33 × 106 cells in the fines mesh). A Gaussian
modulated pulse with a −20 dB band between 4.0 and 11.0 GHz has been used and imposed by means
of a lumped port placed between the patch and the ground plane. When the coarser-resolution is
considered, the time step is ∆t = 1.925 ps, while with the finer mesh we have ∆t = 0.96 ps.
𝐿𝑠
𝐿𝑝 𝑊𝑠
𝑊𝑝
𝑥𝑓
𝐻𝑠
dielectric substrate
conducting plane
𝑧
𝑦 feed point
𝑥
Figure 11. Rectangular patch antenna. Dimensions and geometry of the model.
The three-dimensional radiation pattern obtained with openEMS is shown in Figure 12a, whereas
the resulting values of the reflection coefficient magnitude and of the input impedance versus frequency
(in the band between 5 and 10 GHz) are reported in Figure 12b–d. The resonance peak is observed
between 7 and 8 GHz.
Analyzing the graphs in Figure 12, it can be noticed that the coarse gprMax and openEMS
simulations have a resonance peak significantly lower than the prediction by the commercial software.
Instead, in the results with the finer meshes, the position of the peak shows a quite good match,
although the minimum value of the reflection coefficient is different. These results let us comment
on two important points. First, the models with a coarse mesh clearly suffer from the effects of a
too low spatial discretization (the substrate thickness is modeled with the height of only one cell).
This produces a noticeable shift in the resonance toward low frequencies. Second, the differences
in the minimum value of the reflection coefficient magnitude are mainly due to the frequency axis
discretization adopted in the postprocessing, which is coarser than in commercial software results
(where an adaptive frequency sampling is used). The frequency resolution—which is due to the FFT
operation—may be enhanced if needed by enlarging the simulated time window, by adding padding
zeroes to the time-domain data, or by employing other more advanced strategies.
Electronics 2019, 8, 1506 20 of 31
Gain [dB]
-40 -30 -20 -10 0 7.7 0
−5
−10
−15
|S11| [dB]
−20
−25
40
40
30
30
20
20
10
10 0
0 −10
−10 −20
5 6 7 8 9 10 5 6 7 8 9 10
Frequency [GHz] Frequency [GHz]
(c) (d)
Figure 12. Rectangular patch antenna. Parameters versus frequency, obtained with different electromagnetic
solvers and discretizations. (a) Three-dimensional geometry and radiation pattern obtained with
openEMS; (b) magnitude of the reflection coefficient; (c) input impedance, real part; (d) input impedance,
imaginary part.
In the specific case of this preliminary review, our goal is to explore some possibilities given by
the open-source CEM world, rather than establishing a detailed compared validation of the various
software implementations. Therefore, alternate modeling technique-derived references [118] have been
mostly presented in Section 8. In addition, for the dipole antenna example, we provide here a brief
comparison and error analysis with respect to the corresponding analytic solution [117]. Although
the standard analytic results are computed with sinusoidal current distribution along the dipole (and
therefore present some infinite impedance values, as mentioned in Section 8.1), this solution has been
taken as a reference in [115]. Of course, more advanced analytic comparisons can be made, as well as
involving other kinds of antennas (e.g., loop). However, this case only will be considered here, with
the goal of extending this point in future works.
For establishing the comparison, the following features have been taken into account.
• The impedance measured at the input terminals of the dipole antenna when its length l is exactly
λ/2
a half of the free space wavelength, i.e., l = λ/2. This complex number is denoted as Zin .
• The first two frequencies related to series resonance (i.e, the first and the third frequency point
where ={ Zin } = 0). These values are indicated with f 1sr and f 2sr , respectively.
The distance between simulated and analytic results has been evaluated by means of relative
error quantities, computed as
| p − pre f |
Error = , (1)
| pre f |
λ/2 sr
where p denotes the considered parameter (i.e., Zin , f 1 or f 2sr ). Wire and cylindrical models of the
dipole antenna were taken into account, and the obtained results are reported in Tables 1 and 2.
λ/2
As regards the complex impedance Zin , we note that the simulated values are always higher
than the analytic ones, and this reflects on the computed errors (which are between 13% and 28%).
The error appears always lower in the codes implementing a MoM formulation (both commercial and
open-source) and this is reasonable, the MoM being particularly suitable for simulating wire antennas.
By considering the series resonance frequencies f 1sr and f 2sr , deviations from the analytic values are
less evident (errors between 0.3% and 2%). In this case, too, open-source FDTD codes have relatively
higher errors compared to the MoM counterparts.
Table 1. Error analysis between simulated and analytic results for the wire dipole antenna.
Table 2. Error analysis between simulated and analytic results for the cylindrical dipole antenna.
tU + t S
tnorm = × 100 (2)
PCPU
and can provide a more significant figure than just the sum of tU and tS , when multicore, multithread
computers are involved
To carry out these performance measurements, we used two workstations (in the following
W1 and W2), both equipped with a Debian/Linux system and with the packages openEMS, nec2c,
and xnec2c. As gprMax is not yet packaged by Debian, release 3.5 was downloaded and compiled
according to the instructions provided by the software maintainer. Note that, since xnec2c works only
with user interaction, in these tests the non-graphic version nec2c was used, which unfortunately is
not multi-thread.
Both computers were equipped with Intel
R
CoreTM processors: the main information about the
two workstations (according to the Level 2 Performance Reporting Requirements [115]) are reported in
Table 3.
The first comparison is about the half-wavelength dipole. A comparison of the times needed
by each package and of the capabilities to make the most of the CPU potentialities is summarized in
Table 4. Despite the reduced attitude of nec2c to exploit all the CPU capabilities, it is just a little bit less
than two orders of magnitude faster than gprMax, that is, in turn, much faster than openEMS. The fact
that nec2c is the fastest to execute is not surprising as the method implemented by nec2c does not
need to account for the surrounding of the antenna, as it is instead by the FDTD used by gprMax and
openEMS. As for these last two codes, it is worth noting that, while openEMS is the slowest code in
any case, in W1 gprMax and openEMS differ by a factor of about 5, while this difference reduces to
less than 3.4 in W2. This is a general behavior, which will be observed also in the cases that follow,
and can be related to the capability of openEMS to exploit not only the multicore configuration of the
CPUs, but also the separation in logical threads of each core.
The second case is about the patch and the third one is that of the box-plate antenna. In these
cases, obviously, only gprMax and openEMS are considered. In Table 5 the results about the patch
antenna are shown. It can be seen that gprMax is about 4 times faster than openEMS, while this factor
reduces to less than 3 when W2 is considered. Table 6 is about the box-plate antenna. In this case,
gprMax is also faster than openEMS, however the increments are about 3.61 with W1 and about 2.21
with W2.
In general, one can deduce that the more complex the job and the more performing the hardware,
the more openEMS is able to exploit the performances of the computer.
The last case is about the loop antenna (Table 7). At first glance, it could look that the terrific
difference in speed between nec2c and gprMax that was observed in the first case be now disappeared.
Actually, nec2c is still faster, but only by a factor that is less than 2. It must be observed, however,
that nec2c computed also the radiation patterns, at 1601 different frequencies. When the command
to evaluate the radiation patterns is removed from the input file, the improvement in speed raises to
more than 100 again.
Electronics 2019, 8, 1506 23 of 31
Workstation 1 Workstation 2
Type i7-6700 CPU @ 3.40GHz i9-7900X CPU @ 3.30GHz
CPU Configuration cores = 4 threads = 8 cores = 10 threads = 20
Cache size (KB) 8192 14,080
Size (GB) 16 16
Memory
Type DDR4 2133 MHz (0.5 ns) DDR4 2666 MHz (0.4 ns)
Workstation 1
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elapsed Time [h:m:s]
nec2c 14.81 0.03 99 14.99 00:00:14.09
gprMax 5282.99 7.54 398 1329.28 00:22:06.00
openEMS 46,820.92 42.86 712 6581.99 01:49:41.00
Workstation 2
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elapsed Time [h:m:s]
nec2c 12.86 0.03 99 13.02 00:00:12.09
gprMax 12,125.73 48.15 993 1225.97 00:20:25.08
openEMS 53,194.30 178.31 1296 4118.26 01:08:37.00
Workstation 1
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elaps. Time, tE [h:m:s]
gprMax 810.45 1.85 397 204.61 00:03:24.00
openEMS 5820.55 9.52 710 821.14 00:13:41.01
Workstation 2
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elaps. Time, tE [h:m:s]
gprMax 1764.18 10.77 987 179.83 00:02:59.07
openEMS 6724.96 34.54 1287 525.21 00:08:44.01
Workstation 1
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elaps. Time, tE [h:m:s]
gprMax 109,012.22 20.42 399 27,326.48 07:34:47.00
openEMS 712,364.29 149.83 720 98,960.29 27:28:25.00
Workstation 2
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elaps. Time, tE [h:m:s]
gprMax 244,765.11 119.14 983 24,911.93 06:55:06.00
openEMS 814,999.02 622.13 1481 55,072.33 15:17:48.08
Both gprMax and openEMS could exploit the full power of computational parallelization, based on
message passing interfaces (MPI) and/or openMP. Furthermore, it is worth noting that gprMax contains
a GPU-based solver written by using the CUDA programming paradigm proposed by Nvidia [84],
although it does not support the transmission-line port, and openEMS has an SSE capable engine.
Table 8 summarizes the computational capabilities of the examined software.
Electronics 2019, 8, 1506 24 of 31
Workstation 1
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elaps. Time, tE [h:m:s]
nec2c 1332.38 7.57 99 1353.48 00:22:25.00
gprMax 8509.15 7.81 398 2140.03 00:35:34.08
Workstation 2
User Time, tU [s] Sys. Time, tS [s] PCPU [%] Norm. Time, tnorm [s] Elaps. Time, tE [h:m:s]
nec2c 1181.29 6.10 99 1199.38 00:19:48.07
gprMax 20,961.51 50.93 995 2111.80 00:35:10.05
Unfortunately, at the time of writing, nor a GPU equipped machine nor a true cluster of parallel
computers were available, hence it was not possible to test the peak performances of each software.
On the other hand, we remark again that the main aim of the paper was introducing and promoting
the use of open-source software in general and not to compare the performances of the packages,
that is here reported for the sake of completeness, but it is far for being the core of the work.
10. Conclusions
In the research and scientific community, there is nowadays an increasing demand for open data,
results, algorithms, and codes. Open-source software in CEM is a very powerful tool, and at the same
time is an extremely interesting research field. However, the knowledge of open-source alternatives
is often insufficient, and updated reviews cannot be easily found in the scientific literature. In this
paper, we focused our attention on open-source simulation software applied to the design of antennas,
Electronics 2019, 8, 1506 25 of 31
presenting the main kinds of open-source simulation codes, with reference to the existing software
implementations. The aim of the paper was not to prove the superiority of open-source software with
respect to other products nor to find the best open-source software available. Instead, the paper was
written with the belief that a proper knowledge of the existing open-source alternatives is very useful
for researchers working in this field. From the point of view of graduate and undergraduate students
and their teachers, open-source software can assume an important role in their educational path.
Furthermore, it has been underlined that an up-to-date view of the available open-source packages
can be beneficial even for the developers of commercial software.
While CEM software should be primarily compared based on computational or result quality
merits, on the other hand, user experience can influence software diffusion and should not be neglected.
For this reason, one of the targets of the present work was also that of finding simple and easy to
use codes, not requiring particular skills in programming. Hence a subset of the presented programs
has been selected and tested in a preliminary numerical benchmark, in which four different antenna
typologies have been considered. However, as the numerical tests were performed, it appeared more
and more clear that a comprehensive review and comparison between all the existing packages in
a unified framework represents a heavy task, and cannot be resolved from a unique perspective.
Therefore, a large part of this ambitious project is still under development and will be treated in
more detail in future works. Moreover, the study of open-source software for other typologies of
electromagnetic scattering simulations will be considered as a next step.
Author Contributions: Conceptualization, A.F., C.M., and G.L.G.; methodology, A.F., C.M., and G.L.G.; formal
analysis, A.F., C.M., and G.L.G.; investigation, A.F., C.M., and G.L.G.
Funding: This research received no external funding.
Conflicts of Interest: The authors declare no conflict of interest.
Abbreviations
The following abbreviations are used in this manuscript:
References
1. Stodden, V. Intellectual Property and Computational Science. In Opening Science: The Evolving Guide on
How the Internet is Changing Research, Collaboration and Scholarly Publishing; Bartling, S., Friesike, S., Eds.;
Springer International Publishing: Cham, Switzerland, 2014; pp. 225–235._15. [CrossRef]
Electronics 2019, 8, 1506 26 of 31
2. Feng, N.; Zhang, Y.; Tian, X.; Zhu, J.; Joines, W.T.; Wang, G.P. System-Combined ADI-FDTD Method and Its
Electromagnetic Applications in Microwave Circuits and Antennas. IEEE Trans. Microw. Theory Tech. 2019,
67, 3260–3270. [CrossRef]
3. Wang, S.; Shao, Y.; Peng, Z. A Parallel-in-Space-and-Time Method for Transient Electromagnetic Problems.
IEEE Trans. Antennas Propag. 2019, 67, 3961–3973. [CrossRef]
4. García, E.; Delgado, C.; Lozano, L.; Cátedra, F. Efficient strategy for parallelisation of multilevel fast
multipole algorithm using CUDA. IET Microw. Antennas Propag. 2019, 13, 1554–1563. [CrossRef]
5. Taggar, K.; Gad, E.; McNamara, D. High-Order Unconditionally Stable Time-Domain Finite-Element Method.
IEEE Antennas Wirel. Propag. Lett. 2019, 18, 1775–1779. [CrossRef]
6. Luan, H.; Geng, Y.; Yu, Y.; Guan, S. Three-Dimensional Transient Electromagnetic Numerical Simulation
Using FDFD Based on Octree Grids. IEEE Access 2019, 7, 161052–161063. [CrossRef]
7. Fedeli, A.; Pastorino, M.; Randazzo, A. A Hybrid Asymptotic-FVTD Method for the Estimation of the Radar
Cross Section of 3D Structures. Electronics 2019, 8, 1388. [CrossRef]
8. Narendranath, A.B.; Vinoy, K.J. Spectral Stochastic FEM for Uncertainty Quantification Due to Multiple
Dielectric Variabilities. IEEE Antennas Wirel. Propag. Lett. 2019, 18, 1961–1965. [CrossRef]
9. Zuo, S.; García Doñoro, D.; Zhang, Y.; Bai, Y.; Zhao, X. Simulation of Challenging Electromagnetic Problems
Using a Massively Parallel Finite Element Method Solver. IEEE Access 2019, 7, 20346–20362. [CrossRef]
10. Sun, Q.; Zhang, R.; Zhan, Q.; Liu, Q.H. 3-D Implicit–Explicit Hybrid Finite Difference/Spectral
Element/Finite Element Time Domain Method Without a Buffer Zone. IEEE Trans. Antennas Propag.
2019, 67, 5469–5476. [CrossRef]
11. Lu, J.; Chen, Y.; Li, D.; Lee, J.F. An Embedded Domain Decomposition Method for Electromagnetic Modeling
and Design. IEEE Trans. Antennas Propag. 2019, 67, 309–323. [CrossRef]
12. Fedeli, A.; Pastorino, M.; Raffetto, M.; Randazzo, A. 2-D Green’s function for scattering and radiation
problems in elliptically layered media with PEC cores. IEEE Trans. Antennas Propag. 2017, 65, 7110–7118.
[CrossRef]
13. Stodden, V.; McNutt, M.; Bailey, D.H.; Deelman, E.; Gil, Y.; Hanson, B.; Heroux, M.A.; Ioannidis, J.P.;
Taufer, M. Enhancing reproducibility for computational methods. Science 2016, 354, 1240–1241,
doi:10.1126/science.aah6168. [CrossRef] [PubMed]
14. The Free Software Definition. Available online: https://www.gnu.org/philosophy/free-sw.html
(accessed on 27 October 2019).
15. Davidson, D.B. Computational Electromagnetics for RF and Microwave Engineering, 2nd ed.; Cambridge
University Press: Cambridge, UK, 2010. [CrossRef]
16. Sevgi, L. Electromagnetic Modeling and Simulation, 1st ed.; Wiley-IEEE Press: Hoboken, NJ, USA, 2014.
17. Taflove, A.; Hagness, S.C. Computational Electrodynamics: The Finite-Difference Time-Domain Method, 3rd ed.;
Artech House: Boston, MA, USA, 2005.
18. Schneider, J.B. Understanding the Finite-Difference Time-Domain Method. Available online: https://www.
eecs.wsu.edu/~schneidj/ufdtd (accessed on 27 October 2010).
19. Harrington, R.F. Field Computation by Moment Methods; Wiley-IEEE Press: Piscataway, NJ, USA, 1993.
20. Harrington, R. Origin and development of the method of moments for field computation. IEEE Antennas
Propag. Mag. 1990, 32, 31–35. [CrossRef]
21. Burke, G.J.; Poggio, A.J. Numerical Electromagnetic Code (NEC)–Method of Moments; Technical Report;
Lawrence Livermore National Laboratory: Livermore, CA, USA, 1981.
22. Burke, G.J.; Miller, E.K.; Poggio, A.J. The Numerical Electromagnetics Code (NEC)—A brief history.
IEEE Antennas Propag. Soc. Symp. 2004, 3, 2871–2874. [CrossRef]
23. Mei, K. On the integral equations of thin wire antennas. IEEE Trans. Antennas Propag. 1965, 13, 374–378.
[CrossRef]
24. Yeh, Y.; Mei, K. Theory of conical equiangular-spiral antennas—Part I—Numerical technique. IEEE Trans.
Antennas Propag. 1967, 15, 634–639. [CrossRef]
25. Saha, P.K.; Dowling, J. Reliable prediction of EM radiation from a PCB at the design stage of electronic
equipment. IEEE Trans. Electromagn. Compat. 1998, 40, 166–174. [CrossRef]
26. Ludwig, A. Wire grid modeling of surfaces. IEEE Trans. Antennas Propag. 1987, 35, 1045–1048. [CrossRef]
27. Paknys, R.J. The near field of a wire grid model. IEEE Trans. Antennas Propag. 1991, 39, 994–999. [CrossRef]
Electronics 2019, 8, 1506 27 of 31
28. Rubinstein, A.; Rachidi, F.; Rubinstein, M. On wire-grid representation of solid metallic surfaces. IEEE Trans.
Electromagn. Compat. 2005, 47, 192–195. [CrossRef]
29. Olver, A.D.; Sterr, U.O. Study of corner reflector antenna using FDTD. In Proceedings of the Tenth
International Conference on Antennas and Propagation (Conf. Publ. No. 436), Edinburgh, UK, 14–17 April
1997; Volume 1, pp. 334–337.:19970266. [CrossRef]
30. Austin, B.A.; Fourie, A.P.C. Characteristics of the wire biconical antenna used for EMC measurements.
IEEE Trans. Electromagn. Compat. 1991, 33, 179–187. [CrossRef]
31. Mann, S.M.; Marvin, A.C. A computer study of the calibration of the skeletal biconical antenna and the
resonant dipole antenna. In Proceedings of the IEEE Colloquium on Radiated Emission Test Facilities,
London, UK, 2 June 1992; pp. 2/1–2/8.
32. Ishii, M.; Baba, Y. Advanced computational methods in lightning performance. The Numerical
Electromagnetics Code (NEC-2). In Proceedings of the 2000 IEEE Power Engineering Society Winter Meeting,
Conference Proceedings (Cat. No.00CH37077), Singapore, 23–27 January 2000; Volume 4, pp. 2419–2424.
[CrossRef]
33. Goni, M.O.; Cheng, P.T.; Takahashi, H. Theoretical and experimental investigations of the surge response
of a vertical conductor. In Proceedings of the IEEE/PES Transmission and Distribution Conference and
Exhibition, Yokohama, Japan, 6–10 October 2002; Volume 2, pp. 699–704. [CrossRef]
34. Ellingson, S.W. Sensitivity of Antenna Arrays for Long-Wavelength Radio Astronomy. IEEE Trans. Antennas
Propag. 2011, 59, 1855–1863. [CrossRef]
35. Harun, M.; Ellingson, S.W. Design and analysis of low frequency strut-straddling feed arrays for EVLA
reflector antennas. Radio Sci. 2011, 46. [CrossRef]
36. Casula, G.A.; Mazzarella, G.; Sirena, N. Genetic Programming design of wire antennas. In Proceedings of
the 2009 IEEE Antennas and Propagation Society International Symposium, Charleston, SC, USA, 1–5 June
2009; pp. 1–4. [CrossRef]
37. Casula, G.A.; Mazzarella, G.; Sirena, N. Evolutionary Design of Wide-Band Parasitic Dipole Arrays.
IEEE Trans. Antennas Propag. 2011, 59, 4094–4102. [CrossRef]
38. Lazaridis, P.I.; Tziris, E.N.; Zaharis, Z.D.; Xenos, T.D.; Cosmas, J.P.; Gallion, P.B.; Holmes, V.; Glover, I.A.
Comparison of evolutionary algorithms for LPDA antenna optimization. Radio Sci. 2016, 51, 1377–1384.
[CrossRef]
39. Dai, J.; Xu, W.; Zhao, D. Real-valued DOA estimation for uniform linear array with unknown mutual
coupling. Signal Process. 2012, 92, 2056–2065. [CrossRef]
40. Kyriazis, N. nec2c. Available online: http://www.5b4az.org/ (accessed on 27 October 2019).
41. Molteno, T. necpp. Available online: https://github.com/tmolteno/necpp (accessed on 27 October 2019).
42. de Boer, P.T. xnecview. Available online: https://www.pa3fwm.nl/software/xnecview/ (accessed on
27 October 2019).
43. Kyriazis, N. xnec2c. Available online: http://www.5b4az.org/ (accessed on 27 October 2019).
44. Williams, T.; Kelley, C.; Lang, R.; Kotz, D.; Campbell, J.; Elber, G.; Woo, A. Gnuplot: An Interactive Plotting
Program. Available online: http://gnuplot.sourceforge.net/ (accessed on 27 October 2019).
45. NEC (Numerical Electromagnetic Code). Available online: https://ipo.llnl.gov/technologies/nec
(accessed on 27 October 2019).
46. Rockway, J.; Logan, J. Advances in MININEC. IEEE Antennas Propag. Mag. 1995, 37, 7–12. [CrossRef]
47. The WB0DGF/W8IO Antenna Site. Available online: http://wb0dgf.com/mininec3.zip (accessed on
27 October 2019).
48. Van den Bosch, I. Puma-EM. Available online: http://puma-em.sourceforge.net/index.html (accessed on
27 October 2019).
49. Rao, S.; Wilton, D.; Glisson, A. Electromagnetic scattering by surfaces of arbitrary shape. IEEE Trans.
Antennas Propag. 1982, 30, 409–418. [CrossRef]
50. Buffa, A.; Hiptmair, R. Galerkin Boundary Element Methods for Electromagnetic Scattering. In Topics in
Computational Wave Propagation. Lecture Notes in Computational Science and Engineering; Ainsworth, M., Davies,
P., Duncan, D.B., Martin, P.A., Rynne, B., Eds.; Springer: Berlin/Heidelberg, Germany, 2003; Volume 31.
51. van den Bosch, I.; Acheroy, M.; Marcel, J. Design, implementation, and optimization of a highly efficient
multilevel fast multipole algorithm. In Proceedings of the 2007 Computational Electromagnetics Workshop,
Barcelona, Spain, 21–24 June 2007; pp. 1–6. [CrossRef]
Electronics 2019, 8, 1506 28 of 31
52. Geuzaine, C.; Remacle, J.F. Gmsh: A 3-D finite element mesh generator with built-in pre- and post-processing
facilities. Int. J. Numer. Methods Eng. 2009, 79, 1309–1331. [CrossRef]
53. Homer Reid, M.T.; Johnson, S.G. Efficient Computation of Power, Force, and Torque in BEM Scattering
Calculations. ArXiv 2013, arXiv:1307.2966.
54. Homer Reid, M.T. SCUFF-EM. Available online: http://github.com/homerreid/scuff-EM (accessed on
27 October 2019).
55. Homer Reid, M.T.; White, J.K.; Johnson, S.G. Generalized Taylor–Duffy Method for Efficient Evaluation
of Galerkin Integrals in Boundary-Element Method Computations. IEEE Trans. Antennas Propag. 2015,
63, 195–209. [CrossRef]
56. Homer Reid, M.T.; White, J.; Johnson, S.G. Fluctuating surface currents: An algorithm for efficient prediction
of Casimir interactions among arbitrary materials in arbitrary geometries. Phys. Rev. A 2013, 88, 022514.
[CrossRef]
57. Rodriguez, A.W.; Homer Reid, M.T.; Johnson, S.G. Fluctuating-surface-current formulation of radiative heat
transfer: Theory and applications. Phys. Rev. B 2013, 88, 054305. [CrossRef]
58. Audus, D.J.; Hassan, A.M.; Garboczi, E.J.; Douglas, J.F. Interplay of particle shape and suspension properties:
A study of cube-like particles. Soft Matter 2015, 11, 3360–3366. [CrossRef]
59. Liu, Y.; Fan, L.; Lee, Y.E.; Fang, N.X.; Johnson, S.G.; Miller, O.D. Optimal Nanoparticle Forces, Torques,
and Illumination Fields. ACS Photonics 2019, 6, 395–402. [CrossRef]
60. Schaubert, D.; Wilton, D.; Glisson, A. A tetrahedral modeling method for electromagnetic scattering by
arbitrarily shaped inhomogeneous dielectric bodies. IEEE Trans. Antennas Propag. 1984, 32, 77–85. [CrossRef]
61. Homer Reid, M.T. Taylor–Duffy Method for Singular Tetrahedron-Product Integrals: Efficient Evaluation of
Galerkin Integrals for VIE Solvers. IEEE J. Multiscale Multiphys. Comput. Tech. 2018, 3, 121–128. [CrossRef]
62. Polimeridis, A.G.; Homer Reid, M.T.; Jin, W.; Johnson, S.G.; White, J.K.; Rodriguez, A.W. Fluctuating
volume-current formulation of electromagnetic fluctuations in inhomogeneous media: Incandescence and
luminescence in arbitrary geometries. Phys. Rev. B 2015, 92, 134202. [CrossRef]
63. Yee, K. Numerical solution of initial boundary value problems involving maxwell’s equations in isotropic
media. IEEE Trans. Antennas Propag. 1966, 14, 302–307. [CrossRef]
64. Yee, K.S.; Chen, J.S. The finite-difference time-domain (FDTD) and the finite-volume time-domain (FVTD)
methods in solving Maxwell’s equations. IEEE Trans. Antennas Propag. 1997, 45, 354–363. [CrossRef]
65. Johnson, S.G.; Oskooi, A.; Taflove, A. Advances in FDTD Computational Electrodynamics Photonics and
Nanotechnology; Artech House: Boston, MA, USA, 2013.
66. Liebig, T.; Rennings, A.; Held, S.; Erni, D. openEMS—A free and open source equivalent-circuit (EC) FDTD
simulation platform supporting cylindrical coordinates suitable for the analysis of traveling wave MRI
applications. Int. J. Numer. Model. Electron. Netw. Devices Fields 2013, 26, 680–696. [CrossRef]
67. Warren, C.; Giannopoulos, A.; Giannakis, I. gprMax: Open source software to simulate electromagnetic
wave propagation for Ground Penetrating Radar. Comput. Phys. Commun. 2016, 209, 163–170. [CrossRef]
68. Oskooi, A.F.; Roundy, D.; Ibanescu, M.; Bermel, P.; Joannopoulos, J.; Johnson, S.G. Meep: A flexible
free-software package for electromagnetic simulations by the FDTD method. Comput. Phys. Commun. 2010,
181, 687–702. [CrossRef]
69. Flintoft, I.D. Vulture FDTD Code User Manual. Available online: https://bitbucket.org/uoyaeg/vulture
(accessed on 27 October 2019).
70. Capoglu, I.R.; Zhang, D. Angora: A Free Software Package for Finite-Difference Time-Domain (FDTD)
Electromagnetic Simulation. Available online: http://www.angorafdtd.org/ (accessed on 27 October 2019).
71. Klapetek, P. GSvit. Available online: http://gsvit.net/ (accessed on 27 October 2019).
72. Liebig, T. openEMS—Open Electromagnetic Field Solver. Available online: https://www.openEMS.de
(accessed on 27 October 2019).
73. Ahrens, J.; Geveci, B.; Law, C. ParaView: An End-User Tool for Large-Data Visualization. In Visualization
Handbook; Hansen, C.D., Johnson, C.R., Eds.; Butterworth-Heinemann: Burlington, , NJ, USA, 2005;
pp. 717–731. [CrossRef]
74. Persistence of Vision Pty. Ltd., Williamstown, Victoria, Australia. Persistence of Vision (TM) Raytracer.
Available online: http://www.povray.org/ (accessed on 27 October 2019).
Electronics 2019, 8, 1506 29 of 31
75. Rennings, A.; Otto, S.; Caloz, C.; Lauer, A.; Bilgic, W.; Waldow, P. Composite right/left-handed extended
equivalent circuit (CRLH-EEC) FDTD: Stability and dispersion analysis with examples. Int. J. Numer. Model.
Electron. Netw. Devices Fields 2006, 19, 141–172. [CrossRef]
76. Rennings, A.; Lauer, A.; Caloz, C.; Wolff, I. Equivalent Circuit (EC) FDTD Method for Dispersive Materials:
Derivation, Stability Criteria and Application Examples. In Time Domain Methods in Electrodynamics; Russer, P.,
Siart, U., Eds.; Springer: Berlin/Heidelberg, Germany, 2008; pp. 211–238.
77. Yang, H.; Liebig, T.; Rennings, A.; Froehlich, J.; Erni, D. Tailored RF magnetic field distribution along the bore
of a 7-Tesla traveling-wave magnetic resonance imaging system. In Proceedings of the 2013 International
Conference on Electromagnetics in Advanced Applications (ICEAA), Torino, Italy, 9–13 September 2013;
pp. 468–471. [CrossRef]
78. Erni, D.; Rennings, A.; Svejda, J.T.; Sievert, B.; Chen, Z.; Liebig, T.; Froehlich, J. Multi-functional RF coils for
ultra-high field MRI based on 1D/2D electromagnetic metamaterials. J. Phys. Conf. Ser. 2018, 1092, 012031.
[CrossRef]
79. Chakraborty, S.; Mukherjee, U.; Anchalia, K. Circular micro-strip(Coax feed) antenna modelling using FDTD
method and design using genetic algorithms: A comparative study on different types of design techniques.
In Proceedings of the 2014 International Conference on Computer and Communication Technology (ICCCT),
Allahabad, India, 26–28 September 2014; pp. 329–334. [CrossRef]
80. Hettenhausen, J.; Lewis, A.; Thiel, D.; Shahpari, M. An Investigation of the Performance Limits
of Small, Planar Antennas Using Optimisation. Procedia Comput. Sci. 2015, 51, 2307–2316.
doi:10.1016/j.procs.2015.05.394. [CrossRef]
81. Perera, S.; Pan, Y.; Zhang, Y.; Yu, X.; Zrnic, D.; Doviak, R. A Fully Reconfigurable Polarimetric Phased Array
Antenna Testbed. Int. J. Antennas Propag. 2014, 2014, 439606. [CrossRef]
82. Young, K.W.; Kuo, B.P.P.; O’Connor, S.M.; Radic, S.; Lieber, R.L. In Vivo Sarcomere Length Measurement in
Whole Muscles during Passive Stretch and Twitch Contractions. Biophys. J. 2017, 112, 805–812. [CrossRef]
83. Warren, C.; Giannopoulos, A.; Giannakis, I. gprMax. Available online: http://www.gprmax.com/
(accessed on 27 October 2019).
84. Warren, C.; Giannopoulos, A.; Gray, A.; Giannakis, I.; Patterson, A.; Wetter, L.; Hamrah, A. A CUDA-based
GPU engine for gprMax: Open source FDTD electromagnetic simulation software. Comput. Phys. Commun.
2019, 237, 208–218. [CrossRef]
85. Maloney, J.G.; Shlager, K.L.; Smith, G.S. A simple FDTD model for transient excitation of antennas by
transmission lines. IEEE Trans. Antennas Propag. 1994, 42, 289–292. [CrossRef]
86. Giannopoulos, A. Unsplit Implementation of Higher Order PMLs. IEEE Trans. Antennas Propag. 2012,
60, 1479–1485. [CrossRef]
87. Giannakis, I.; Giannopoulos, A. A Novel Piecewise Linear Recursive Convolution Approach for Dispersive
Media Using the Finite-Difference Time-Domain Method. IEEE Trans. Antennas Propag. 2014, 62, 2669–2678.
[CrossRef]
88. Giannakis, I.; Giannopoulos, A.; Warren, C. A Realistic FDTD Numerical Modeling Framework of Ground
Penetrating Radar for Landmine Detection. IEEE J. Sel. Top. Appl. Earth Obs. Remote Sens. 2016, 9, 37–51.
[CrossRef]
89. Hunter, J.D. Matplotlib: A 2D graphics environment. Comput. Sci. Eng. 2007, 9, 90–95. [CrossRef]
90. Li, S.Q.; Guo, P.; Zhang, L.; Zhou, W.; Odom, T.W.; Seideman, T.; Ketterson, J.B.; Chang, R.P.H. Infrared
Plasmonics with Indium-Tin-Oxide Nanorod Arrays. ACS Nano 2011, 5, 9161–9170, doi:10.1021/nn203406f.
[CrossRef] [PubMed]
91. Lundgren, C.; Lopez, R.; Redwing, J.; Melde, K. FDTD modeling of solar energy absorption in silicon
branched nanowires. Opt. Express 2013, 21, A392–A400. [CrossRef] [PubMed]
92. Richie, J.E.; Ababei, C. Optimization of patch antennas via multithreaded simulated annealing based design
exploration. J. Comput. Des. Eng. 2017, 4, 249–255. [CrossRef]
93. Bourke, S.A.; Dawson, J.F.; Flintoft, I.D.; Robinson, M.P. Errors in the shielding effectiveness of cavities
due to stair-cased meshing in FDTD: Application of empirical correction factors. In Proceedings of
the 2017 International Symposium on Electromagnetic Compatibility—EMC EUROPE, Angers, France,
4–7 September 2017; pp. 1–6. [CrossRef]
Electronics 2019, 8, 1506 30 of 31
94. Flintoft, I.D.; Bourke, S.A.; Dawson, J.F.; Alvarez, J.; Cabello, M.R.; Robinson, M.P.; Garcia, S.G. Face-Centered
Anisotropic Surface Impedance Boundary Conditions in FDTD. IEEE Trans. Microw. Theory Tech. 2018,
66, 643–650. [CrossRef]
95. Capoglu, I.R.; Taflove, A.; Backman, V. Angora: A Free Software Package for Finite-Difference Time-Domain
Electromagnetic Simulation. IEEE Antennas Propag. Mag. 2013, 55, 80–93. [CrossRef]
96. Zhang, D.; Capoglu, I.; Li, Y.; Cherkezyan, L.; Chandler, J.; Spicer, G.; Subramanian, H.; Taflove, A.;
Backman, V. Finite-difference time-domain-based optical microscopy simulation of dispersive media
facilitates the development of optical imaging techniques. J. Biomed. Opt. 2016, 21, 65004. [CrossRef]
97. Klapetek, P.; Valtr, M. Near-field optical microscopy simulations using graphics processing units.
Surf. Interface Anal. 2010, 42, 1109–1113. [CrossRef]
98. Klapetek, P.; Valtr, M.; Poruba, A.; Nečas, D.; Ohlídal, M. Rough surface scattering simulations using
graphics cards. Appl. Surf. Sci. 2010, 256, 5640–5643. doi:10.1016/j.apsusc.2010.03.028. [CrossRef]
99. List of Finite Element Software Packages. Available online: https://en.wikipedia.org/wiki/List_of_finite_
element_software_packages (accessed on 27 October 2019).
100. Ida, N.; Di Rienzo, L.; Yuferev, S. Computer-Aided Design in Electromagnetics—The Case for Surface
Impedance Boundary Conditions. Adv. Electr. Comput. Eng. 2012, 12, 3–12. [CrossRef]
101. Yuferev, S.; Di Rienzo, L. Surface Impedance Boundary Conditions in Terms of Various Formalisms.
IEEE Trans. Magn. 2010, 46, 3617–3628. [CrossRef]
102. Arndt, D.; Bangerth, W.; Clevenger, T.C.; Davydov, D.; Fehling, M.; Garcia-Sanchez, D.; Harper, G.; Heister, T.;
Heltai, L.; Kronbichler, M.; et al. The deal.II Library, Version 9.1. J. Numer. Math. 2019, accepted,
doi:10.1515/jnma-2019-0064. [CrossRef]
103. Alnæs, M.S.; Blechta, J.; Hake, J.; Johansson, A.; Kehlet, B.; Logg, A.; Richardson, C.; Ring, J.; Rognes, M.E.;
Wells, G.N. The FEniCS Project Version 1.5. Arch. Numer. Softw. 2015, 3. [CrossRef]
104. Otto, A.J.; Marais, N.; Lezar, E.; Davidson, D.B. Using the FEniCS Package for FEM Solutions in
Electromagnetics. IEEE Antennas Propag. Mag. 2012, 54, 206–223. [CrossRef]
105. Śmigaj, W.; Betcke, T.; Arridge, S.; Phillips, J.; Schweiger, M. Solving Boundary Integral Problems with
BEM++. ACM Trans. Math. Softw. 2015, 41, 6. [CrossRef]
106. Elmer. Available online: https://www.csc.fi/web/elmer/elmer (accessed on 27 October 2019).
107. Geuzaine, C.; Henrotte, F.; Remacle, J.F.; Marchandise, E.; Sabariego, R. ONELAB: Open Numerical
Engineering LABoratory. In 11e Colloque National en Calcul des Structures; CSMA:Giens, Var, France, 2013.
108. Dular, P.; Geuzaine, C. GetDP Reference Manual: The Documentation for GetDP, a General Environment for
the Treatment of Discrete Problems. Available online: http://getdp.info (accessed on 27 October 2019).
109. Dular, P.; Geuzaine, C.; Henrotte, F.; Legros, W. A general environment for the treatment of discrete problems
and its application to the finite element method. IEEE Trans. Magn. 1998, 34, 3395–3398. [CrossRef]
110. ONELAB. Available online: http://onelab.info/ (accessed on 27 October 2019).
111. XLiFE++ : EXtended Library of Finite Elements in C++. Available online: https://uma.ensta-paris.fr/soft/
XLiFE++/ (accessed on 27 October 2019).
112. Hecht, F. New development in FreeFem++. J. Numer. Math. 2012, 20, 251–265. [CrossRef]
113. Konkin, D.A.; Kokolov, A.A.; Sheyerman, F.I. Design and simulation of the integrated optical components
based on 0.25 um SiGe BiCMOS. In Proceedings of the 2017 Dynamics of Systems, Mechanisms and Machines
(Dynamics), Omsk, Russia, 14–16 November 2017; pp. 1–4. [CrossRef]
114. Tournier, P.; Bonazzoli, M.; Dolean, V.; Rapetti, F.; Hecht, F.; Nataf, F.; Aliferis, I.; El Kanfoud, I.; Migliaccio, C.;
de Buhan, M.; et al. Numerical Modeling and High-Speed Parallel Computing: New Perspectives on
Tomographic Microwave Imaging for Brain Stroke Detection and Monitoring. IEEE Antennas Propag. Mag.
2017, 59, 98–110. [CrossRef]
115. IEEE Std 1597.2-2010. IEEE Recommended Practice for Validation of Computational Electromagnetics Computer
Modeling and Simulations; The Institute of Electrical and Electronics Engineers: New York, NY, USA, 2011;
pp. 1–124. [CrossRef]
116. Technische Universität Hamburg-Harburg. CONCEPT-II Advanced Electromagnetic Field Simulation.
Available online: http://www.tet.tuhh.de/en/concept-2/ (accessed on 27 October 2019).
Electronics 2019, 8, 1506 31 of 31
117. Balanis, C.A. Antenna Theory: Analysis and Design, 4th ed.; John Wiley & Sons: Hoboken, NJ, USA, 2015.
118. IEEE Std 1597.1-2008. IEEE Standard for Validation of Computational Electromagnetics Computer Modeling and
Simulations; The Institute of Electrical and Electronics Engineers: New York, NY, USA, 2008; pp. 1–31.
[CrossRef]
c 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access
article distributed under the terms and conditions of the Creative Commons Attribution
(CC BY) license (http://creativecommons.org/licenses/by/4.0/).