47,000× faster electron emission: what we built for a client, and how it compares to GETELEC
A client needed to compute electron emission from metal nanotips across millions of
field, geometry and temperature combinations. The reference tool (GETELEC) took about 650 ms per point for current density plus Nottingham heat. We built spaceemit in Rust: 17 µs per point, agreeing with GETELEC to 0.0007 % (median) in current density.
spaceemit J(F) curve, but electron counts are not to scale.
The problem
Cold field emission, thermionic emission and everything between them: when a metal tip sits in a strong electric field, electrons tunnel out through the surface barrier. The current density J and the Nottingham heat PN (the energy the emission carries away or deposits) depend on the local field, tip radius, work function and temperature, and the relationship is highly non-linear. Coupled simulations of a heating tip need that answer for every surface atom at every coupling step. At 650 ms per point, that is out of reach.
What we built
spaceemit is a Rust library and HTTP service that computes J, PN and
energy spectra with numerically exact transmission through the barrier (no analytic
shortcut such as Murphy–Good). It was written clean-room: its behaviour comes from the
published physics and black-box reference data, never from another program's source. It
sits inside the same engine family as our molecular dynamics code, spacemd, and
the coupled nanotip simulation spacetip.
Benchmarks
We compared spaceemit 0.2.0 against the 2026 Python/numba edition of
GETELEC
(S. Barranco Cárceles et al.) on 2,456 metal emission points, on one Apple M4 Max with 16
threads, on 5 October 2026.
| Workload | GETELEC | spaceemit | Speed-up |
|---|---|---|---|
| One point, 1 thread (median of 40) | 650 ms | 17 µs | ~38,000× |
| One point, GETELEC default threading | 372 ms | 17 µs | ~22,000× |
| 2,456 points, all cores | 224 s | 4.7 ms | ~47,000× |
| 106 points, all cores (extrapolated) | ~25 h | 1.9 s | ~47,000× |
Do the answers match?
Speed means nothing if the physics drifts. Over the 2,199 points with J ≥ 10−20 A/nm², the median |ΔJ| between the two programs is 0.0007 % (90th percentile 0.003 %, worst case 0.4 %), and the median |ΔPN| is 0.003 %. The sign of the Nottingham heat agrees at every point across the field, intermediate and thermionic regimes.
Fair-comparison notes. GETELEC was run with the settings shipped in its
own examples and was not tuned; coarser grids would be faster and less accurate. GETELEC
solves a more general problem (including semiconductor emitters, which we did not
compare), and its timings are in-process after JIT warm-up. Both programs agree closely
with each other, and both differ from an older reference data set by the same median
1.5 %. We are not claiming that GETELEC is badly written; spaceemit is a
purpose-built solver for one problem. The batch figure compares 8 GETELEC processes with 16 spaceemit threads; the single-thread figure is ~38,000×. Method and raw data are available on request.
Why it matters
A solver that takes microseconds changes what you can do: a live viewer where you drag the
applied field and watch a copper tip heat up, parameter sweeps over millions of points in
seconds, or fitting measured I–V curves interactively. That is what the
spacetip coupled simulation does: molecular dynamics, a field solver and
emission physics in one loop.
Try it
- Binaries and crates: published on the SpaceCorps registry.
- Overview: Space3d-Molecular.
- License: PolyForm Shield 1.0.0: free for any use, commercial included, except building a competing product.
Need custom scientific software?
We build fast, validated simulation and physics tools to order, in Rust. Get in touch.