matscipy.calculators.eam.average_atom
Functions
|
Generate Average-atom potential |
- matscipy.calculators.eam.average_atom.average_potential(concentrations, parameters, F, f, rep, kind='eam/alloy', avg_atom='A', atomic_number=999, crystal_structure='unknown', lattice_constant=1.0)
Generate Average-atom potential
The Average-atom (A-atom) potential is a mean-field approximation for random alloys, see Ref. `1`_. The purpose is to replace the true elements by a single fictious element, the A-atom. A configuration of A-atoms yields approximately the same potential energy as the corresponding random alloy configuration. Other average material properties, e.g. the elastic constants, are reproduced as well. For a full derivation, see Ref. 1.
The A-atom potential has standard EAM form, i.e. it can be tabulated just like any other EAM potential. The potential functions are simply the concentration-weighted averages of the pure element functions:
Note
Currently, only eam/alloy-style potentials can be averaged. The extension to eam/fs should be straightforward, however.
- Parameters:
concentrations (array_like) – concentrations of the elements in the A-atom
parameters (EAMParameters) – EAM potential parameters
F (array_like) – tabulated embedding energy functionals
f (array_like) – tabulated electron density functions
rep (array_like) – tabulated pair potential energy functions
- Returns:
parameters (EAMParameters) – EAM potential parameters
new_F (array_like) – tabulated embedding energy functionals, including A-atom functional
new_f (array_like) – tabulated electron density functions, including A-atom function(s)
new_rep (array_like) – tabulated pair potential energy functions, including pairs with A-atom
Examples
>>> from matscipy.calculators.eam import io, average_atom >>> source, parameters, F, f, rep = io.read_eam( >>> "ZrCu.onecolumn.eam.alloy" >>> ) >>> concentrations = [0.5, 0.5] >>> (new_parameters, new_F, new_f, new_rep) = average_atom.average_potential( >>> concentrations, parameters, F, f, rep >>> ) >>> composition = " ".join( >>> [str(c * 100.0) + "% {0},".format(e) for c, e in zip(concentrations, parameters.symbols)] >>> ) >>> composition = composition.rstrip(",") >>> source += ", averaged for composition {0}".format(composition) >>> io.write_eam( >>> source, >>> new_parameters, >>> new_F, >>> new_f, >>> new_rep, >>> "ZrCu.onecolumn.averaged.eam.alloy", >>> kind="eam/alloy", >>> )
Read an EAM potential table for two elements in eam/alloy format, and create a new table with additional A-atom functions for the equicomposition alloy.
References
[1]Varvenne, C., Luque, A., Nöhring, W. G. & Curtin, W. A. Average-atom interatomic potential for random alloys. Physical Review B 93, 104201 (2016).
Notes
- Notation:
Number of atoms Number of elements Pair distance of atoms and Pair potential energy of atoms and Total electron density of atom Embedding energy of atom Contribution from atom to mass of atom