Problem of calculating the phonon dispersion of AlAs crystal

Phonons, DFPT, electron-phonon, electric-field response, mechanical response…

Moderators: mverstra, joaocarloscabreu

Locked
tsukagoshi
Posts: 9
Joined: Fri Jun 15, 2012 2:19 am

Problem of calculating the phonon dispersion of AlAs crystal

Post by tsukagoshi » Tue Mar 29, 2016 12:08 pm

Dear users/developers,
I have two questions related to the phonon calculation. I use abinit-7.10.5.

(1) Parallel phonon calculation with gamma-centered k points
When I run the parallel phonon calculation using 8 cores in order to obtain the phonon dispersion of AlAs crystal, I fail in calculating the d/dk wave function. I use gamma-centered 4*4*4 k points.
$ mpirun -np 8 abinit-7.10.5 < alas_ph.files >& log-ph

My input file is as follows.
alas_ph.in:

Code: Select all

# Crystalline AlAs : computation of the phonon spectrum
# Parallel settings
#********************************************
paral_kgb 0 
paral_kgb1 1  autoparal1  1
paral_kgb2 1  autoparal2  1
ndtset  11

#DATASET1 : scf calculation:
# GS WF in the BZ taking fully into account the symmetry
#********************************************
  getwfk1   0
    iscf1   7
  kptopt1   1
  toldfe1   1.0d-8
  rfphon1   0
    nqpt1   0

#DATASET2 : non scf calculation:
# GS WF taking into account only the time-reversal symmetry
#*****************************************************
  getden2    1
  getwfk2    0
    iscf2   -2
  kptopt2    2
  tolwfr2    1.0d-12
  rfphon2   0
    nqpt2   0

#DATASET3 : RF calculation
# ddk with q=0 on the k-points taking into account only the time-reversal symmetry
#*****************************************
  getwfk3   2
    iscf3  -3
  kptopt3   2       
  tolwfr3   1.0d-12
  rfelfd3   2   
   rfdir3   1 1 1
    nqpt3   1
     qpt3   0.0 0.0 0.0

#DATASET4 : RF calculation
# ddR and ddE with q=0 on the k-points taking into account only the time-reversal symmetry
#*****************************************
  getwfk4    2
  getddk4    3
    iscf4   7   
  kptopt4   2 
  toldfe4   1.0d-8
  rfphon4   1   
 rfatpol4   1 2 
  rfelfd4   3   
   rfdir4   1 1 1
    nqpt4   1
     qpt4   0.0 0.0 0.0

#Sets 5-11 : RF calculation
# q/=0 phonon calculations (defaults for all datasets)
#*****************************************
  getwfk   2
  kptopt   3
  toldfe   1.0d-8
    nqpt   1  # default
  rfphon   1
 rfatpol   1 2
   rfdir   1 1 1
#  ngkpt 4 4 4  nshiftk 1  shiftk 0.0 0.0 0.0
    qpt5   2.50000000E-01  0.00000000E+00  0.00000000E+00
    qpt6   5.00000000E-01  0.00000000E+00  0.00000000E+00
    qpt7   2.50000000E-01  2.50000000E-01  0.00000000E+00
    qpt8   5.00000000E-01  2.50000000E-01  0.00000000E+00
    qpt9  -2.50000000E-01  2.50000000E-01  0.00000000E+00
    qpt10  5.00000000E-01  5.00000000E-01  0.00000000E+00
    qpt11 -2.50000000E-01  5.00000000E-01  2.50000000E-01

#######################################################################
#Common input variables

#Unit cell and Atomic positions
#********************************
acell   3*10.53
rprim  0.0  0.5  0.5
       0.5  0.0  0.5
       0.5  0.5  0.0
xred       
   0.0  0.0  0.0 
   0.25 0.25 0.25

#Atomic types
#*************************************
natom 2   
ntypat 2           
znucl 13 33       
typat 1 2 

#Plane wave basis and k-point grid
#*********************************
   ecut        2.8
   ngkpt       4 4 4
#   nshiftk     4
#   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
  nshiftk 1
  shiftk  0.0 0.0 0.0

#Parameters of the SCF cycles
#****************************
iscf 7
ixc 1
nstep 100
diemac 9.0
nband  4
nbdbuf 0

alas_ph.files:

Code: Select all

alas_ph.in
alas_ph.out
alas_phi
alas_pho
alas_ph
~/abinit-7.10.5/tests/Psps_for_tests/13al.pspnc
~/abinit-7.10.5/tests/Psps_for_tests/33as.pspnc

