[ase-users] Using SIESTA calculator with dispersion

Michal Krompiec michal.krompiec at gmail.com
Wed Nov 27 20:17:40 CET 2019


Dear Sarah,
I think the easiest way to use Grimme's dispersion correction (and I'd
recommend D4, especially for metal-containing systems) is described
here: https://github.com/dftd4/dftd4/tree/master/python
The idea is that you first create a calculator with your DFT code
(WITHOUT dispersion correction), and then wrap it in the D4 calculator
- just give the name of the XC functional to D4 to select the correct
parameters, as in the following example (for GPAW) copied from the
aforementioned webpage:
from ase.io import read
from gpaw import GPAW, PW
from dftd4 import D4_model
mol = read('POSCAR')
calc = D4_model(xc='PBE', calc=GPAW(xc='PBE', mode=PW(300), txt='gpaw.out'))
mol.set_calculator(calc)
energy = mol.get_potential_energy()
forces = mol.get_forces()

Note that you need to install dftd4 separately.
Best,
Michal Krompiec
Merck KGaA and University of Southampton, UK

On Wed, 27 Nov 2019 at 18:15, Sarah Allec via ase-users
<ase-users at listserv.fysik.dtu.dk> wrote:
>
> Hello,
>
> I would like to use SIESTA with dispersion (specifically, the Grimme potential), but I am unsure how to incorporate this into the fdf_arguments dictionary for the SIESTA calculator. In an fdf file, this section looks like this:
>
> MM.UnitsDistance Ang
> MM.UnitsEnergy    eV
> MM.Grimme.S6     0.75 # Grimme-paper for PBE (correct for your functional)
> MM.Grimme.D     20.   # Grimme-paper (correct for your functional)
> %block MM.Potentials
>   1   1 Grimme    111.94      3.124 # Zn, 10.1002/jcc.20495
>   1   2 Grimme     76.69      3.201 # Zn / Cl
>   1   3 Grimme     12.74      2.563 # Zn / H
>   1   4 Grimme     28.50      2.904 # Zn / O
>   2   2 Grimme     52.55      3.278 # Cl, 10.1002/jcc.20495
>   2   3 Grimme      8.73      2.640 # Cl / H
>   2   4 Grimme     19.53      2.981 # Cl / O
>   3   3 Grimme      1.45      2.002 # H, 10.1002/jcc.20495
>   3   4 Grimme      3.24      2.343 # H / O
>   4   4 Grimme      7.26      2.684 # O, 10.1002/jcc.20495
> %endblock MM.Potentials
>
> Is it possible to do this in ASE? If so, what is the correct syntax? And if not, is there another type of dispersion I can use with SIESTA?
>
> Thank you in advance,
> Sarah Allec
> Graduate Student
> Computational Materials Group
> Department of Materials Science & Engineering
> University of California Riverside
> Email: sarah.allec at email.ucr.edu
> Website: https://sarah-allec.com/
> _______________________________________________
> ase-users mailing list
> ase-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/ase-users


More information about the ase-users mailing list