Skip to main content

Ionosphere geodesic FDTD

ionosphere-fdtd is a NumPy and PyTorch implementation of a three-dimensional geodesic finite-difference time-domain model for the Earth–ionosphere waveguide. It combines an icosahedral primal/dual surface mesh with staggered radial Yee planes, conductive materials, localized current sources, receiver sampling, and two- and three-dimensional visualization.

FDTD pulse propagation from Gwangju on the geodesic Earth-ionosphere grid

Highlights

  • NumPy CPU and PyTorch CPU, CUDA, and Apple Metal/MPS backends
  • Full-spherical radial curls and conservative CFL selection
  • Exponential conductive integration with a legacy trapezoidal option
  • Configurable geodesic and radial grids, materials, sources, and anomalies
  • Portable, versioned checkpoints with cross-backend restart
  • Surface maps, radial sections, receiver traces, interactive 3-D views, and animations
  • Analytic Maxwell verification and Simpson–Taflove reproduction workflows

Quick start

Python 3.11 or newer is required.

uv sync --extra test --extra visualization --extra pytorch
uv run ionosphere --steps 200

For repeatable runs, copy the provided TOML configuration and edit it instead of repeating command-line options:

cp configs/ionosphere.example.toml run.toml
uv run ionosphere --config run.toml

Explicit command-line options override values from the file. See the command-line reference for the simulation and visualization table layout.

Minimal Python usage:

from ionosphere_fdtd import GeodesicFDTD, GaussianCurrent, SimulationConfig

simulation = GeodesicFDTD(
    SimulationConfig(subdivision=2, radial_cells=24),
    source=GaussianCurrent(carrier_frequency_hz=20.0),
)
simulation.step(1000)
print(simulation.diagnostics())

Documentation

Development

uv run --extra test --extra visualization --extra pytorch pytest -q

Verification workflows are kept outside the distributed runtime package and run from a source checkout. The linked verification reports contain their commands, acceptance criteria, and current results.

References

  1. D. A. Randall et al., “Climate Modeling with Spherical Geodesic Grids,” Computing in Science & Engineering, 4(5), 32–41, 2002.
  2. J. J. Simpson and A. Taflove, “Three-dimensional FDTD modeling of impulsive ELF propagation about the entire Earth-sphere,” IEEE TAP, 52(2), 443–451, 2004.
  3. J. J. Simpson, R. P. Heikes, and A. Taflove, “FDTD modeling of a novel ELF radar for major oil deposits using a three-dimensional geodesic grid of the Earth-ionosphere waveguide,” IEEE TAP, 54(6), 1734–1741, 2006.
  4. A. Taflove and S. C. Hagness, Computational Electrodynamics: The Finite-Difference Time-Domain Method, 3rd ed., Chapter 3, 2005.

License

Copyright 2026 Kyungwon Chun.

Licensed under the Apache License 2.0. See NOTICE for the project copyright notice.

Metadata

Release files for ionosphere-fdtd 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ionosphere-fdtd 0.2.0
File Size Uploaded
ionosphere_fdtd-0.2.0.tar.gz 76.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ionosphere-fdtd 0.2.0
File Interpreter ABI Platform
ionosphere_fdtd-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 139.5 kB

Release files / ionosphere_fdtd-0.2.0.tar.gz

Download URL ionosphere_fdtd-0.2.0.tar.gz
Size 76.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a73f93d1eaf304ce82d1ca2b362e72f006f984523cc2692731436a7e95d89cc0
BLAKE2b-256 checksum
How to use checksums
30ca408d2513d138c79b0dc4d06413655ff4297cc4ca68643e8ab7484e36adb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release files / ionosphere_fdtd-0.2.0-py3-none-any.whl

Download URL ionosphere_fdtd-0.2.0-py3-none-any.whl
Size 62.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a95f1d3da4d79af991a35625faf044bba5352aad8892e8dc211bfae7645579e
BLAKE2b-256 checksum
How to use checksums
de004427c858f4732a4654fce5af13f2fa3652379cbef7f0e566361c0e1cdf02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page