monteCarloDiffusivityCalculation¶
- monteCarloDiffusivityCalculation(defect_lists, transition_path_lists, start_temperature=None, end_temperature=None, delta_temperature=None, charge=None, number_of_samples=None, number_of_jumps=None, discard_faulty=True, random_seed=None, amorphous_material=None)¶
Perform Atomistic Kinetic Monte Carlo simulations on a list of defects and transition paths at different temperatures with the objective of extracting a diffusivity Arrhenius plot.
- Parameters:
defect_lists (sequence of
InterstitialList
|SplitInterstitialList
|VacancyList
) – A sequence of defect lists.transition_path_lists (sequence of
TransitionPathList
) – A sequence of transition path lists.start_temperature (PhysicalQuantity of type Kelvin) – Starting temperature. Default: 873.15 Kelvin
end_temperature (PhysicalQuantity of type Kelvin) – Ending temperature. Should be different than starting temperature Default: 1173.15 Kelvin
delta_temperature (PhysicalQuantity of type Kelvin) – Interval to increase start_temperature until end_temperature is reached. Default: 50 Kelvin
charge (int) – Charge state to be simulated. Must be between -4 and +4 included. Default: 0
number_of_samples (int) – Number of Monte Carlo samples to average. Bigger number of samples provides more accuracy (better statistics) at the cost of more CPU time. Default: 50
number_of_jumps (int) – Number of random walks (migration jumps) per sample. Bigger number of jumps provides better accuracy at the cost of more CPU time, although is usually better to increase the number of samples than the number of jumps. Default: 500
discard_faulty (bool) – Whether the faulty NEB calculations are to be discarded. Default: True
random_seed (int) – Initial seed used for the pseudo-random number generator. Change it to do statistical analysis. Default: 1
amorphous_material (bool) – Whether the material is amorphous and diffusivity calculation has to be adapted to amorphous materials. Default: False
- Returns:
A tuple containing the prefactor and activation energy.
- Return type:
Tuple of PhysicalQuantity of type frequency, PhysicalQuantity of type energy.
Example¶
An example of use is:
from SMW import *
defects = nlread("aSi-interstitials.hdf5", InterstitialList)[-1]
nebs = nlread("C-aSi-nebs.hdf5", TransitionPathList)[-1]
diffusivity = monteCarloDiffusivityCalculation(
[defects],
[nebs],
number_of_samples=200,
number_of_jumps=1000,
amorphous_material=True,
discard_faulty=False,
)
print("Diffusivity is", diffusivity)
Taken from the full example at Diffusivity calculation in amorphous materials.