Strategies¶
Pair potentials can be used in multiple ways in exaStamp. Depending on whether a single specy or multiple species are present in the system, one can use different variants of a pair potential or even mix them. Every pair potential X (where X is lj, buckingham, zbl, ...) provides the following operators:
| Operator | Use |
|---|---|
X_compute_force |
One set of parameters for all atoms |
X_compute_force_symetric |
Same, each pair is computed once and the force is applied to both atoms |
X_multi_force |
One set of parameters per pair of species |
X_rigidmol_force |
Rigid molecules (only for some potentials, see each model page) |
X_plot |
Writes \(r\), \(E(r)\), \(\mathrm{d}E/\mathrm{d}r\) and a finite-difference check of \(\mathrm{d}E/\mathrm{d}r\) to a text file (file, default X.csv), for samples points up to rcut |
Single specy¶
Example: Basic usage of a pair potential
Example: Symmetric variant of a pair potential
Multiple species¶
Example: Multiple species variant of a pair potential
lj_multi_force:
rcut: 8. ang
common_parameters: { epsilon: 0.0 , sigma: 0.0 }
parameters:
- { type_a: Zn , type_b: Zn , rcut: 6.10 ang , parameters: { epsilon: 2.522E-20 J , sigma: 0.244E-09 m } }
- { type_a: Cu , type_b: Zn , rcut: 5.89 ang , parameters: { epsilon: 4.853E-20 J , sigma: 0.236E-09 m } }
compute_force: lj_multi_force
common_parameters is optional: it gives the parameters of the species pairs that are not listed in parameters.
Mixing pair potentials¶
In the presence of multiple types in the simulated sample, the compute_force_pair_multimat operator assigns a different pair potential to each pair of species. Each entry of potentials gives the two species, the potential name (lj, buckingham, exp6, zbl, coul_rf, ... — the same names as the operator prefixes), its cutoff and its parameters. Species pairs that are not listed get a zero potential.
Example: Mixing pair potentials
compute_force_pair_multimat:
potentials:
- { type_a: Si , type_b: Cu , potential: lj , rcut: 5.89 ang , parameters: { epsilon: 1.0 eV , sigma: 2.3 ang } }
- { type_a: Si , type_b: Zn , potential: buckingham , rcut: 7.10 ang , parameters: { A: 1.3 eV , Rho: 1.2 ang , C: 1.5 eV*ang^6 } }
- { type_a: Cu , type_b: Zn , potential: exp6 , rcut: 12.5 ang , parameters: { A: 37111.29 Da*kcal/g , B: 3.46350030 1/ang , C: 484.2991571 Da*kcal*ang^6/g , D: 5.0e-5 Da*kcal/g } }
compute_force: compute_force_pair_multimat
potentials: list, required # { type_a, type_b, potential, rcut, parameters } for each species pair.
ghost: bool, default false # Also compute forces on ghost atoms.
enable_pair_weights: bool, default true # Apply intramolecular pair weights when they exist.
symetric: bool, default false # Not supported: the simulation aborts if true.