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

Marco Vanin mvanin at fysik.dtu.dk
Wed Sep 16 16:10:47 CEST 2009


Hi Aleksander,

the issue is, as Thomas said, that the reference energy for a vdw-DF 
functional is not directly comparable to other functionals. This is 
because we don't use a setup (pseudopotential) explicitly generated with 
the vdw-DF functional, so we don't have the "vdw-DF atom" reference 
energy. If you compare energy differences by calculating the constituent 
within the vdw-DF you should get meaningful results.

Best Regards,
 Marco

Thomas Bligaard wrote:
> Hi Aleksander,
>
> I think there is not necessarily anything wrong - the vdW-functional 
> can contain an (essentially) arbitrary constant. The energies only 
> make sense if you look at energy differences between two systems 
> containing the same number of each kind of atom (e.g. PtO - 1/2O2 - Pt).
>
> Best wishes,
>
> Thomas
>
>
> Dawid, A. wrote:
>> 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
>>
>>
>> _______________________________________________
>> ase-users mailing list
>> ase-users at listserv.fysik.dtu.dk
>> https://listserv.fysik.dtu.dk/mailman/listinfo/ase-users
>
>

-- 
Marco Vanin
PhD Student 
CAMD, Department of Physics, Technical University of Denmark
Room 259, Building 307, DTU, DK-2800 Kongens Lyngby, Denmark
E-mail: mvanin at fysik.dtu.dk - Phone: +45 4525 3119




More information about the ase-users mailing list