Hi everyone,
I am analyzing the spatial decay of longitudinal interatomic force constants (IFCs) using the abipy package, via the ifc.plot_longitudinal_ifc() function. I have observed a severe truncation in the real-space IFCs when extracting them from a flexoelectric DFPT calculation compared to a GM point phonon calculation.
Flexoelectric Run: I merged the DDB files from my flexoelectric calculations using mrgddb. When plotting the longitudinal IFCs via abipy, the output yields only a single data point at roughly 5 Bohr, abruptly truncating the long-range interactions.
GM Phonon Run: I generated a DDB from a phonon run on the same system. Running the exact same abipy plotting function yields the expected spatial decay curve, extending out to ~20 Bohr with 5-6 distinct neighbor shells.
- Does the flexoelectric DFPT implementation in ABINIT inherently ignore or truncate the long-range force constants during the calculation?
The phonons were obtained with script:
ndtset 3
# Ground state calculation
kptopt1 1 # Automatic generation of k points, taking symmetry into account
tolvrs1 1.0d-18 # SCF stopping criterion
# Response Function calculation: d/dk
rfelfd2 2 # Activate the calculation of the d/dk perturbation
nqpt2 1
qpt2 0.0 0.0 0.0 # This is a calculation at the Gamma point
getwfk2 -1 # Use the output wf of the previous dataset as input
kptopt2 2 # Automatic generation of k points, using time-reversal symmetry
iscf2 -3 # Non-self-consistent d/dk perturbation
tolwfr2 1.0d-22 # Very low tolwfr for non-self-consistent calculations
# Response Function calculation: electric field perturbation and phonons
rfphon3 1 # Activate the calculation of the atomic displacement perturbations
rfelfd3 3 # Activate the calculation of the electric field perturbation
nqpt3 1
qpt3 0.0 0.0 0.0 # This is a calculation at the Gamma point
getwfk3 -2 # Use output wfs from dataset 1
getddk3 -1 # Use output ddk wfs from dataset 2
kptopt3 2 # Automatic generation of k points, using time-reversal symmetry
tolvrs3 1.0d-18 # Very low tolwfr for non-self-consistent calculations
acell 7.3609984220E+00 7.3609984220E+00 7.3609984220E+00
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
natom 2
ntypat 2
typat 1 2
znucl 56 8
nband 11
nbdbuf 3
xred 0.000000000000000 0.000000000000000 0.000000000000000
0.500000000000000 0.500000000000000 0.500000000000000
pp_dirpath "~/pseudo/PBEsol_NCPP/" # Path to the pseudopotential directory
pseudos "Ba.oncvpsp.psp8,O.oncvpsp.psp8"
ecut 150 # Maximal kinetic energy cut-off, in Hartree
ecutsm 0.5
# Definition of the k-point grid
ngkpt 10 10 10
nshiftk 1
shiftk 0.0 0.0 0.0
nstep 500
diemac 4.0
while the flexoelectric calculations were done using the script:
ndtset 5
#Set 1 : ground state self-consistency
#*************************************
getwfk1 0
kptopt1 1
tolvrs1 1.0d-18
#Set 2: Response function calculation of d/dk wave function
#**********************************************************
iscf2 -3
rfelfd2 2
tolwfr2 1.0d-20
#Set 3: Response function calculation of d2/dkdk wave function
#*************************************************************
getddk3 2
iscf3 -3
rf2_dkdk3 3
tolwfr3 1.0d-20
#Set 4 : Response function calculation to q=0 phonons, electric field and strain
#*******************************************************************************
getddk4 2
rfelfd4 3
rfphon4 1
rfstrs4 3
rfstrs_ref4 1
tolvrs4 1.0d-16
prepalw4 1
#Set 5 : Long-wave magnitudes calculation
#****************************************
optdriver5 10
get1wf5 4
get1den5 4
getddk5 2
getdkdk5 3
lw_flexo5 1
getwfk 1
useylm 1
kptopt 2
acell 7.3609984220E+00 7.3609984220E+00 7.3609984220E+00
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
natom 2
ntypat 2
typat 1 2
znucl 56 8
nband 11
nbdbuf 3
xred 0.000000000000000 0.000000000000000 0.000000000000000
0.500000000000000 0.500000000000000 0.500000000000000
pp_dirpath "~/pseudo/PBEsol_NCPP/" # Path to the pseudopotential directory
pseudos "Ba.oncvpsp.psp8,O.oncvpsp.psp8"
ecut 150 # Maximal kinetic energy cut-off, in Hartree
ecutsm 0.5
ngkpt 10 10 10
nshiftk 1
shiftk 0.0 0.0 0.0
nstep 500
diemac 4.0
The k-grids are the same in both cases, then why are the force constants so different with the flexoelectric calculations?
Are the long-range interactions not considered in the flexoelectric tensor calculation?
Thanks
Dominic

