-
Notifications
You must be signed in to change notification settings - Fork 15
Home
RustBCA is a Binary Collision Approximation (BCA) code for ion-material interactions, written in Rust! Please see the sidebar for links to other pages on the Wiki. Most important being the pages describing how to install RustBCA, the input file format, and the output file formats. If you are interested in using the RustBCA library to add ion-material interactions to a plasma simulation, see the pages describing bindings for C/C++, Fortran, and Python.
BCA codes are valid for incident ion energies between approximately 10 eV to several GeV. By discretizing the collision cascade into a sequence of binary collisions, BCA codes can accurately and efficiently model reflection, implantation, sputtering, transmission, and displacement damage. rustBCA models the material amorphously, and cannot capture phenomena such as ion channeling. BCA codes are zero-temperature and typically do not include temperature effects. RustBCA has been extensively benchmarked against F-TRIDYN (Drobny et al., 2017), (semi-)empirical formulas such as Yamamura and Bohdansky for sputtering yields, Thomas for reflection coefficients, molecular dynamics simulations, and experimental data (where available).
Sputtering yields for various ions on silicon show how RustBCA performs well compared to both F-TRIDYN and experimental data compiled by Wittmaack (2004). Comparison to SRIM shows how that code exhibits anomalous light ion sputtering. Comparison to Yamamura for varying values of the free parameter Q show that it underestimates sputtering yields for high ion-target mass ratios. Reflection coefficients are also shown, but near-zero for M1 > M2.
Reflection coefficients of neon on tungsten, compared to experiment, the empirical Thomas reflection coefficient, and F-TRIDYN simulations.
+Close and Yarwood (1967)
Implantation distributions for a layered target compared to F-TRIDYN.
Trajectories of helium ions incident on a titanium target.
RustBCA has multiple geometry types, including spherical and triangular mesh geometries. In the above example, a boron nitride dust grain is exposed to a hydrogen beam.
- Ion-solid interactions for all combinations of incident ion and target species
- Bindings for including ion-material interactions (sputtering, reflection, and implantation) in codes written in C/C++, Fortran, and Python.
- 0D (infinite, homogeneous target), 1D (finite depth layered target), 2D geometry (triangular-mesh-based inhomogeneous composition), homogeneous spherical geometry, and homogeneous triangular mesh geometry
- Amorphous solid/liquid and gaseous targets, including targets with both gaseous and liquid elements. See the page on gaseous targets for more details.
- Low energy (<25 keV/nucleon) electronic stopping modes include local (Oen-Robinson), nonlocal (Lindhard-Scharff), and equipartition forms; Includes Biersack-Varelas interpolation to extend electronic stopping validity up to ~1 GeV/nucleon
- Biersack-Haggmark high-energy free-flight paths to greatly speed up high-energy simulations by neglecting very small angle scattering
- Includes Kr-C, ZBL, Lenz-Jensen, and Moliere screened-Coulomb potentials; Includes Lennard-Jones 12-6, Lennard-Jones 6.5-6, and Morse attractive-repulsive interaction potentials using the experimental Adaptive Chebyshev Proxy Rootfinder with Adaptive Subdivision. See the page on interaction potentials for more details.
- Includes Newton-Raphson for simple root-finding and optionally includes Adaptive Chebyshev Proxy Rootfinder with Automatic Subdivision and Polynomial root-finding algorithms through the rcpr crate for solving the distance-of-closest-approach problem
- Multiple interaction potentials can be used in a single simulation - for example, the He-W interaction can be specified as a Lennard-Jones 12-6 while the W-W interaction can be specified as a Kr-C, for any number of potentials or species. See the page on interaction potentials for more details.
- Includes Gauss-Mehler quadrature, Gauss-Legendre quadrature, Mendenall-Weller quadrature, and the MAGIC algorithm to calculate the scattering integral
- Full trajectory tracking of ions and target atoms
- Human-readable TOML-formatted input file
- Simple error messages with context to guide the reader towards solutions
- Output of energies and directions of emitted particles (reflected ions and sputtered atoms). See the page on output files for more details.
- Output of final positions of implanted ions. See the page on output files for more details.
- Output of full trajectory tracking for incident ions and target atoms including energy losses and displacements. See the page on output files for more details.
- Distribution output (reflected ion and sputtered atom energy-angle distributions, implantation distributions) activated with the
--features distributions
flag