However, I can calculate the d/dk wave function using other cores, for example 6 cores, successfully.
$ mpirun -np 6 abinit-7.10.5 < alas_ph.files >& log-ph

On the other hand, I can also calculate the d/dk wave function when I shift the center of k points as follows:
nshiftk 4
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

Why I fail in calculating the d/dk wave function with gamma-centered k points using 8 cores ?

(2) Problem of mrgddb
I fail in gathering DDB files calculated with gamma-centered k points.
$ mrgddb < alas_phmrg.in
….
--- !ERROR
message: |
Comparing integers for variable nkpt.
Value from input DDB is 36 and
from transfer DDB is 64.
Action: check your DDBs.

My input files is as follows.
alas_phmrg.in:

Code: Select all

alas_phmrg.out
AlAs phonons on 4 4 4 mesh
8
alas_pho_DS4_DDB
alas_pho_DS5_DDB
alas_pho_DS6_DDB
alas_pho_DS7_DDB
alas_pho_DS8_DDB
alas_pho_DS9_DDB
alas_pho_DS10_DDB
alas_pho_DS11_DDB

I can avoid this error if I edit src/77_ddb/cmpar8.F90 and do not use chki8 as follows.
cmpar8.F90:

Code: Select all

if(fullinit/=0)then
   if(nkpt/=2*nkpt8 .and. 2*nkpt/=nkpt8)then
!     call chki8(nkpt,nkpt8,'  nkpt')
   else

I proceed calculating the phonon dispersion as follows.
$ anaddb < alas_phddb.files >& alas_phddb.log
$ band2eps < alas_b2e.files
$ evince si_b2e.out.eps

My input files is as follows.
alas_phddb.in:

Code: Select all

!Input file for the anaddb code. Analysis of the AlAs DDB

#Wavevector grid number 1 (coarse grid, from DDB)
#*******
  brav    2       
! These kpt must correspond to ones given as qpt at DFPT calc.
  ngqpt   4  4  4   
  nqshft  1       
  q1shft  3*0.0

# Flags
#*******
   ifcflag  1

# General information
#**********************
   enunit  0
   eivec   4
   asr     1
#   chneut  1
   chneut  2
   dipdip  1

# Wavevector list number 1
**************************                                                     
  nph1l  53
  qph1l   
                       0.00000000E+00  0.00000000E+00  0.00000000E+00 1.0
                       7.50000000E-02  3.75000000E-02  3.75000000E-02 1.0
                       1.50000000E-01  7.50000000E-02  7.50000000E-02 1.0
                       2.25000000E-01  1.12500000E-01  1.12500000E-01 1.0
                       3.00000000E-01  1.50000000E-01  1.50000000E-01 1.0
                       3.75000000E-01  1.87500000E-01  1.87500000E-01 1.0
                       4.50000000E-01  2.25000000E-01  2.25000000E-01 1.0
                       5.25000000E-01  2.62500000E-01  2.62500000E-01 1.0
                       6.00000000E-01  3.00000000E-01  3.00000000E-01 1.0
                       6.75000000E-01  3.37500000E-01  3.37500000E-01 1.0
                       7.50000000E-01  3.75000000E-01  3.75000000E-01 1.0
                       7.00000000E-01  4.00000000E-01  3.00000000E-01 1.0
                       6.50000000E-01  4.25000000E-01  2.25000000E-01 1.0
                       6.00000000E-01  4.50000000E-01  1.50000000E-01 1.0
                       5.50000000E-01  4.75000000E-01  7.50000000E-02 1.0
                       5.00000000E-01  5.00000000E-01  0.00000000E+00 1.0
                       4.50000000E-01  4.50000000E-01  0.00000000E+00 1.0
                       4.00000000E-01  4.00000000E-01  0.00000000E+00 1.0
                       3.50000000E-01  3.50000000E-01  0.00000000E+00 1.0
                       3.00000000E-01  3.00000000E-01  0.00000000E+00 1.0
                       2.50000000E-01  2.50000000E-01  0.00000000E+00 1.0
                       2.00000000E-01  2.00000000E-01  0.00000000E+00 1.0
                       1.50000000E-01  1.50000000E-01  0.00000000E+00 1.0
                       1.00000000E-01  1.00000000E-01  0.00000000E+00 1.0
                       5.00000000E-02  5.00000000E-02  0.00000000E+00 1.0
                       0.00000000E+00  0.00000000E+00  0.00000000E+00 1.0
                       7.14285714E-02  7.14285714E-02  7.14285714E-02 1.0
                       1.42857143E-01  1.42857143E-01  1.42857143E-01 1.0
                       2.14285714E-01  2.14285714E-01  2.14285714E-01 1.0
                       2.85714286E-01  2.85714286E-01  2.85714286E-01 1.0
                       3.57142857E-01  3.57142857E-01  3.57142857E-01 1.0
                       4.28571429E-01  4.28571429E-01  4.28571429E-01 1.0
                       5.00000000E-01  5.00000000E-01  5.00000000E-01 1.0
                       5.00000000E-01  5.00000000E-01  4.37500000E-01 1.0
                       5.00000000E-01  5.00000000E-01  3.75000000E-01 1.0
                       5.00000000E-01  5.00000000E-01  3.12500000E-01 1.0
                       5.00000000E-01  5.00000000E-01  2.50000000E-01 1.0
                       5.00000000E-01  5.00000000E-01  1.87500000E-01 1.0
                       5.00000000E-01  5.00000000E-01  1.25000000E-01 1.0
                       5.00000000E-01  5.00000000E-01  6.25000000E-02 1.0
                       5.00000000E-01  5.00000000E-01  0.00000000E+00 1.0
                       5.50000000E-01  5.00000000E-01  5.00000000E-02 1.0
                       6.00000000E-01  5.00000000E-01  1.00000000E-01 1.0
                       6.50000000E-01  5.00000000E-01  1.50000000E-01 1.0
                       7.00000000E-01  5.00000000E-01  2.00000000E-01 1.0
                       7.50000000E-01  5.00000000E-01  2.50000000E-01 1.0
                       7.14285714E-01  5.00000000E-01  2.85714286E-01 1.0
                       6.78571429E-01  5.00000000E-01  3.21428571E-01 1.0
                       6.42857143E-01  5.00000000E-01  3.57142857E-01 1.0
                       6.07142857E-01  5.00000000E-01  3.92857143E-01 1.0
                       5.71428571E-01  5.00000000E-01  4.28571429E-01 1.0
                       5.35714286E-01  5.00000000E-01  4.64285714E-01 1.0
                       5.00000000E-01  5.00000000E-01  5.00000000E-01 1.0
                                                                               
