Skip to content
Projects

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]").

an animation of the real-space (x, y) ion positions, from the initial fill to the steady extracted beam.

the two slit electrodes, their potentials, and the two apertures.

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.

the beam’s rms half-width against x across the whole device, time-averaged over a late steady window.

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]').