DFPT calculations , wave-functions dont converge

Dear Abinit community,
I am running DFPT calculations to determine the piezoelectric properties of AlGaN alloys. The GS is well done , using a norm-conserving Pseudo-Potentials, Ecut 40 Ha (after convergence test), dilatmx 1.05 , tolmxf 1.0e-6 , strfact 100 .
The Stress tensor/Pressure at the end of the Step 1 “initial self-consistent run of relaxation was:
At SCF step 31 vres2 = 2.51E-19 < tolvrs= 1.00E-18 =>converged.
Cartesian components of stress tensor (hartree/bohr^3)
sigma(1 1)= -6.38706770E-05 sigma(3 2)= -1.78579490E-11
sigma(2 2)= -6.38722339E-05 sigma(3 1)= -7.27365184E-11
sigma(3 3)= 2.61821831E-04 sigma(2 1)= 1.72078998E-10
after that I ran the DFPT calculations; I set the number of only occupied band ( insulator occupation), I also checked the flag nbdbuf ( as suggested by Eric Bousquet in my previous posts) and set it up to the number of unoccupied bands . The WF don’t converge:
scprqt: WARNING -
nstep= 100 was not enough SCF cycles to converge;
maximum residual= 4.276E-04 exceeds tolwfr= 1.000E-20
Thank you for your help in advance .

Hello,

we need a bit more information - first of all follow the normal netiquette (see the main forum page) of abinit version, platform, compiler, number of cores, input/output files, etc Then:

  • which dfpt run is failing? DDK? DDE? DDR?
  • if you have an alloy, it is probable that your electron count will not make a perfect insulator - is the Fermi level really in the gap? If not, you can not run with insulating occupation at all. For proper III V alloys it should still be ok.
  • in general, you can try to converge at least the DFPT with metallic occupation and a bunch of unoccupied states. Some of the Berry phase and piezo quantities may not complete, but it will be an indication of what could be wrong. In many cases the DDK is easier to converge (even for insulators/semiconductors) with empty bands and metallic smearing.
  • you don’t tell us if the DFPT is converging, but slowly, or if it is oscillating etc, or diverging. This changes things a lot.

Hello,
Thank you for your reply. I am using Parallel Abinitv8.8.4 compiled in StdEnv/2020 with nixpkgs/16.09 gcc/5.4 openmpi/2.1.1. Number of cores 48.
Here is the inputfile:
chkprim 0
ndtset 3

Set 1 : Initial self-consistent run

kptopt1 1
tolvrs1 1.0d-18 #need excellent convergence of GS quantities for RF runs

Set 2 : Calculate the ddk wf’s - needed for piezoelectric tensor and

Born effective charges in dataset 3

getwfk2 -1
iscf2 -3 #this option is needed for ddk
kptopt2 2 #use time-reversal symmetry only for k points
nqpt2 1 #one wave vector will be specified
qpt2 0 0 0 #need to specify gamma point
rfelfd2 2 #set for ddk wf’s only
tolwfr2 1.0d-20 #only wf convergence can be monitored here

Set 3 : response-function calculations for all needed perturbations

getddk3 -1
getwfk3 -2
kptopt3 2 #use time-reversal symmetry only for k points
nqpt3 1
qpt3 0 0 0
rfphon3 1 #do atomic displacement perturbation
rfatpol3 1 32
rfstrs3 3 #do strain perturbation
tolvrs3 1.0d-10 #need reasonable convergence of 1st-order quantities

#Common input data

acell COPY RELAXED RESULT FROM PREVIOUS CALCULATION

Here is a default value, for automatic testing : suppress it and fill with values from the previous run

acell 11.9358 11.9358 19.3992 Bohr

rprim sqrt(0.75) 0.5 0.0 #Better to specify hexagonal primitive vectors
-sqrt(0.75) 0.5 0.0 #with high accuracy to be
0.0 0.0 1.0 #sure that the symmetry is recognized
#and preserved in the optimization process

#Definition of the atom types and atoms
ntypat 3
znucl 13 31 7
natom 32
typat 41 42 41 42 16*3

xred COPY RELAXED RESULT FROM PREVIOUS CALCULATION

Here is a set of default values, for automatic testing : suppress it

