mirror of https://github.com/abinit/abinit.git
160 lines
8.1 KiB
Plaintext
160 lines
8.1 KiB
Plaintext
# Linear and nonlinear response calculation for AlP
|
|
# Perturbations: electric fields & atomic displacements
|
|
# Use of 'full DFPT' method for third derivatives,
|
|
# so we need to solve Second Order Sternheimer equation
|
|
|
|
ndtset 7
|
|
|
|
#DATASET1 : scf calculation: GS WF in the IBZ
|
|
#********************************************
|
|
prtden1 1 # save density on disk, will be used in other datasets
|
|
prtwf1 1 # save WF on disk, will be used in other datasets
|
|
kptopt1 1 # use Irreducible Brillouin Zone (all symmetry taken into account)
|
|
toldfe1 1.0d-12 # SCF convergence criteria (could be tolwfr or tolvrs)
|
|
|
|
#DATASET2 : non scf calculation: GS WF in half BZ
|
|
#*****************************************************
|
|
getden2 1 # use density from dataset 1
|
|
kptopt2 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
|
|
getwfk2 1 # use GS WF from dataset 1 (as input)
|
|
iscf2 -2 # non-self-consistent calculation
|
|
tolwfr2 1.0d-22 # convergence criteria on WF, need high precision for response
|
|
prtwf2 1 # save WF on disk, will be used in other datasets
|
|
|
|
#DATASET3 : derivative of WF with respect to k points (d/dk)
|
|
#**********************************************************
|
|
getwfk3 2 # use GS WF from dataset 2
|
|
kptopt3 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
|
|
rfelfd3 2 # compute 1st-order WF derivatives (d/dk)
|
|
tolwfr3 1.0d-22 # convergence criteria on 1st-order WF
|
|
prtwf3 1 # save 1st-order WF on disk, will be used in other datasets
|
|
|
|
#DATASET4 : response functions (2nd derivatives of E)
|
|
# and corresponding 1st order WF derivatives
|
|
# phonons, electric fields, and strains are all done
|
|
#**************************************************************
|
|
getwfk4 2 # use GS WF from dataset 2
|
|
kptopt4 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
|
|
getddk4 3 # use ddk WF from dataset 3 (needed for electric field)
|
|
rfphon4 1 # compute 1st-order WF derivatives with respect to atomic displacements...
|
|
rfelfd4 3 # compute 1st-order WF derivatives with respect to electric field
|
|
rfstrs4 3 # compute 1st-order WF derivatives with respect to strains
|
|
tolvrs4 1.0d-12 # SCF convergence criteria (could be tolwfr)
|
|
prepanl4 1 # make sure that response functions are correctly prepared for a non-linear computation
|
|
prtwf4 1 # save 1st-order WF on disk, will be used in other datasets
|
|
prtden4 1 # save 1st-order density on disk, will be used in other datasets
|
|
|
|
# DATASET5 : 2nd order WF derivatives with respect to k-points (d/dkdk)
|
|
#**********************************************************************
|
|
rf2_dkdk5 1 # compute 2nd-order WF derivatives (d/dkdk)
|
|
getwfk5 2 # use GS WF from dataset 2
|
|
kptopt5 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
|
|
getddk5 3 # use 1st-order WF from dataset 3
|
|
prepanl5 1 # compute only needed directions for the non-linear computation
|
|
tolwfr5 1.0d-22 # convergence criteria on 2nd-order WF
|
|
prtwf5 1 # save 2nd-order WF on disk, will be used in other datasets
|
|
|
|
# DATASET6 : 2nd order WF derivatives with respect to electric field and k-points (d/dkde)
|
|
#*****************************************************************************************
|
|
rf2_dkde6 1 # compute 2nd-order WF derivatives (d/dkde)
|
|
getwfk6 2 # use GS WF from dataset 2
|
|
getddk6 3 # use 1st-order WF (d/dk) from dataset 3
|
|
get1den6 4 # use 1st-order densities from dataset 4
|
|
getdelfd6 4 # use 1st-order WF (d/de) from dataset 4
|
|
getdkdk6 5 # use 2nd-order WF (d/dkdk) from dataset 5
|
|
prepanl6 1 # compute only directions needed for nonlinear computation
|
|
tolwfr6 1.0d-22 # convergence criteria on 2nd-order WF
|
|
kptopt6 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
|
|
prtwf6 1 # save 2nd-order WF on disk, will be used in other datasets
|
|
|
|
#DATASET7 : 3rd derivatives of E
|
|
#*********************************
|
|
getwfk7 2 # use GS WF from dataset 2
|
|
getddk7 3 # use 1st-order WF (d/dk) from dataset 3
|
|
get1den7 4 # use 1st-order densities from dataset 4
|
|
get1wf7 4 # use 1st-order WFs from dataset 4
|
|
getdkde7 6 # use 2nd-order WF (d/dkde) from dataset 6
|
|
kptopt7 2 # use Half Brillouin Zone (only time-reversal symmetry taken into account)
|
|
optdriver7 5 # compute 3rd order derivatives of the energy
|
|
usepead7 0 # no use of pead method, so use full DFPT instead
|
|
d3e_pert1_elfd7 1 # activate electric field for 1st perturbation...
|
|
d3e_pert1_phon7 1 # ...and also atomic displacements...
|
|
d3e_pert1_atpol7 1 2 # ...for all atoms (so here only 1 and 2)...
|
|
d3e_pert2_elfd7 1 # activate electric field for 2nd perturbation...
|
|
d3e_pert3_elfd7 1 # activate electric field for 3rd perturbation...
|
|
|
|
#Definition of the unit cell
|
|
# these cell parameters were derived from a relaxation run done with the
|
|
# current ecut and kpt values. The current ecut value used is very low but
|
|
# is done to speed the calculations.
|
|
# acell 7.2728565836E+00 7.2728565836E+00 7.2728565836E+00 Bohr # ecut 5
|
|
# acell 7.2511099467E+00 7.2511099467E+00 7.2511099467E+00 Bohr # ecut 30
|
|
acell 7.1391127387E+00 7.1391127387E+00 7.1391127387E+00 Bohr # ecut 2.8
|
|
rprim 0.0000000000E+00 7.0710678119E-01 7.0710678119E-01
|
|
7.0710678119E-01 0.0000000000E+00 7.0710678119E-01
|
|
7.0710678119E-01 7.0710678119E-01 0.0000000000E+00
|
|
|
|
#Definition of the atom types and pseudopotentials
|
|
ntypat 2 # two types of atoms
|
|
znucl 15 13 # the atom types are Phosphorous and Aluminum
|
|
|
|
# the following norm-conserving pseudopotentials are stored in the abinit distribution, but are freely
|
|
# available through www.pseudo-dojo.org
|
|
# this set uses the Perdew-Wang parameterization of LDA for the xc model
|
|
pp_dirpath "$ABI_PSPDIR"
|
|
pseudos "Psdj_nc_sr_04_pw_std_psp8/P.psp8, Psdj_nc_sr_04_pw_std_psp8/Al.psp8"
|
|
|
|
#Definition of the atoms
|
|
natom 2 # two atoms in the cell
|
|
typat 1 2 # type 1 is Phosphorous, type 2 is Aluminum (order defined by znucl above and pseudos list)
|
|
nband 4 # nband is restricted here to the number of filled bands only, no empty bands.
|
|
nbdbuf 0
|
|
|
|
# atomic positions in units of cell vectors
|
|
xred
|
|
1/4 1/4 1/4
|
|
0 0 0
|
|
|
|
#Numerical parameters of the calculation : planewave basis set and k point grid
|
|
ecut 2.8 # this value is very low but is used here to achieve very low calculation times.
|
|
# in a production environment this should be checked carefully for convergence and
|
|
# a more reasonable value is probably around 30
|
|
ecutsm 0.5
|
|
dilatmx 1.05
|
|
ngkpt 6 6 6 # must be checked carefully for convergence, Raman calculations converge slowly with kpt
|
|
nshiftk 4 # this Monkhorst-Pack shift pattern is used so that the symmetry of the shifted grid
|
|
# is correct. A gamma-centered grid would also have the correct symmetry but would be
|
|
# less efficient.
|
|
shiftk 0.5 0.5 0.5
|
|
0.5 0.0 0.0
|
|
0.0 0.5 0.0
|
|
0.0 0.0 0.5
|
|
|
|
# scf parameters
|
|
nstep 8 # limit number of steps for the tutorial, in general this should be set to its
|
|
# default (30) or higher
|
|
|
|
# suppress printing of density, wavefunctions, etc except what is
|
|
# explicitly requested above in the ndtset section
|
|
prtwf 0
|
|
prtden 0
|
|
prteig 0
|
|
|
|
#%%<BEGIN TEST_INFO>
|
|
#%% [setup]
|
|
#%% executable = abinit
|
|
#%% [files]
|
|
#%% files_to_test =
|
|
#%% tnlo_6.abo, tolnlines=332 , tolabs=2.0e-4, tolrel=9.0e-2
|
|
#%% [paral_info]
|
|
#%% max_nprocs = 2
|
|
#%% [extra_info]
|
|
#%% authors = L. Baguet
|
|
#%% keywords = NC, DFPT, NONLINEAR
|
|
#%% description =
|
|
#%% Linear and nonlinear response calculation for AlP
|
|
#%% Perturbations: electric fields & atomic displacements.
|
|
#%% 'Full' DFPT computation of third derivatives in Nonlinear (dataset 7).
|
|
#%% Preceded by resolution of Second-order Sternheimer equations (dataset 5 and 6).
|
|
#%%<END TEST_INFO>
|