Cohesive energy of bulk FCC PtΒΆ

When calculating cohesive energies, one will need to calculate the energy of isolated atoms. For some atoms it can be difficult to converge to the correct magnetic state. For those difficult cases it often helps to use Direct Minimization Methods instead of the default Davidson eigensolver. Here is an example for Pt:

from ase import Atoms
from ase.build import bulk
from gpaw import GPAW

atom = Atoms('Pt')
atom.center(vacuum=6.0)
atom.calc = GPAW(
    xc='PBE',
    mode={'name': 'pw', 'ecut': 600.0},
    nbands=-2,
    mixer={'backend': 'no-mixing'},
    occupations={'name': 'fixed-uniform'},
    hund=True,
    eigensolver={'name': 'etdm-fdpw', 'converge_unocc': True},
    symmetry='off',
    txt='pt-atom.txt')
e_atom = atom.get_potential_energy()
atom.calc.write('pt-atom.gpw')

bulk = bulk('Pt', 'fcc', a=3.92)
k = 8
bulk.calc = GPAW(
    xc='PBE',
    mode={'name': 'pw', 'ecut': 600.0},
    kpts=(k, k, k),
    txt='pt-bulk.txt')
e_bulk = bulk.get_potential_energy()

e_cohesive = e_atom - e_bulk
print(e_cohesive, 'eV')

One should take a careful look at the pt-atom.txt to check that one has found the correct state. Here is a more thorough analysis:

from gpaw import GPAW
from gpaw.spherical_harmonics import names
from ase.units import Ha

calc = GPAW('pt-atom.gpw')
setup = calc.setups[0]
labels = [f'{n}{"spd"[l]}({names[l][m]})'
          for n, l in zip(setup.n_j, setup.l_j)
          for m in range(2 * l + 1)]

lines = ['#,eig. [eV],occ,character,eig. [eV],occ,character']
for n in range(11):
    line = str(n)
    for spin in [0, 1]:
        kpt = calc.wfs.kpt_qs[0][spin]
        P_i = kpt.P_ani[0][n]
        i = abs(P_i).argmax()
        label = labels
        eig = kpt.eps_n[n] * Ha
        occ = kpt.f_n[n]
        line += f',{eig:.3f},{occ:.1f},{labels[i]}'
    lines.append(line)

# Write csv-file:
with open('pt-atom.csv', 'w') as fd:
    print('\n'.join(lines), file=fd)

This table shows the orbital characters for majority and minority spins:

#

eig. [eV]

occ

character

eig. [eV]

occ

character

0

-57.010

1.0

5p(z)

-55.956

1.0

5p(z)

1

-55.737

1.0

5p(y)

-55.326

1.0

5p(x)

2

-55.737

1.0

5p(x)

-55.326

1.0

5p(y)

3

-7.422

1.0

5d(3z2-r2)

-5.788

1.0

5d(yz)

4

-6.410

1.0

5d(yz)

-5.788

1.0

5d(zx)

5

-6.410

1.0

5d(zx)

-5.230

1.0

5d(x2-y2)

6

-5.939

1.0

5d(xy)

-5.224

1.0

5d(xy)

7

-5.938

1.0

5d(x2-y2)

-5.320

0.0

5d(3z2-r2)

8

-5.784

1.0

6s(1)

-4.834

0.0

6s(1)

9

-0.841

0.0

6p(y)

-0.236

0.0

6p(y)

10

-0.841

0.0

6p(x)

-0.236

0.0

6p(x)