Ion extraction through an aperture, by the tree code plus boundary-integral electrodes.
A two-slit extraction system, the 2D analogue of the plasma/extractor electrode pair used to pull an ion beam out of a plasma source (as in picnic’s electrode setups): a grounded “plasma electrode” with a narrow aperture, a gap, then an “extractor electrode” at a large negative bias with a wider aperture. Each electrode is a simgeometry Aperture2D (two plates of finite thickness), panelled by :func:tree_d_3d.conductors_from_shape with panels graded toward the aperture tips, and its contains_points tells which ions hit a plate. Ions are continuously supplied from a small reservoir pressed against the plasma-electrode aperture (representing the plasma meniscus) and are pushed by the combined field of the two electrodes (:class:tree_d_3d.BoundaryIntegralElectrodes, re-solved every step for the electrodes’ response to the current ion cloud) and of the other ions (:class:tree_d_3d.FlatQuadtree’s Barnes-Hut tree walk, log kernel). An ion that is collected past the extractor or strikes a plate is immediately re-injected at the reservoir, so the simulation runs at a fixed particle count and reaches a steady extracted beam rather than draining a finite source.
The beam’s own space charge matters here just as it does in a real source: too little and the beam threads both apertures almost losslessly; enough of it and the self-repulsion flares the beam out faster than the extractor aperture can accept, intercepting a growing fraction of it on the extractor plate — the extraction analogue of a space-charge-limited diode, without needing a 1D planar approximation.
Source: examples/ion_extraction.py. Run it yourself with python examples/ion_extraction.py [--output examples/output] [--quick] (needs pip install "tree-d-3d[examples]").
Animations
Section titled “Animations”Loading interactive figure…
an animation of the real-space (x, y) ion positions, from the initial fill to the steady extracted beam.
Figures
Section titled “Figures”Loading interactive figure…
the two slit electrodes, their potentials, and the two apertures.
Loading interactive figure…
a steady-state snapshot of ion positions with the electrodes drawn in, showing the beam narrow through the plasma-electrode aperture and spread again toward the extractor.
Loading interactive figure…
the beam’s rms half-width against x across the whole device, time-averaged over a late steady window.
Loading interactive figure…
the fraction of ions that make it past the extractor against the macroparticle charge (the simulation’s space-charge “knob”) — transmission falls as the beam’s own space charge grows, the extraction analogue of a space-charge-limited diode.
--quick uses fewer particles, panels and steps (well under a minute instead of a few minutes); --smoke is the tiny configuration the test suite runs. Needs Plotly (pip install 'tree-d-3d[examples]').