and fill with values from the previous run

      xred         1.6666666014E-01  3.3333331638E-01 -1.3003285497E-03
                   1.6666666271E-01  8.3333332033E-01 -1.3003285543E-03
                   6.6666666407E-01  3.3333332293E-01 -1.3003287425E-03
                   6.6666665880E-01  8.3333331900E-01 -1.3003284884E-03
                   3.3333332783E-01  1.6666665668E-01  2.4977240198E-01
                   3.3333332149E-01  6.6666665185E-01  2.4977240230E-01
                   8.3333332303E-01  1.6666665509E-01  2.4977240211E-01
                   8.3333332627E-01  6.6666665985E-01  2.4977240201E-01
                   1.6666666014E-01  3.3333331638E-01  4.9869967145E-01
                   1.6666666271E-01  8.3333332033E-01  4.9869967145E-01
                   6.6666666407E-01  3.3333332293E-01  4.9869967126E-01
                   6.6666665880E-01  8.3333331900E-01  4.9869967151E-01
                   3.3333332783E-01  1.6666665668E-01  7.4977240198E-01
                   3.3333332149E-01  6.6666665185E-01  7.4977240230E-01
                   8.3333332303E-01  1.6666665509E-01  7.4977240211E-01
                   8.3333332627E-01  6.6666665985E-01  7.4977240201E-01
                   1.6666665942E-01  3.3333331770E-01  1.8443391511E-01
                   6.6666665787E-01  8.3333332076E-01  1.8443391517E-01
                   1.6666666261E-01  8.3333332225E-01  1.8443391511E-01
                   8.3333332422E-01  6.6666666126E-01  4.4209401135E-01
                   3.3333332553E-01  1.6666665860E-01  4.4209401131E-01
                   8.3333332165E-01  1.6666665727E-01  4.4209401139E-01
                   1.6666665942E-01  3.3333331770E-01  6.8443391511E-01
                   6.6666665787E-01  8.3333332076E-01  6.8443391517E-01
                   1.6666666261E-01  8.3333332225E-01  6.8443391511E-01
                   8.3333332422E-01  6.6666666126E-01  9.4209401135E-01
                   3.3333332553E-01  1.6666665860E-01  9.4209401131E-01
                   8.3333332165E-01  1.6666665727E-01  9.4209401139E-01
                   6.6666666408E-01  3.3333332537E-01  1.8443391495E-01
                   3.3333332029E-01  6.6666665469E-01  4.4209401154E-01
                   6.6666666408E-01  3.3333332537E-01  6.8443391495E-01
                   3.3333332029E-01  6.6666665469E-01  9.4209401154E-01

#Gives the number of bands, explicitely (do not take the default)
nband 107 # For an insulator (if described correctly as an
# insulator by DFT), conduction bands should not
# be included in response-function calculations

#Definition of the plane wave basis set
ecut 40 # Maximum kinetic energy cutoff (Hartree)
ecutsm 0.5 # Smoothing energy needed for lattice paramete
# optimization. This will be retained for
# consistency througho
#Definition of the k-point grid
kptopt 1 # Use symmetry and treat only inequivalent points
ngkpt 4 4 4 # 4x4x4 Monkhorst-Pack grid
nshiftk 1 # Use one copy of grid only (default)
shiftk 0.0 0.0 0.5 # This choice of origin for the k point grid
# preserves the hexagonal symmetry of the grid,
# which would be broken by the default choice.

#Definition of the self-consistency procedure
diemac 9.0 # Model dielectric preconditioner
nstep 100 # Maxiumum number of SCF iterations

##diemix 0.2

enforce calculation of forces at each SCF step

optforces 1

I have already tried with metallic occupation , as you have suggested in previous posts, but the problem persists.
-open ddk wf file :DFPT.o_DS2_1WF97
-open ddk wf file :DFPT.o_DS2_1WF98
-open ddk wf file :DFPT.o_DS2_1WF99
scprqt: WARNING -
nstep= 100 was not enough SCF cycles to converge;
potential residual= 3.138+183 exceeds tolvrs= 1.000E-10

and I got this warning in the anaddb analysis output:
ddb_piezo : WARNING -
Acoustic sum rule violation met : the eigenvalues of accoustic mode
are too large at Gamma point
Increase cutoff energy or k-points sampling.
The three eigenvalues are: 9.080925E+83 -6.661932E+83 -4.430080E+84

ddb_piezo : WARNING -
Unstable eigenvalue detected in force constant matrix at Gamma point
The system under calculation is physically unstable.

Proper piezoelectric constants (relaxed ion) (unit:c/m^2)






Hi again,

better, but I still have to guess which dtset is actually failing. Did the ddk converge? Your snippet comes from the DDE run I think, possibly the DDR, as it is trying to read in the ddk. If the ddk is not converged, this will explode the further steps. If it’s ok then the DDE is sometimes sensitive, if the gap is small for example. At least send along the output of

egrep ‘DATASET|ETOT’ log_file

107 bands is a bit strange - I would have expected a multiple of 8 valence electrons as half of your 32 atoms should have 5 electrons, the other half 3, so a nband multiple of 4 or at least 2, even accounting for occupation of 2 electrons per state. Perhaps this is with a few empty bands for metallic occ. NB: you need quite a few, so the default 10% empty bands is not always (usually not) enough

Which pseudopotentials are you using?

Hello,
Thank you for your reply.

ddb_piezo : WARNING -
Acoustic sum rule violation met : the eigenvalues of accoustic mode
are too large at Gamma point
Increase cutoff energy or k-points sampling.
The three eigenvalues are: 9.080925E+83 -6.661932E+83 -4.430080E+84

ddb_piezo : WARNING -
Unstable eigenvalue detected in force constant matrix at Gamma point
The system under calculation is physically unstable.

Proper piezoelectric constants (relaxed ion) (unit:c/m^2)






Hello,
Please excuse me for the quality of my answers, because I am new with DFPT calculations.
The dtset 2 is failing :

---- first-order wavefunction calculations are completed ----
Total localisation tensor (bohr^2) in cartesian coordinates
WARNING : still subject to testing - especially symmetries.

respfn : d/dk was computed, but no 2DTE, so no DDB output.

I am using norm-conserving pseudopotentials, I tried to set nband as default nband was 108. Then, I tried with 107 to solve the problem of wavefunctions divergence ( I even tried with the flag nbdbuf) .
I add , the gap is about 2.7 eV.

Best regards,

Hi again,
I tried to converge my calculations with metallic occupation and set tsmear to 0.008 but the problem persists . Please find attached the input and outputs files.
Thanks for your help
DFPT.in (6.5 KB)
DFPT.abo (1.7 MB)
analyse-anaddb.abo (22.6 KB)