[Pw_forum] Electron-phonon interaction ...

Malgorzata Wierzbowska wierzbom at ts.infn.it
Sun Dec 17 16:41:51 CET 2006


On Sun, 17 Dec 2006, Amit Kumar wrote:


  In the k-points input we read  a line with numbers
  nk1 nk2 nk3 k1 k2 k3
  where (k1,k2,k3) is a shift-vector from the origin.
  For the el-ph calculation (and I guess also for the integration
  with the tetrahedra method) we need to specify k1=k2=k3=0

  ---- So your "32 32 4 1 1 1" for sure is wrong.
       You need to take "32 32 4 0 0 0".

  You are right that all k and k+q have to belong to the dense grid.
  But see: All your meshes are in the same BZ and they are generated
  by division of the reciprocal lattice vectors b1,b2,b3 by numbers
  nk1, nk2, nk3 (above is true also for q-point grid nq1, nq2, nq3).

  To check whether your your k and k+q are in dense k-mesh,
  You need to see whether  dense nk1 divided by rare nk1 gives integer
  and whether dense nk1 divided by nq1 gives integer.
  If above 2 conditions are satisfied, you check direction b2 and b3
  in your cell: I mean dense_nk2/nq2 and dense_nk3/nq3
  and dense_nk2/rare_nk2 etc. If all above give integers --
  which is your case -- your error does not occur.

  -- So let us check your meshes:
     dense    32 32 4 0 0 0
     rare      8  8 1 0 0 0
     phonon    4  4 1 (it should be default here that they are not shifted)

   direction b1:   32/8=integer, 32/4=integer, also k+q is OK because 8/4=integer
   the same for b2
   direction b3:  4/1=integer

   For me it works for hehagonal Mg. Please do my excercise I attach the script.

   Gosia




>     Dear Malgorzata,
>
>     It's very nice to recieve your useful suggestions.
>     I tried all the combinations--->
>     32 32 4 0 0 0,        32 32 32,
>     32 32 4 1 1 1 --->>> every possible combinations before posting this
>     problem on the forum.
>     But I got the same following error  again and again.
>
>     electron-phonon interaction  ...
>
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>    from lint : error #        23
>    cannot remap grid on k-point list
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>    stopping ...
>
>
>   I think the source of the above error is something different.
>
>   My guess::::
>
>   The dense grid must contain all k  and k+q grid points used in the
>   e-p calculation.
>
>   How do we know the above condition has been satisfied for automatic
>   generated k and q points with nk1=32, nk2=32, nk3=4 and
>   nq1=4, nq2=4, nq3=1??????
>
>    Here is my q-point grid::::
>
>   Calculation of the dynamical matrices for ( 4, 4, 1,) uniform grid of
> q-points
>    (   7q-points):
>      N       xq(1)       xq(2)       xq(3)
>      1     0.00000     0.00000     0.00000
>      2     0.00000     0.28868     0.00000
>      3     0.00000    -0.57735     0.00000
>      4     0.25000     0.14434     0.00000
>      5     0.25000     0.43301     0.00000
>      6    -0.50000    -0.28868     0.00000
>      7    -0.50000     0.00000     0.00000
>
>    And my k-points grid is here::::
>
>        number of k points=  166  gaussian broad. (ryd)=  0.0100     nga
> uss =   1
>                      cart. coord. in units 2pi/a_0
>       k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.0
> 312500
>       k(    2) = (   0.0000000   0.2886751   0.0000000), wk =   0.0
> 000000
>       k(    3) = (   0.0000000   0.1443376   0.0000000), wk =   0.0
> 104167
>       k(    4) = (   0.0000000   0.4330127   0.0000000), wk =   0.0
> 000000
>
>   *
>   *
>   *  k(  166) = (   0.2500000   0.8660254   0.0000000), wk =   0.0000000
>
> See!!!! 0.28868  and 0.2886751 are not exactly equal.
>
> Is this the possible reason for the error like
>    "cannot remap grid on k-point list"?????
>
> I'm not sure any other there might be any other.
> Please help me to find out the unknown reason of this well known
> error  and  give me some clue to get rid of this error.
>
> Thank you again for your very very useful letter.
>
> Regards,
> Amit
>
>
>
>> 
>
-------------- next part --------------
#
# SCF at dense k-mesh, good enough for electronic DOS  
#
cat > mg.scf.fit.in << EOF
 &control
    calculation='scf'
    restart_mode='from_scratch',
    prefix='mg',
    pseudo_dir = '$PSEUDO_DIR/',
    outdir='$TMP_DIR/'
 /
 &system
    ibrav=  4, celldm(1) = 6.06, celldm(3)= 3.21,
    nat= 2, ntyp= 1,
    ecutwfc =15.0,   
    occupations='smearing', smearing='methfessel-paxton', degauss=0.01,
    la2F = .true., 
 /
 &electrons
    conv_thr =  1.0d-8
    mixing_beta = 0.7
 /
