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
+12-7
Original file line number
Diff line number
Diff line change
@@ -2,15 +2,17 @@
2
2
3
3
`RustBCA` is a general-purpose, high-performance code for simulating
4
4
ion-material interactions using the binary collision approximation ([BCA]),
5
-
written in [Rust]!
5
+
written in [Rust]! RustBCA consists of a standalone code and libraries for
6
+
including ion-material interactions in simulations written in C/C++, Python,
7
+
and Fortran.
6
8
7
9
By discretizing the collision cascade into a sequence of binary collisions,
8
10
[BCA] codes can accurately and efficiently model the prompt interaction
9
11
between an energetic ion and a target material.
10
12
This includes reflection, implantation, and transmission of the incident ion,
11
13
as well as sputtering and displacement damage of the target.
12
14
Generally, [BCA] codes are valid for incident ion energies between approximately
13
-
~1 eV/nucleon to ~1 GeV/nucleon.
15
+
~1 eV/nucleon to <1 GeV/nucleon.
14
16
15
17
Check out the `RustBCA`[Wiki] for detailed information, installation
16
18
instructions, use cases, examples, and more. See the RustBCA paper at the
@@ -71,13 +73,13 @@ plt.show()
71
73
The following features are implemented in `rustBCA`:
72
74
73
75
* Ion-material interactions for all combinations of incident ion and target species.
74
-
* Infinite, homogeneous targets (Mesh0D), Layered, finite-depth inhomogeneous targets (Mesh1D) and arbitrary 2D geometry and composition through a triangular mesh (Mesh2D).
76
+
* Infinite, homogeneous targets (Mesh0D), Layered, finite-depth inhomogeneous targets (Mesh1D), arbitrary 2D geometry composition through a triangular mesh (Mesh2D), homogeneous spherical geometry (Sphere) and homogeneous, arbitrary triangular mesh geometry (TriMesh).
75
77
* Amorphous Solid/Liquid targets, Gaseous targets, and targets with both solid/liquid and gaseous elements
76
78
* Low energy (< 25 keV/nucleon) electronic stopping modes including:
77
79
* local (Oen-Robinson),
78
80
* nonlocal (Lindhard-Scharff),
79
81
* and equipartition forms.
80
-
* Biersack-Varelas interpolation is also included for electronic stopping up to ~1 GeV/nucleon.
82
+
* 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.
81
83
* 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).
82
84
* A wide range of interaction potentials are provided, including:
83
85
* the Kr-C, ZBL, Lenz-Jensen, and Moliere universal, screened-Coulomb potentials.
@@ -94,17 +96,20 @@ The following features are implemented in `rustBCA`:
94
96
* or the MAGIC algorithm.
95
97
* Input files use the [TOML] format, making them both human-readable and easily parsable.
96
98
* RustBCA generates user-friendly, context-providing error messages, which help pinpoint the cause of errors and provide suggested fixes to the user.
97
-
* The simulation results are formatted as the ubiquitous `csv` format and include:
99
+
* The simulation results are comma-delimited (`csv` format) and include:
98
100
* the energies and directions of emitted particles (reflected ions and sputtered atoms),
99
101
* the final positions of implanted ions,
100
-
* and full trajectory tracking for both the incident ions and target atoms.
102
+
* full trajectory tracking for both the incident ions and target atoms,
103
+
* and many other parameters such as position of origin of sputtered particles and energy loss along trajectories.
101
104
* 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`.
105
+
* Library functions for modeling ion reflection, implantation, and sputtering in C++/C, Python, and Fortran codes.
102
106
103
107
## Installation
104
108
105
109
Without optional features, `rustBCA` should compile with `cargo` alone on
106
110
Windows, MacOS, and Linux systems.
107
-
[HDF5] has been tested on Windows, but version 1.10.6 must be used.
111
+
112
+
[HDF5] for particle list input has been tested on Windows, but version 1.10.6 must be used.
108
113
[rcpr], the adaptive Chebyshev Proxy Rootfinder with automatic subdivision and
109
114
polynomial rootfinder package for [Rust], has not yet been successfully compiled
0 commit comments