FDTD RCS Simulation Workflow Using OpenEMS
Plane wave traversing across Al test model.

FDTD RCS Simulation Workflow Using OpenEMS

TLDR:

Built an open-source FDTD workflow for radar cross section analysis using openEMS. Validated it against exact Mie series theory, then used it to explore the scattering physics accessible at workstation-scale compute: cavity resonances in small-scale geometry, and polarization-selective attenuation in anisotropic CFRP.

Full UAV simulation at realistic radar frequencies is beyond what FDTD on a workstation can do — the problem is compute complexity. This repo maps the methodology and shows where the capability chain goes next.

Report: Report — RCS Simulations with openEMS

Repo: https://github.com/lpurdy01/rcs

---

Article content
PEC sphere analytical sphere validation

Why RCS is not a number

"What is the RCS of this aircraft?" is the wrong question. RCS is not a scalar — it's a distribution across aspect angle, frequency, and polarization. Comparing targets to birds or insects collapses that distribution into a single number and discards most of the information that matters for design.

Radar return is the emergent result of spatially distributed scattering mechanisms — specular reflections, edge diffraction, cavity resonances, creeping waves — summing coherently or incoherently depending on geometry and waveform. Understanding RCS means identifying which mechanisms are active and why, not reading off a magnitude.

The compute wall, and what fits inside it

FDTD discretizes the full simulation domain into cells and steps through time. Memory scales as (domain size / cell size)³, and cell size has to stay below λ/20 for accuracy. At 3 GHz with a 1 m aircraft, that's ~5 mm cells across a ~2 m domain: on the order of 64 million cells just for the geometry, before PML and far-field probes. A 64 GB workstation runs out of headroom well before a real aircraft at X-band.

What does fit: small-scale geometry (sub-300 mm) at frequencies up to 2–3 GHz, and material slab studies where the domain is compact. That range is still physically rich — cavity resonance physics, material anisotropy, and scattering regime transitions all show up clearly. The simulations here are deliberate stays within that tractable window, not shortcuts.

The next node on the tech tree — full airframe at realistic frequency and scale — requires either a cluster or a frequency-domain solver (MoM or FEM), which trade time-domain generality for memory efficiency on large steady-state problems. Hopefully I will get to work on building one of those with my HPC course with the University of Wisconsin Madison.

What the small-scale geometry shows

At the scale accessible to this simulation, the scattering from enclosed volumes (engine-like cavities) dominates over flat surfaces and edges by a significant margin. The mechanism is resonant trapping: EM energy enters the cavity, bounces between the walls, and re-radiates coherently back toward the source. When the cavity dimensions are near the radar wavelength, the return can be orders of magnitude stronger than an equivalent flat plate.

This is the kind of result a scalar RCS measurement obscures. The number tells you the target is detectable. It doesn't tell you which feature is responsible, or how sensitive that contribution is to small geometry changes.

At full aircraft scale the same physics applies — cavity treatment is a well-known part of stealth design — but resolving it numerically at realistic frequencies requires more compute than this workstation study provides.

Material effects: anisotropy in CFRP

Modern UAV structures increasingly use carbon fiber reinforced polymer (CFRP). Unlike metal, CFRP has directional conductivity: carbon filaments form a conductive network along the fiber axis (σ∥ ~ 50,000 S/m in real material), while conductivity transverse to the fibers is two to three orders of magnitude lower. The same slab responds differently depending on which way the E-field is oriented.

The FDTD simulation captures this directly with an anisotropic conductivity tensor. A composite slab with σ∥/σ⊥ = 100× ratio (scaled to be mesh-tractable while preserving the physics) shows the contrast clearly:

- E∥ (along fiber axis): ~15 % transmission at 1 GHz. Strong standing wave in front from the reflected field.

- E⊥ (perpendicular to fibers): ~95 % transmission across the full band. The slab is nearly transparent.

The practical implication: the radar return of a CFRP airframe depends on fiber orientation relative to incident polarization. A geometry-only model treats the material as a bulk conductor and misses this entirely. An RCS measurement without polarization control is an ambiguous number for a material whose whole signature is in how it changes with polarization.

Article content
Article content

---

Validating before trusting

Before using the solver for anything interesting, I validated it against the Mie series — the exact analytical solution for scattering from a perfect-conductor sphere. This is the standard FDTD benchmark: a geometry with a closed-form answer at all frequencies and angles.

Three regimes tested:

- Rayleigh (radius ≪ λ): < 5 % error. The mesh is far finer than needed here.

- Resonance (radius ~ 0.1–0.4 λ): ~15 % point-wise RMS. The dominant error is a resonance frequency shift of ~5–7 % from numerical dispersion — a phase artefact, not a wrong amplitude. Smoothed amplitude bias < 1 dB.

- Near-geometric-optics (radius > 0.4 λ): oscillating point-wise errors from the same mechanism. Amplitude correct; errors are ± fluctuations, not a systematic bias.

The key diagnostic: separate phase error (resonance frequency shift) from amplitude error (wrong scattered power). A 10-point running mean of the dB difference does this. Result: correct amplitude at all frequencies, known FDTD dispersion artefacts in the resonance band.

Article content

The toolchain

Core solver: openEMS, open-source FDTD, Python bindings. Geometry, mesh, excitation, boundary conditions, NF2FF post-processing all in Python. The devcontainer builds openEMS from source automatically — clone, open in VS Code Dev Containers, done.

Mie series implemented from scratch using scipy.special Bessel functions with the Wiscombe (1980) convergence criterion. Bistatic patterns use the π_n/τ_n recurrences from Bohren & Huffman, Appendix A.

AI-assisted development

This project was started in Sep 2024 and most of the work done around that time. Take a look at the git commit tree. Since then, I revisited the project with Codex to do documentation passes, and then Claude to help pull the report together and do some additional analysis (the analytical sphere verification). I did most of this project before Magnetic Field Simulator, Built by Agents | LinkedIn so if I were to reapproach this problem it would be in a much more agentic approach.

Future Work

This project laid a lot of foundational skills for me in managing open-source simulation based analysis. As I am writing this article I am currently taking ECE 759: High Performance Compute with the University of Wisconsin Madison. We are covering how to scale compute problems onto much more efficient hardware and massively parallelize. Hopefully with the skills from that course I will be able to implement Yee Grid FDTD, MoM, or an FEA solution to EM analysis that can scale to the detail and resolution needed for actual aircraft design and material research.

To view or add a comment, sign in

More articles by Levi Purdy

  • Magnetic Field Simulator, Built by Agents

    TLDR: Built a 2D magnetostatic motor simulator in C++17 with a Python toolchain. PM synchronous, DC commutated, and…

  • Crypto Knowledge Map

    TLDR: Major updates to the Crypto Knowledge Map project! It has a web version now: https://lpurdy01.github.

  • High-Temperature 3D Printer on a Shoestring Budget

    Early in 2018, Brian Holst mentioned that the Cyber Security Club was hosting a Hackathon. On its own it was going to…

  • Connection Visualization

    A while ago, Collin McClellan came to me with an Idea. He wanted to build a system that could visualize the connections…

  • Underwater Inspection Camera

    Design Goals After having finished my open water diver certification, I started this project desiring a way to see the…

Others also viewed

Explore content categories