# Crystalline aluminum : testing of many hybrid functionals (variations of the hyb_* input variables),
# as well as downsampling, for HSE06, HSE03, PBE0, PBE0-1/3, B3LYP.
ndtset 25
#ndtset 4
#jdtset 1 3 9 15
#Definition of the k-point grid
ngkpt 3*2 # This is a 2x2x2 FCC grid, based on the primitive vectors
nshiftk 4 shiftk 0.0 0.0 0.0 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0
#k-point downsampling for Fock operator
fockdownsampling 3*2
#nstep 15 # Maximal number of SCF cycles
toldfe 1.0d-8 # Will stop when, twice in a row, the difference
#DATASET 1 PBE (ABINIT - the pseudopotential for Al is with LDA but this does not matter)
ixc1 11
#DATASET 2 PBE (LibXC)
# Gives the same as dataset 1
ixc2 -130101
#DATASET 3 HSE06 (LibXC)
ixc3 -428
#DATASET 4 HSE06 (VASP)
ixc4 -428
hyb_range_fock4 0.105835d0
hyb_range_dft4 0.105835d0 # Since they are identical, only one of hyb_range_dft or hyb_range_fock would have been enough
#DATASET 5 HSE06 (Espresso)
ixc5 -428
hyb_range_fock5 0.106d0
#DATASET 6 HSE03 (LibXC)
ixc6 -427
#DATASET 7 HSE03 (VASP)
ixc7 -427
hyb_range_dft7 0.1587531d0
#DATASET 8 PBE0 (ABINIT)
ixc8 41
#DATASET 9 PBE0 (LIBXC)
# Gives the same as dataset 8
ixc9 -406
#DATASET 10 PBE0-1/3 (ABINIT)
ixc10 42
#DATASET 11 PBE0-1/3 (LIBXC)
# Gives the same as dataset 10
ixc11 -456
#DATASET 12 B3LYP (LIBXC)
ixc12 -402
#DATASET 13 HF (ABINIT)
ixc13 40
######################################################################################
#Now play with the functionals that have tuning hyb_mixing(_sr) or hyb_range_dft or hyb_range_fock parameter
#Play first with HSE06
#DATASET 14 Get HSE03. Fool LibXC by imposing to HSE06 the HSE03 parameters
# So, gives the same as dataset 6
ixc14 -428 # This should be HSE06
hyb_range_fock14 0.106066d0 # But these lines redefine the parameters to the libxc HSE03
hyb_range_dft14 0.188988d0
#DATASET 15 Imposing to HSE06 a screening only at very large distances does NOT give the PBE0 at the same k point grid,
#because in the latter, the Spencer-Alavi trick is used. The present dataset leads to a divergence with the
#inverse square of hyb_range_fock .
ixc15 -428 # This should be HSE06
hyb_range_fock15 0.001d0 # This should transform it to PBE0 in the limit of infinite number of k points
nstep15 22
#DATASET 16 Get PBE. Fool LibXC by imposing to HSE06 an extremely small mixing parameter
# So, gives the same as dataset 1 or 2. DOES NOT WORK, although the difference is at the level of 1.0d-4 !
ixc16 -428 # This should be HSE06
hyb_mixing_sr16 0.00000002d0 # But these lines redefine the parameters to the HF within tolerance
#DATASET 17 Get PBE. Fool LibXC by imposing to HSE06 a very short range screening
# So, gives the same as dataset 8 or 9. DOES NOT WORK, although the difference is at the level of 1.0d-4 !
ixc17 -428 # This should be HSE06
hyb_range_fock17 100.0 # But these lines redefine the parameters to the PBE within tolerance
# (the screening is complete at a very small distance already
#Play a bit with HSE03
#DATASET 18 Get HSE06. Fool LibXC by imposing to HSE03 the HSE06 parameters
# So, gives the same as dataset 3
ixc18 -427 # This should be HSE03
hyb_range_fock18 0.11 # But this redefines the parameters to the libxc HSE06
#Play a bit with PBE0 from ABINIT
#DATASET 19 Get PBE0-1/3. Fool ABINIT by imposing to PBE0 the PBE0-1/3 parameter
# So, gives the same as dataset 10 or 11
ixc19 41
hyb_mixing19 1.0/3.0
#DATASET 20 Get exact exchange + PBE correlation. Fool ABINIT by imposing to PBE0 the HF parameter
# Might be compared to dataset 13, although the correlation is now present.
# Comparison with nline=0=nstep shows X from DFT is indeed set to zero.
ixc20 41
hyb_mixing20 0.99999998d0
#DATASET 21 Get PBE. Fool ABINIT by imposing to PBE0 the PBE parameter
# So, gives the same as dataset 1 or 2
ixc21 41
hyb_mixing21 0.0d0
#Play a bit with PBE0 from LibXC
#DATASET 22 Get PBE0-1/3. Fool ABINIT by imposing to PBE0 the PBE0-1/3 parameter
# So, gives the same as dataset 10 or 11
ixc22 -406
hyb_mixing22 1.0/3.0
#DATASET 23 Get exact exchange + PBE correlation. Fool ABINIT by imposing to PBE0 the HF parameter
# So, gives the same as dataset 20
ixc23 -406
hyb_mixing23 1.0d0
#DATASET 24 Get PBE. Fool ABINIT by imposing to PBE0 the PBE parameter
# So, gives the same as dataset 1 or 2
ixc24 -406
hyb_mixing24 0.0d0
#Play a bit with PBE0-1/3 from ABINIT
#DATASET 25 Get PBE0. Fool ABINIT by imposing to PBE0-1/3 the PBE0 parameter
# So, gives the same as dataset 8 or 9
ixc25 41
hyb_mixing25 0.25d0
#
getwfk1 0
getwfk 1
#Definition of occupation numbers
occopt 7
tsmear 0.04
#Definition of the unit cell
acell 3*7.60 # This is equivalent to 7.60 7.60 7.60
rprim 0.0 0.5 0.5 # FCC primitive vectors (to be scaled by acell)
0.5 0.0 0.5
0.5 0.5 0.0
#Definition of the atom types
ntypat 1 # There is only one type of atom
znucl 13 # The keyword "znucl" refers to the atomic number of the
# possible type(s) of atom. The pseudopotential(s)
# mentioned in the "files" file must correspond
# to the type(s) of atom. Here, the only type is Aluminum
#Definition of the atoms
natom 1 # There is only one atom per cell
typat 1 # This atom is of type 1, that is, Aluminum
xred # This keyword indicate that the location of the atoms
# will follow, one triplet of number for each atom
0.0 0.0 0.0 # Triplet giving the REDUCED coordinate of atom 1.
#Definition of the planewave basis set
ecut 6.0 # Maximal kinetic energy cut-off, in Hartree
## After modifying the following section, one might need to regenerate the pickle database with runtests.py -r
#%%
#%% [setup]
#%% executable = abinit
#%% [files]
#%% files_to_test =
#%% t72.out, tolnlines= 1, tolabs= 4.0e-10, tolrel= 2.0e-04, fld_options = -easy
#%% psp_files = 13al.pspgth
#%% [paral_info]
#%% max_nprocs = 4
#%% [extra_info]
#%% authors = X. Gonze
#%% keywords =
#%% description =
#%% Crystalline aluminum, primitive cell. Test of downsampling for HSE06, PBE0, HSE03.
#%% 2x2x2 with 4 shifts for the k point grid in the FBZ
#%% 1x1x1 with 4 shifts for the k point grid for the Fock operator in the FBZ
#%% Testing of many hybrid functionals (variations of the hyb_* input variables),
#%% Tests were performed with a k-point grid 16x16x16 (without additional shift),
#%% to try to recover the nice behaviour of the HSE03 with down sampling
#%% shown in Marsman et al JPCM 20, 064201 (2008), Fig. 1 (there, the reference was 24x24x24)
#%% In all the cases (HSE03 libxc, HSE03 VASP, HSE06 - even clearing the issue with the definition of HSE03 dataset 4&5)
#%% the downsampling does NOT perform well ...
#%%