[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 --

-- 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.
> 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"

```