[ase-users] vdW functional in GPAW program Pt-O dimer

Dawid, A. A.Dawid at tue.nl
Wed Sep 16 14:19:36 CEST 2009


Hi all GPAW-users

I have run very simple script to calculate the Van der Waals correction in non-self consistent mode.

from ase import *
from gpaw import GPAW
from gpaw.vdw import FFTVDWFunctional

a = 6.  # Size of unit cell (Angstrom)
c = a / 2

# Pt-O molecule:
d = 2.1  # Bond length
molecule = Atoms([Atom('O', (c - d / 2, c, c),magmom=1),
                  Atom('Pt', (c + d / 2, c, c))],
                       cell=(a, a, a), pbc=True)

calc = GPAW(nbands=18, h=0.2, xc='PBE', kpts=(8,6,1),
             spinpol=True,
             convergence={'energy': 100,
                          'density': 100,
                          'eigenstates': 1.0e-9,
                          'bands': 'occupied'})#, txt='CO.txt')

vdw = FFTVDWFunctional(nspins=2,
                           Nalpha=20, lambd=1.2,
                           rcut=125.0, Nr=2048,                         
                           size=None)

molecule.set_calculator(calc)
e2 = molecule.get_potential_energy()
calc.write('PtO.gpw')
vdW_dif = calc.get_xc_difference(vdw)
vdW_energy = e2 + vdW_dif

print 'PtO molecule energy:    %5.5f eV' % e2
print 'vdW oxygen molecule energy: %5.5f eV' % vdW_energy
print 'vdW dif energy: %5.5f eV' % vdW_dif

The result:

PtO molecule energy:    -7.19200 eV
vdW oxygen molecule energy: -116.53280 eV
vdW dif energy: -109.34080 eV

This energy seams to be quite huge ;-). Have you any idea what I do wrong with that ?

Best regards
Aleksander Dawid

e-mail: A.Dawid at tue.nl
Technical University Eindhoven





More information about the ase-users mailing list