Finding lattice constants

Fcc Aluminium

Let’s try to converge the lattice constant with respect to number of plane-waves:

import numpy as np
from ase.build import bulk
from gpaw import GPAW, PW

a0 = 4.04
al = bulk('Al', 'fcc', a=a0)
cell0 = al.cell

for ecut in range(200, 501, 50):
    al.calc = GPAW(mode=PW(ecut),
                   xc='PBE',
                   kpts=(8, 8, 8),
                   basis='dzp',
                   txt=f'Al-{ecut}.txt')
    for eps in np.linspace(-0.02, 0.02, 5):
        al.cell = (1 + eps) * cell0
        al.get_potential_energy()

../../_images/Al_conv_ecut.png

Using a plane-wave cutoff energy of 400 eV, we now check convergence with respect to number of k-points:


al.calc.set(mode=PW(400))
for k in range(4, 17):
    al.calc.set(kpts=(k, k, k),
                txt=f'Al-{k:02}.txt')
    for eps in np.linspace(-0.02, 0.02, 5):
        al.cell = (1 + eps) * cell0
        al.get_potential_energy()
../../_images/Al_conv_k.png

(see also analysis script).