ATOMIC_SPECIES
 Mg  24.3  Mg.pz-n-vbc.UPF 
ATOMIC_POSITIONS {crystal} 
 Mg   0.333333333   0.666666666  0.25
 Mg   0.666666666   0.333333333  0.75 
K_POINTS {automatic}
 32 32 4  0 0 0
EOF
$ECHO "  running the scf calculation with dense k-point grid...\c"
$PW_COMMAND  < mg.scf.fit.in > mg.scf.fit.out
$ECHO "  done"
#
#  SCF at k-mesh good enough for phonons
#
cat > mg.scf.in << EOF
 &control
    calculation='scf'
    restart_mode='from_scratch',
    prefix='mg',
    pseudo_dir = '$PSEUDO_DIR/',
    outdir='$TMP_DIR/'
 /
 &system
    ibrav=  4, celldm(1) = 6.06, celldm(3)= 3.21,
    nat= 2, ntyp= 1,
    ecutwfc =15.0,
    occupations='smearing', smearing='methfessel-paxton', degauss=0.01,
 /
 &electrons
    conv_thr =  1.0d-8
    mixing_beta = 0.7
 /
ATOMIC_SPECIES
 Mg  24.3  Mg.pz-n-vbc.UPF 
ATOMIC_POSITIONS {crystal}
 Mg   0.333333333   0.666666666  0.25
 Mg   0.666666666   0.333333333  0.75
K_POINTS {automatic}
 8 8 1  0 0 0
EOF
$ECHO "  running the scf calculation...\c"
$PW_COMMAND < mg.scf.in > mg.scf.out
$ECHO "  done"
#
cat > mg.elph.in << EOF
Electron-phonon coefficients for Mg 
 &inputph
  tr2_ph=1.0d-10,
  prefix='mg',
  fildvscf='mgdv',
  amass(1)=24.3,
  outdir='$TMP_DIR/',
  fildyn='mg.dyn',
  elph=.true.,
  trans=.true.,
  ldisp=.true.
  nq1=4, nq2=4, nq3=1
 /
EOF
$ECHO "  running the el-ph calculation...\c"
$PH_COMMAND < mg.elph.in > mg.elph.out
$ECHO "  done"
#
#   q2r and matdyn
#
cat > q2r.in << EOF 
 &input
  zasr='simple',  fildyn='mg.dyn', flfrc='Mg444.fc', la2F=.true.
 /
EOF
$ECHO "  running q2r...\c"
$Q2R_COMMAND < q2r.in > q2r.out
$ECHO "  done"
#
#
#
cat > matdyn.in.freq << EOF 
 &input
    asr='simple',  amass(1)=26.98,
    flfrc='Mg444.fc', flfrq='Mg444.freq', la2F=.true., dos=.false. 
 /
  19
  0.000 0.0 0.0     0.0
  0.125 0.0 0.0     0.0
  0.250 0.0 0.0     0.0
  0.375 0.0 0.0     0.0
  0.500 0.0 0.0     0.0
  0.750 0.0 0.0     0.0
  1.000 0.0 0.0     0.0
  0.825 0.125 0.125 0.0
  0.750 0.250 0.250 0.0
  0.625 0.375 0.375 0.0
  0.500 0.500 0.500 0.0
  0.325 0.325 0.325 0.0
  0.250 0.250 0.250 0.0
  0.125 0.125 0.125 0.0
  0.000 0.000 0.000 0.0
  0.125 0.125 0.000 0.0
  0.250 0.250 0.000 0.0
  0.325 0.325 0.000 0.0
  0.500 0.500 0.000 0.0
EOF
$ECHO "  running matdyn for frequency calculation...\c"
$MATDYN_COMMAND < matdyn.in.freq > matdyn.out.freq
$ECHO "  done"
#
#
#
cat > matdyn.in.dos << EOF 
 &input
    asr='simple',  amass(1)=26.98,
    flfrc='Mg444.fc', flfrq='Mg444.freq', la2F=.true., dos=.true. 
    fldos='phonon.dos', nk1=10, nk2=10, nk3=10, ndos=50
 /
EOF
$ECHO "  running matdyn for a2F(omega) calculation...\c"
$MATDYN_COMMAND < matdyn.in.dos > matdyn.out.dos
$ECHO "  done"




More information about the Pw_forum mailing list