Numerical comparisons

This section compares gprMax FDTD results with independent numerical solvers. These studies are not analytical validation: neither calculation is treated as ground truth, and differences include the effects of meshes, conductor representations, ports, and the underlying numerical methods. Exact and semi-analytical comparisons are kept separately in Analytical comparisons.

MATLAB Antenna Toolbox suite

The current suite compares gprMax with the Method of Moments (MoM), and with physical optics where appropriate, from the MATLAB Antenna Toolbox. The cases are stored in testing/other_codes/matlab_mom.

Table 33 Available comparisons

Case

Principal capabilities compared

Half-wave dipole

Thin wires, one-port S11 and impedance, pattern, directivity, gain, and efficiency

Finite-ground monopole

Voltage-gap and magnetic-frill feeds, finite-plate diffraction, S11, impedance, and radiation pattern

Triangular bow tie

Planar PEC rasterisation, source-edge current, S11, impedance, and principal-plane patterns

Vivaldi tapered slot

Exported MATLAB PEC outline, narrow voltage gap, complex S11 and impedance, full-circle patterns, gain, and mesh sensitivity

Rectangular patch

Dielectric substrate, finite ground plane, probe-feed alternatives, mesh convergence, gain, and efficiency

Three-turn helix

Circular polarisation, axial ratio, beamwidth, front-to-back ratio, directivity, and realised gain

Two-element dipole array

Coherent ports, mutual coupling, active impedance, and array factor

Reflector-backed strip dipole

Five-face planar-layered NTFF, infinite PEC termination, directivity, principal-plane patterns, and port diagnostics

PEC plates

Plane-wave scattering and absolute monostatic RCS for square and circular plates

Each modern case builds the gprMax model, writes its normal HDF5 output, reopens that file for post-processing, and writes a fine vtkhdf geometry for inspection in ParaView. MATLAB scripts generate the independent numerical data. The retained MAT, CSV, JSON, and PNG products allow the comparisons to be inspected or replotted by users who do not have MATLAB or Antenna Toolbox. Large HDF5 and VTK files are reproducible working products rather than portable reference data.

Suite overview describes the common evidence chain and file policy. Each case directory has its own README with the precise geometry equivalence, run commands, and quantitative result.

Triangular bow-tie antenna

The planar PEC bow tie has a 101 mm outer length, a 100 mm width, and a one-cell x-directed feed gap. The gprMax model uses a 1 mm Yee grid and a closed KSIR surface; MATLAB uses bowtieTriangular with its MoM delta-gap port. Both use a 50 ohm reference impedance.

_images/matlab_bowtie_pattern_comparison.png

Fig. 114 Normalised principal-plane patterns from gprMax KSIR and MATLAB MoM.

_images/matlab_bowtie_s11_comparison.png

Fig. 115 Reflection coefficient calculated from two independent gprMax terminal definitions and from MATLAB MoM.

At 0.82 GHz, the retained elevation-pattern difference is 0.014 dB RMS. The interpolated S11 minima are 0.800 GHz for gprMax and 0.825 GHz for MATLAB. The offset is approximately two independent FFT bins and is consistent with the one-cell FDTD gap and edge-rasterised conductor differing from the MoM delta gap and continuous triangular surfaces.

Vivaldi tapered-slot antenna

This comparison reproduces the default free-space PEC vivaldi from MATLAB Antenna Toolbox. The finite sheet measures 300 by 125 mm, with a 243 mm exponential taper, a 105 mm aperture, a 24 mm circular cavity and a 0.5 mm feed slot. The actual MATLAB polygon is retained as JSON and tiled with zero-thickness gprMax PEC plates. Both models use a 50 ohm port reference. The sheet is translated into the FDTD domain without changing its physical dimensions.

_images/matlab_vivaldi_geometry_comparison.png

Fig. 116 Actual gprMax PEC-edge geometry overlaid on the exported MATLAB outline, with a close-up of the voltage gap.

_images/matlab_vivaldi_pattern_comparison.png

Fig. 117 Absolute directivity at 1, 1.5 and 2 GHz. Both principal cuts are full circles, with angle zero towards the aperture (+x). No fitted pattern normalisation is applied; values below -25 dBi are clipped only for display.

_images/matlab_vivaldi_port_comparison.png

Fig. 118 Native voltage-port S11 and input impedance compared on the MATLAB frequency grid. The retained complex CSV values also permit phase comparisons.

The cases exercise directional mesh refinement, not isotropic convergence: the transverse spacing remains 0.5 mm to preserve a one-edge feed. MATLAB’s delta-gap excitation and gprMax’s finite Yee-edge source differ, and the curved slot is staircased in FDTD. Port agreement must therefore be judged separately from the main-beam pattern and from numerical power balance. The case README and machine-readable results record these limitations and the measured differences; this example is not an analytical acceptance test.

In the retained finest directional-refinement run, peak directivity differs from MATLAB by at most 0.39 dB at the three pattern frequencies, but the complex input-impedance relative L2 difference remains 39.4% across 1–2 GHz. The H-plane cut RMS differences are about 1.9–2.3 dB over the stated comparison region. This is an open comparison case, not evidence of converged port agreement. MATLAB mesh refinement and a doubled FDTD time window do not account for the discrepancy.

