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
Simulate movement of vacancies $n_v$ and interstitials $n_i$ in an amorphous solid (Si) using kinetic Monte Carlo. A Gaussian spherically symmetric initial distribution of vacancies and interstitials is generated, after which movement of defects is simulated by random jumps to nearest neighbour positions $r_{\text{nn}}$. If a vacancy and interstitial jump within a specified recombination distance $r_{\text{rc}}$, they disappear.
The vacancies and interstitials have a jump rate determined by
$$
\text{JR}(T) = w \exp\left(\frac{-E_m}{k_B T}\right),
$$
at temperature $T$ with migration activation energy $E_m$. The transition that occurs is chosen from the cumulative rate
$$
\Gamma_i = \sum_{j=1}^i \text{JR}_j(T)
$$
using the condition $U \Gamma_{\text{tot}} \leq \Gamma_i,$ where $U \sim \mathcal{U}(0, 1)$ is a uniformly distributed random number. Time step is determined from the total transition rate $\Gamma_{\text{tot}}=n_v+n_i$ as
$$
\Delta t = \frac{-\ln(U)}{\Gamma_{\text{tot}}}.
$$
Compilation and running
Compilation:
make
Usage:
./vikmc <number of vacancies> <number of interstitials> <temperature (K)> <recombination distance (Å)> <simulation time (fs)> <write frequency 1/step> <number of runs>
Example: ./vikmc 150 150 1500 4 1.e9 1000 3
Generate all results/plots:
./run.sh
Plotting
The vi.xyz movie file contains position data of vacancies (type 0) and interstitials (type 1). This can be visualized with Ovito.