Lateral interactions energies
Computation of lateral interactions between adsorbed species is a complicated task. Most of empitical potentials such as COMPASS, AMBER, Dreiding, CHARMM are not fitted to reproduce on-surface structures. Surface influence complicates energy lapndscape. It is especially true for metallic surfaces with non-localized electrons. DFT computations may be of utility, but due to long-range surface-mediated interactions in is necessary to conduct computations on very big slabs to avoid interactions between periodic images. For highly symmetric adsoption complexes it is handy to derive pairwise interactions from DFT energies of small slabs with various coverages, but you still need to know how long is the range of interactions and how many non-negligible members are in the hamiltonian.
SuSMoST provides a calc-energies
utility that can be used for straightforward computation of samples energies. Typical usage is the following:
./utils/calc-energies -d <model directory> -c <calculator> <calculator arguments>
Here <model directory> is the directory with samples populated by the make-ac-samples
utility, and <calculator> is one of the following lateral energy calculators:
|
Hard-sphere calculator. Returns |
|
Hyldgaard-Persson potential calculator for surface-mediated long-range oscillating interactions. Also considers dipole-dipole interactions (see CO/Pt(111) example) and hard-sphere repulsions. This is a radially symmetric potential and the distance is computed between centers of mass of adsoption complexes. |
|
GPAW calculator from |
|
Quantum Espresso calculator from |
Also you can use your own calculator providing special Python script that defines function named calc_energy() with the following alguments:
def calc_energy(atoms, args):
...
return atoms_energy
Here atoms
is an ASE’s Atoms object that contains a sample to be calculated. args
contains command line
arguments of the calc-energies
utility, they can be either ignored or used at user’s discretion.
The function should return energy (free or enthalpy) of the atoms
object. To use the custom calculator script, calc-energies
should be invoked in this way:
./utils/calc-energies -d <model directory> -S custom_script.py
QE
and GPAW
calculators work the same way using calculators/dft.py
script. The file calculators/simple_gpaw_calculator.py
is an example of the simplest custom calculator script.
Command line arguments of calc-energies
can be used to configure calculators.
Arguments for HSPH
calculator
|
Specify hard-sphere radii for adsorbate atoms. Should be done in element-wise manner. For example |
Arguments for HP
calculator
|
Fermi energy parameter \(\epsilon_F\) in Hyldgaard-Persson potential. Default value is 0.0, than completely disables this kind of interactions. This parameter is the same for all adsoption complexes. |
|
In-surface Fermi wavevector \(q_F\) in Hyldgaard-Persson potential. Default value is 0.2. This parameter is the same for all adsoption complexes. |
|
Fermi-level phase shift \(d_F\) in Hyldgaard-Persson potential. Default value is 0.0. This parameter is the same for all adsoption complexes. |
|
Dipole moment for dipole-dipole interactions. It is considered by HP calculator along with Hyldgaard-Persson potential as the following addition: \(\frac{\mu_1 \mu_2}{r^3}\). Please, note that Coulomb constant is not included. This parameter should be specified for each adsorption complex. For example |
HP calculator also respects HSPS parameters.
Example of energy calculation for a CO/Pt(111) model with two types of adsorption complexes (ontop and bridge):
./utils/calc-energies -c HP -d CO-Pt111-bridge --hsph-r O=1.3 --HP-mu ontop=0.4 bridge=-0.4
Here ``--HP-eps`` is taken by default to be zero, so long-range interactions are ignored. ``--hsph-r O=1.3`` argument forbids too close allocation of adsorbate, that otherwise could happen due to dipole-dipole attraction between atop and bridge adsoption complexes.
Arguments for GPAW
and QE
calculators
These calculator are both based on the Density Functional Theory, so they share most of their arguments. Unlike HP and HSPH, these calculators are able to do geometric relaxation of samples. If some particular sample is unstable and geometric relaxation causes too large distortion of adsoption complexes then the sample is considered forbidden and its energy is returned to be inf
.
|
Local optimizer for structure relaxation or No if relaxation should be skipped. default=BFGS Relaxed structures are saved in subdirectory |
|
Perturbation of atoms before relaxation to avoid stucking on saddle points. default=0.01 |
|
Maximum force for relaxation stopping criterion |
|
Maximum atom shift on relaxation. Larger shifts considered as infinite repulsion |
|
Density mixing coefficient for DFT calculators: larger - faster, smaller - more stable. default=0.01 |
|
XC functional (LDA, PBE, …) |
|
Cut-off kinetic energy for planewave basis [eV], default=400. |
|
Smearing width [eV], default=0.1. |
Of course, these set of arguments do not exhaust all parameters of DFT computations, so feel free to modify the calculator script calculators/dft.py
for advanced tuning of DFT calculators.