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.
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
- User manual
- Installation
- Quick start
- Command-line reference
- Simulation configuration
- Materials and sources
- Backends and performance
- Visualization and output
- Troubleshooting
- Verification: analytic solutions, Simpson–Taflove 2004, and Simpson–Taflove 2006
- Backend benchmarks
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
- D. A. Randall et al., “Climate Modeling with Spherical Geodesic Grids,” Computing in Science & Engineering, 4(5), 32–41, 2002.
- 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.
- 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.
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| ionosphere_fdtd-0.2.0.tar.gz | 76.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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