The MAT references are retained so that the plots can be reproduced without MATLAB. Geometry and excitation definitions follow the MathWorks Vivaldi documentation and feed-model documentation.

Dipole, monopole, and patch antennas

The dipole case compares a centre-fed 151 mm FDTD wire with a dipoleCylindrical MoM model and the closed-form half-wave pattern. It uses the documented effective radius of an axial one-cell PEC wire and compares the complete full-sphere antenna metrics, not only normalised cuts.

_images/matlab_dipole_metric_comparison.png

Fig. 119 Absolute dipole pattern and antenna-metric comparison. Peak directivity differs by 0.038 dB in the retained result.

The monopole case encloses a finite 160 mm square PEC ground plate. Separate gprMax runs use a voltage gap and the Hyun magnetic-frill feed. Their patterns agree closely with each other and with MATLAB, while their port results expose the expected sensitivity to the local feed representation.

_images/matlab_monopole_pattern_comparison.png

Fig. 120 Complete elevation and ground-plane cuts for the finite-ground monopole.

The patch case reproduces a 40 mm by 30 mm rectangular patch on a 1.57 mm, \(\epsilon_r=2.33\) substrate. It provides single, parallel, series, and magnetic-frill feed variants, mesh-convergence studies, two independent far-field formulations, and full-sphere gain and efficiency.

_images/matlab_patch_metric_comparison.png

Fig. 121 Full-sphere patch-antenna metrics from gprMax and MATLAB.

Helix and multiport array

The three-turn helix operates in axial mode at 2.2 GHz. It adds comparisons of circular-polarisation handedness, axial ratio, half-power beamwidth, and front-to-back ratio. The retained peak directivities are 10.15 dBi from gprMax and 10.29 dBi from MATLAB; the axial ratios are 2.02 and 2.04 dB.

_images/matlab_helix_comparison.png

Fig. 122 Helix polarisation, radiation-pattern, gain, and port comparison.

The two-element array uses two simultaneous, equal-phase ports. The reported terminal quantity is active impedance under that excitation, rather than conventional single-port S11 with the second element terminated. This case exercises coherent sources, mutual coupling, independent port storage, and the combined element and array factors.

_images/matlab_dipole_array_pattern_comparison.png

Fig. 123 Array-axis and transverse patterns from gprMax and MATLAB.

Reflector-backed strip dipole

The grounded-reflector study places a 150 mm by 15 mm balanced strip dipole at one-eighth and one-quarter of a free-space wavelength above an infinite PEC plane at 1 GHz. MATLAB uses its infinite-ground-plane MoM formulation. gprMax uses a five-face equivalent-current surface whose omitted face is supplied analytically by the PEC-terminated layered Green function.

_images/reflector_dipole_pattern_comparison.png

Fig. 124 Principal-plane patterns for the two reflector spacings. The retained gprMax/MATLAB peak-directivity differences are 0.059 dB and 0.065 dB.

The one-cell FDTD feed gap and MATLAB delta-gap feed are not geometrically identical, so the retained impedance and S11 curves are diagnostics rather than asserted port validation. The normalised radiation patterns and directivity provide the primary numerical comparison.

PEC-plate radar cross section

The plate-RCS study reproduces the square- and circular-plate cases from the MathWorks radar-cross-section benchmark. It compares gprMax discrete-plane-wave/KSIR results with MATLAB MoM, MATLAB physical optics, and the closed-form physical-optics plate expressions. Because the PO approximation omits edge and shadow-region currents, MATLAB MoM remains the relevant full-wave inter-code comparison.

_images/matlab_square_plate_rcs_comparison.png

Fig. 125 Monostatic RCS of the square PEC plate. Refinement reduces the selected angle gprMax/MoM RMS difference from 1.36 to 0.70 dB.

_images/matlab_circle_plate_rcs_comparison.png

Fig. 126 Circular-plate RCS and the stronger sensitivity of deep nulls to Cartesian staircasing and mesh refinement.

Native port-output comparison

An additional voltage-port study uses the production /ports HDF5 datasets directly for the dipole, bow tie, monopole, and patch. It is deliberately distinct from cases that reconstruct terminal current from surrounding magnetic-field receivers.

_images/matlab_rx_port_comparison.png

Fig. 127 Native gprMax port reflection coefficients compared with the retained MATLAB antenna results.

Reproducing a comparison

Run a case from the repository root. For example:

python testing/other_codes/matlab_mom/antenna_bowtie_fs/bowtie_antenna_gprmax.py --gpu 0
matlab -batch "run('testing/other_codes/matlab_mom/antenna_bowtie_fs/bowtie_antenna_matlab.m')"
python testing/other_codes/matlab_mom/antenna_bowtie_fs/plot_bowtie_comparison.py

Omit --gpu 0 to use the CPU solver. Most model drivers also provide --geometry-only and --postprocess-only modes. Consult the case README before interpreting differences: the independent FFT resolution, source model, effective wire radius, and angular normalisation are deliberately recorded for each comparison.