Embedded-Atom Model (EAM)¶
In the Embedded-Atom Model, the energy of atom \(i\) is the energy needed to embed it in the electron density created by its neighbors, plus a pair term:
where \(F\) is the embedding function, \(\rho(r)\) the electron density contributed by a neighbor at distance \(r\), and \(\phi(r)\) the pair interaction. EAM models differ by the choice of \(F\), \(\rho\) and \(\phi\):
| Model | Operator prefix | Species | GPU | Parameters |
|---|---|---|---|---|
| EAM alloy (tabulated, setfl file) | eam_alloy |
several | yes | file |
| Johnson (Zhou–Johnson–Wadley form) | johnson |
one | yes | analytic |
| Ravelo | ravelo |
one | no | analytic + tabulated \(F\) |
| Sutton–Chen | sutton_chen |
one | no | analytic |
| VNIITF | vniitf |
one | yes | analytic |
| Tabulated EAM | tabeam |
one | no | tabulated |
Single-species models¶
Analytic and tabulated single-species models (johnson, ravelo, sutton_chen, vniitf, tabeam) all provide the same four operators. Below, X stands for the model prefix.
| Operator | Description |
|---|---|
X_force |
Complete EAM computation: embedding term on owned and ghost atoms, then forces and energies. |
X_emb |
First pass only: embedding term on owned atoms. |
X_force_reuse_emb |
Second pass only: forces and energies, using an embedding term computed before. |
X_init |
Reads the parameters once (typically in init_parameters), without computing anything. |
rcut: float, required # Cutoff radius of the potential.
parameters: map, required # Model parameters, see each model page.
X_force computes the embedding term on ghost atoms too, so that no communication is needed between the two passes. It therefore raises ghost_dist_max to twice the cutoff. To keep a ghost layer of one cutoff only, split the computation and exchange the embedding term (field rho_dEmb) between the two passes:
compute_force:
- johnson_emb
- ghost_update_opt: { opt_fields: [ "rho_dEmb" ] }
- johnson_force_reuse_emb
with the same rcut and parameters given to johnson_emb and johnson_force_reuse_emb (for instance with a YAML anchor).
Multi-species model¶
eam_alloy handles several species and splits the computation into passes that can be called separately. Its options are described on its page.