matscipy.calculators.eam.average_atom

Functions

average_potential(concentrations, ...[, ...])

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:

\[\begin{split}\phi_{AA}\left(r_{\gamma\delta}\right) &= \sum_{X}^{N_T}\sum_{Y}^{N_T} c_{X}c_{Y} \phi_{XY}\left(r_{\gamma\delta}\right) \quad\text{(pair potential)}, \\ U_{A}\left(\rho_\gamma\right) &= \sum_{X}^{N_T}c_{X}U_{X}\left(\rho_\gamma\right) \quad\text{(embedding energy)}, \\ g_A\left(r_{\gamma\delta}\right) &= \sum_{X}^{N_T}c_X g_X\left(r_{\gamma\delta}\right)\quad\text{(electron density)},\;\text{and}\\ m_A &= \sum_{X}^{N_T}c_X m_X\quad\text{(mass)}.\end{split}\]

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:
  • \(N\) Number of atoms

  • \(N_T\) Number of elements

  • \(r_{\nu\mu{}}\) Pair distance of atoms \(\nu\) and \(\mu\)

  • \(\phi_{\nu\mu}(r_{\nu\mu{}})\) Pair potential energy of atoms \(\nu\) and \(\mu\)

  • \(\rho_{\nu}\) Total electron density of atom \(\nu\)

  • \(U_\nu(\rho_nu)\) Embedding energy of atom \(\nu\)

  • \(g_{\delta}\left(r_{\gamma\delta}\right) \equiv g_{\gamma\delta}\) Contribution from atom \(\delta\) to \(\rho_\gamma\)

  • \(m_\nu\) mass of atom \(\nu\)