Benchmark: the performance of semilocal and hybrid density functionals in 3d transition-metal chemistry

Reproducing selected results from https://dx.doi.org/10.1063/1.2162161 using different codes.

Key-value pairs

key description
name Name of the system
relativistic 0 or 1
project Name of the project: “tmfp06d”
xc Exchange-correlation functional

Note that there are additional keys not explained above which are specific to the given calculator.

Results

First extract the data of the given code and insert it into a new database file. Then use the extract.py script to write the csv formatted file using the data from the new database file.

# experimental results
python tmfp06d_exp.py

# nwchem def2-qzvppd
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=nwchem,basis=def2-qzvppd,relativistic=0 -i nwchem_def2-qzvppd.nrel.PBE.db
python extract.py nwchem nwchem_def2-qzvppd.nrel.PBE.db
# nwchem aug-cc-pvqz
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=nwchem,basis=aug-cc-pvqz,relativistic=0 -i nwchem_aug-cc-pvqz.nrel.PBE.db
python extract.py nwchem nwchem_aug-cc-pvqz.nrel.PBE.db
# nwchem aug-cc-pv5z
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=nwchem,basis=aug-cc-pv5z,relativistic=0 -i nwchem_aug-cc-pv5z.nrel.PBE.db
python extract.py nwchem nwchem_aug-cc-pv5z.nrel.PBE.db
# aims tight basis relativistic none
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=aims,basis=tight,relativistic=0 -i aims_tight.nrel.PBE.db
python extract.py aims aims_tight.nrel.PBE.db
# aims tier2 basis relativistic none
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=aims,basis=tier2,relativistic=0 -i aims_tier2.nrel.PBE.db
python extract.py aims aims_tier2.nrel.PBE.db
# gpaw paw 09
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=gpaw,potentials_version=0.9,relativistic=0 -i gpaw_paw09.nrel.PBE.db
python extract.py gpaw gpaw_paw09.nrel.PBE.db

# aims tight basis relativistic atomic_zora scalar
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=aims,basis=tight,relativistic=1 -i aims_tight.srel.PBE.db
python extract.py aims aims_tight.srel.PBE.db
# aims tier2 basis relativistic atomic_zora scalar
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=aims,basis=tier2,relativistic=1 -i aims_tier2.srel.PBE.db
python extract.py aims aims_tier2.srel.PBE.db
# espresso pslib_0.3.1
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=espresso,potentials=pslib,relativistic=1 -i espresso_pslib_0.3.1.srel.PBE.db
python extract.py espresso espresso_pslib_0.3.1.srel.PBE.db
# espresso gbrv 1.2
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=espresso,potentials=gbrv,potentials_version=1.2,relativistic=1 -i espresso_gbrv_1.2.srel.PBE.db
python extract.py espresso espresso_gbrv_1.2.srel.PBE.db
# espresso gbrv 1.4
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=espresso,potentials=gbrv,potentials_version=1.4,relativistic=1 -i espresso_gbrv_1.4.srel.PBE.db
python extract.py espresso espresso_gbrv_1.4.srel.PBE.db
# espresso sg15_oncv
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=espresso,potentials=sg15_oncv,relativistic=1 -i espresso_sg15_oncv.srel.PBE.db
python extract.py espresso espresso_sg15_oncv.srel.PBE.db
# gpaw paw 09
ase-db tmfp06d.db project=tmfp06d,xc=PBE,calculator=gpaw,potentials_version=0.9,relativistic=1 -i gpaw_paw09.srel.PBE.db
python extract.py gpaw gpaw_paw09.srel.PBE.db

The systems in this work (many of TM atoms, and TM diatomics) should not be really treated with GGA DFT due to various reasons (see for example http://dx.doi.org/10.1063/1.2723118 or https://dx.doi.org/10.1021/ct2006852). These problems often translate into convergence problems in DFT codes or large scatter of the obtained results. The third step consists of eliminating all systems that show large scatter of results from the set.

# remove all systems that give large scatter of results
for f in *.csv
do
nf=`echo $f | rev | cut -d. -f3- | rev`.remove.db.csv
cp -f $f $nf
# non-relativistic
sed -i '/Ti2/d' $nf
sed -i '/VN/d' $nf
sed -i '/CrH/d' $nf
sed -i '/FeF/d' $nf 
sed -i '/FeO/d' $nf
sed -i '/CoH/d' $nf
sed -i '/NiH/d' $nf
sed -i '/CuH/d' $nf
# scalar-relativistic
sed -i '/MnH/d' $nf
sed -i '/Fe2/d' $nf
sed -i '/CoO/d' $nf
sed -i '/Ni2/d' $nf
# espresso
sed -i '/TiO/d' $nf
sed -i '/Cr2/d' $nf
sed -i '/CrN/d' $nf
sed -i '/Mn2/d' $nf
sed -i '/FeH/d' $nf
# vasp semicore
sed -i '/Sc2/d' $nf
sed -i '/ScN/d' $nf
sed -i '/TiN/d' $nf
sed -i '/V2/d' $nf
sed -i '/CrO/d' $nf
done

The results can be plotted e.g. with https://svn.fysik.dtu.dk/projects/cmr2/trunk/tmfp06d/plot.py

Running the calculations again

Selected scripts used to obtain the results are available at https://svn.fysik.dtu.dk/projects/cmr2/trunk/tmfp06d