# Wave vector list no. 2
#***********************
# get proper LO-TO splitting at gamma
     nph2l  1
     qph2l  1.0 0.0 0.0 0.0

# This line added when defaults were changed (v5.3) to keep the previous, old behaviour
  symdynmat 0

alas_phddb.files

Code: Select all

alas_phddb.in
alas_phddb.out
alas_phmrg.out
alas_ddb_band2eps
trf2_dummy1
trf2_dummy2
trf2_dummy3

alas_b2e.files:

Code: Select all

#Input file for 'band2eps.' This data layout must be used, line-by-line.
number of atoms in a cell :
2
minimum value, maximum value and number of tics of the vertical axe :
0.0  400.0  8
Units : 1 for cm-1, 2 for THz :
1
Number of lines :
7
Description of the points in q space :
gamma  K  X  gamma  L  X  W  L 
Number of q points for each line :
10  5 10 7 8  5  7
Scale factor for each line :
1.0 1.0 1.0 1.0 1.0 1.0 1.0
#COLOR DEFINITION :
#put 1 in place of the atom you want to be colored in
#red
0 0
    #green
0 0
    #blue
0 0

It seems that the phonon dispersion is calculated normally.
Is it correct to edit cmpar8.F90 as above ?

Takayuki Tsukagoshi

Jordan
Posts: 282
Joined: Tue May 07, 2013 9:47 am

Re: Problem of calculating the phonon dispersion of AlAs cry

Post by Jordan » Tue Apr 05, 2016 11:03 am

Hi,

For the second question, you could just edit the _DDB files and change the nkpt values to match the one of the first file ...
This is a check to ensure that the two _DDB files are the same calculation done in several runs. Therefore, you should have the same lattice parameters, atomic positions same pseudopotential.... and so on .... the same number of kpt.
If you assume you know what you do and that it is your decision to have 2 calculations with different number of kpt then it is not a problem.

Cheers

Jordan

tsukagoshi
Posts: 9
Joined: Fri Jun 15, 2012 2:19 am

Re: Problem of calculating the phonon dispersion of AlAs cry

Post by tsukagoshi » Tue Apr 05, 2016 3:17 pm

Dear Jordan

Thank you for your reply. I understand how I avoid the error message.
It might be better to modify the program mrgddb.x since it could occur that nkpt1=/ nkpt2 & 2*nkpt1=/ nkpt2 when gamma-centered k points are used, where nkpt1 is for q=0 and nkpt2 is for q=/0.

By the way, does anyone answer the first question? Any comments or suggestions are welcome.

Best regards,

Takayuki Tsukagoshi

Locked