You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-20
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
`RustBCA` is a general-purpose, high-performance code for simulating
4
4
ion-material interactions including sputtering, reflection, and implantation
5
5
using the binary collision approximation ([BCA]), written in [Rust]!
6
-
RustBCA consists of a standalone code and libraries for including
6
+
RustBCA includes a standalone version and libraries for including
7
7
ion-material interactions in simulations written in C/C++, Python,
8
8
and Fortran.
9
9
@@ -13,7 +13,9 @@ between an energetic ion and a target material. This includes reflection,
13
13
implantation, and transmission of the incident ion, as well as sputtering
14
14
and displacement damage of the target. Generally, [BCA] codes can be
15
15
valid for incident ion energies between approximately ~1 eV/nucleon
16
-
to <1 GeV/nucleon.
16
+
to <1 GeV/nucleon. Improvements to RustBCA have expanded the regime
17
+
of validity for some quantities, such as reflection coefficients, below
18
+
1 eV/nucleon.
17
19
18
20
Check out the `RustBCA`[Wiki] for detailed information, installation
19
21
instructions, use cases, examples, and more. See the RustBCA paper at the
@@ -27,6 +29,7 @@ Selected citations of RustBCA as of 5/24/23:
27
29
*[hPIC2: A hardware-accelerated, hybrid particle-in-cell code for dynamic plasma-material interactions](https://doi.org/10.1016/j.cpc.2022.108569), LT Meredith et al. (2023)
28
30
*[Global sensitivity analysis of a coupled multiphysics model to predict surface evolution in fusion plasma–surface interactions](https://doi.org/10.1016/j.commatsci.2023.112229), P. Robbe et al. (2023)
29
31
*[Modeling the effect of nitrogen recycling on the erosion and leakage of tungsten impurities from the SAS-VW divertor in DIII-D during nitrogen gas injection](https://doi.org/10.1016/j.nme.2022.101254), MS Parsons et al. (2023)
32
+
*[Enabling attractive-repulsive potentials in binary-collision-approximation monte-carlo codes for ion-surface interactions](https://doi.org/10.1088/2053-1591/ad1262), J Drobny and D Curreli (2023)
30
33
31
34
## Getting started
32
35
@@ -53,7 +56,7 @@ Type "help", "copyright", "credits" or "license" for more information.
53
56
54
57
For those eager to get started with the standalone code, try running one of the examples in the
55
58
`RustBCA/examples` directory. Note that to automatically manipulate input files and reproduce
56
-
the plots located on the [Wiki], these require several optional, but common,
59
+
the plots located on the [Wiki], these may require some optional
57
60
[Python] packages (`matplotlib`, `numpy`, `scipy`, `shapely`, and `toml`).
58
61
59
62
### H trajectories and collision cascades in a boron nitride dust grain
@@ -103,32 +106,33 @@ plt.show()
103
106
The following features are implemented in `RustBCA`:
104
107
105
108
* Ion-material interactions for all combinations of incident ion and target species.
106
-
* Infinite, homogeneous targets (Mesh0D), Layered, finite-depth inhomogeneous targets (Mesh1D), arbitrary 2D composition through a triangular mesh (Mesh2D), homogeneous spherical geometry (Sphere) and homogeneous 3D triangular mesh geometry (TriMesh).
109
+
* Infinite, homogeneous targets (Mesh0D), Layered, finite-depth inhomogeneous targets (Mesh1D), arbitrary 2D composition through a triangular mesh (Mesh2D), fast homogeneous 2D geometry (Homogeneous2D), homogeneous spherical geometry (Sphere), and homogeneous 3D triangular mesh geometry (TriMesh).
107
110
* Amorphous Solid/Liquid targets, Gaseous targets, and targets with both solid/liquid and gaseous elements
108
111
* Low energy (< 25 keV/nucleon) electronic stopping modes including:
109
112
* local (Oen-Robinson),
110
113
* nonlocal (Lindhard-Scharff),
111
114
* and equipartition
112
-
* Biersack-Varelas interpolation is also included for electronic stopping up to ~1 GeV/nucleon. Note that high energy physics beyond electronic stopping are not included.
113
-
*Optionally, the Biersack-Haggmark treatment of high-energy free-flight paths between collisions can be included to greatly speed up high-energy simulations (i.e., by neglecting very small angle scattering).
115
+
* Biersack-Varelas interpolation is also included for electronic stopping up to ~1 GeV/nucleon. Note that high energy physics beyond electronic stopping are not included, and that Biersack-Varelas may not be as accurate as other methods.
116
+
* Biersack-Haggmark treatment of high-energy free-flight paths between collisions can be included to greatly speed up high-energy simulations (i.e., by neglecting very small angle scattering).
114
117
* A wide range of interaction potentials are provided, including:
115
118
* the Kr-C, ZBL, Lenz-Jensen, and Moliere universal, screened-Coulomb potentials.
116
119
* the Lennard-Jones 12-6 and Morse attractive-repulsive potentials.
117
120
* Solving the distance-of-closest-approach problem is achieved using:
118
-
* the Newton-Raphson method for simple root-finding,
119
-
* or, for attractive-repulsive potentials, an Adaptive Chebyshev Proxy Rootfinder with Automatic Subdivision algorithm and a Polynomial root-finding algorithm are provided through the [rcpr] crate.
121
+
* the Newton-Raphson method for purely repulsive potentials,
122
+
* or, for attractive-repulsive potentials, an Adaptive Chebyshev Proxy Rootfinder with Automatic Subdivision algorithm and a polynomial root-finding algorithm are provided through [rcpr].
120
123
* Multiple interaction potentials can be used in a single simulation for any number of potentials/species.
121
124
* For example, the He-W interaction can be specified using a Lennard-Jones 12-6 potential, while the W-W interaction can be defined using a Kr-C potential.
122
125
* The scattering integral can be calculated using:
123
126
* Gauss-Mehler quadrature,
124
127
* Gauss-Legendre quadrature,
125
128
* Mendenall-Weller quadrature,
126
-
* or the MAGIC algorithm.
129
+
* or the MAGIC algorithm (for certain screened Coulomb potentials only).
127
130
* Input files use the [TOML] format, making them both human-readable and easily parsable.
128
131
* RustBCA generates user-friendly, context-providing error messages, which help pinpoint the cause of errors and provide suggested fixes to the user.
129
132
* The simulation results are comma-delimited (`csv` format) and include:
130
133
* the energies and directions of emitted particles (reflected ions and sputtered atoms),
131
134
* the final positions of implanted ions,
135
+
* displacements,
132
136
* full trajectory tracking for both the incident ions and target atoms,
133
137
* and many other parameters such as position of origin of sputtered particles and energy loss along trajectories.
134
138
* Optionally, the code can produce energy-angle and implantation distributions when built with the `--features distributions` flag and disable space-intensive particle list output with `--features no_list_output`.
@@ -140,11 +144,6 @@ Without optional features, `RustBCA` should compile with `cargo` alone on
140
144
Windows, MacOS, and Linux systems.
141
145
142
146
[HDF5] for particle list input has been tested on Windows, but version 1.10.6 must be used.
143
-
[rcpr], the adaptive Chebyshev Proxy Rootfinder with automatic subdivision and
144
-
polynomial rootfinder package for [Rust], has not yet been successfully compiled
145
-
on Windows.
146
-
However, it can be compiled on the Windows Subsystem for Linux (WSL) and, likely,
147
-
on Ubuntu for Windows or Cygwin.
148
147
149
148
#### Manual Dependences
150
149
@@ -157,7 +156,7 @@ on Ubuntu for Windows or Cygwin.
157
156
#### Optional Dependencies
158
157
159
158
*[HDF5] libraries
160
-
*[rcpr], a CPR and polynomial rootfinder, required for using attractive-repulsive interaction potentials such as Lennard-Jones or Morse. It may require additional software (see below).
159
+
*[rcpr], a CPR and polynomial rootfinder, required for using attractive-repulsive interaction potentials such as Lennard-Jones or Morse.
161
160
* For manipulating input files and running associated scripts, the following are required:
162
161
*[Python] 3.6+
163
162
* The [Python] libraries: `numpy`, `matplotlib`, `toml` (must build from source), `shapely`, and `scipy`.
0 commit comments