SCTK的使用——MgB2

0.注意事项:

1.scf.in,nscf.in,twin.in的晶格信息,赝势信息要一致!!!
2.使用sctk.x时 -np和-nk一定要一致!!!
3.需要nbnd的文件:nscf.in,twin.in,sctk.in请保持一致
4.scf.in nk>k点个数会报错,输出文件CRASH,

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     task #        24
     from divide_et_impera : error #         1
     some nodes have no k-points
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在这里插入图片描述

1. 自洽计算——算电子密度

scf.in

&CONTROL
 calculation = 'scf'
  pseudo_dir = './'
/
&SYSTEM
       ibrav = 0
         nat = 3
        ntyp = 2
     ecutwfc = 60.0
     ecutrho = 240.0
     注意这里一定要用这种方法!
 occupations = 'tetrahedra_opt'
/
&ELECTRONS
 mixing_beta = 0.3
 conv_thr = 3.000000e-10
/
CELL_PARAMETERS angstrom
   3.072263267   0.000000000   0.000000000
  -1.536131635   2.660657665   0.000000000
   0.000000000   0.000000000   3.511486466
ATOMIC_SPECIES
 B 10.811000 B.pbe-nc.UPF
 Mg 24.305000 Mg.pbe-n-nc.UPF
ATOMIC_POSITIONS crystal
 Mg 0.000000 0.000000 0.000000
 B 0.333333 0.666667 0.500000
 B 0.666667 0.333333 0.500000
K_POINTS automatic
 8 8 6 0 0 0
export OMP_NUM_THREADS=1 #只允许单线程
$ mpiexec -np 29 PATH/pw.x -nk 29 -in scf.in > scf.out #PATH可执行文件路径

重要的参量:
calculation = “scf”
用pw.x进行自洽计算

注意:我们可以先计算声子和电声相互作用也可以先计算库伦作用。(大概是说第二步和第三步的计算顺序无所谓?)

生成文件:

scf.out

pwscf.save/ #文件夹
pwscf.save/charge-density.dat
pwscf.save/data-file-schema.xml
pwscf.save/wfc*.dat #MgB2一共40个
#是scf.out中
#number of k points=     40 (tetrahedron method)
#这个数量和np,nk无关

pwscf.xml

2. 计算声子和电声相互作用

2.1 计算声子频率和变形势(deformation potential)

输入文件:ph.in
程序:ph.x (QuantumESPRESSO)
ph.in

Phonon
&INPUTPH
   lshift_q = .true.
      ldisp = .true.
 search_sym = .false.
     tr2_ph = 1.0d-15
  alpha_mix = 0.3
   fildvscf = 'dv'
        nq1 = 4
        nq2 = 4
        nq3 = 3
        nk1 = 8
        nk2 = 8
        nk3 = 6
/
$ mpiexec -np 29 PATH/ph.x -nk 29 -in ph.in > ph.out

重要的变量:
fildvscf = ‘dv’
变形势的文件名,下一步会用到

ldisp = .true.
在均匀q网格上计算声子。

lshift_q = .true.
移动q网格以避免Γ点的奇点。SCTK软件要求用四面体方法计算声子,这个是必须加的。

nq1, nq2, nq3
The q grid.

生成文件:

ph.out
pwscf.wfc* #一共144个,是节点所有的任务数ntask
matdyn0 #所有不可约q点的位置
matdyn* #共nq个,是每个q点的矩阵

_ph0/ #文件夹
_ph0/pwscf.phsave/#文件夹
_ph0/pwscf.phsave/control_ph.xml
_ph0/pwscf.phsave/dynmat.a.b.xml 
#a是q点数,b是ph.out文件中所有声子mode的格式
例如对MgB2,a=12,b=9,另外b的值对于每个声子可能是不同的!
     ‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘‘’‘’’‘’‘’’‘’
     There are   9 irreducible representations

     Representation     1      1 modes -  To be done

     Representation     2      1 modes -  To be done

     Representation     3      1 modes -  To be done

     Representation     4      1 modes -  To be done

     Representation     5      1 modes -  To be done

     Representation     6      1 modes -  To be done

     Representation     7      1 modes -  To be done

     Representation     8      1 modes -  To be done

     Representation     9      1 modes -  To be done
     、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
_ph0/pwscf.phsave/patterns.*.xml #共nq个
_ph0/pwscf.phsave/status_run.xml

_ph0/pwscf.q_*  #文件夹,共nq个
_ph0/pwscf.q_*/pwscf.dv* #不知道是什么,指标也很奇怪1,121,25,49,73,97
_ph0/pwscf.q_*/pwscf.wfc* #一共ntask个
_ph0/pwscf.q_*/pwscf.dv*/pwscf.save #文件夹
_ph0/pwscf.q_*/pwscf.dv*/pwscf.save/charge-density.dat
_ph0/pwscf.q_*/pwscf.dv*/pwscf.save/data-file-schema.xml

_ph0/pwscf.save #文件夹
_ph0/pwscf.save/charge-density.dat

2.2 计算电声相互作用

输入文件: epmat.in

Electron-phonon matrix
&INPUTPH
        lshift_q = .true.
           ldisp = .true.
      search_sym = .false.
             nq1 = 4
             nq2 = 4
             nq3 = 3
        fildvscf = 'dv'
 electron_phonon = 'scdft_input'
             nk1 = 4
             nk2 = 4
             nk3 = 3
   elph_nbnd_min = 3
   elph_nbnd_max = 5
/

程序: ph.x (QuantumESPRESSO)

$ mpiexec -np 8 PATH/ph.x -nk 8 -in epmat.in > epmat.out

重要参数
electron_phonon = “scdft_input”
用变形势和动态矩阵( the dynamical matrix )计算电声顶点( the electron-phonon verte)。

TIPS:这里与QE正常求解电声相互作用不同。electron_phonon= ‘interpolated’

elph_nbnd_min, elph_nbnd_max

由于电子态( the electronic states )之间的电声相互作用只在费米面附近(in the vicinity of the Fermi surface)影响间隙方程(the gap equation),我们可以减少bands以减少计算成本( the numerical cost)。
bands 的最大值和最小值(中间必须包括费米能)可以用QE中的fermi_velocity.x得到。
补:得到bands的最大值和最小值
复制scf.in,scf.out,pwscf.save文件夹及赝势文件到自己的小机器

mpiexec -np 29 ~/software/sctk/bin/fermi_velocity.x -nk 29 -in scf.in > FS_vf.out

生成文件:

epmat.out
elph*.dat  #共nq个
会读取或更改
_ph0/pwscf.phsave/patterns.*.xml
_ph0/pwscf.phsave/status_run.xml
_ph0/pwscf.q_*/pwscf.save/data-file-schema.xml
_ph0/pwscf.save/charge-density.dat

3. 计算屏蔽库仑相互作用(screened Coulomb interaction)/自旋涨落(Spin-fluctuation)

3.1 在稠密K网格下进行Non-SCF计算(Non-SCF calculation with a dense k grid)

输入文件: nscf.in

&CONTROL
 calculation = 'nscf'
    prefix='h3s',
    pseudo_dir = '.'
    outdir='./tmp'
/
&SYSTEM
                        ibrav = 0 ,
                    celldm(1) = 1.88972688,
                         nat  =  4 ,
                        ntyp  =  2 ,
                     ecutwfc  =  60 ,ecutrho = 600,
                  occupations = 'tetrahedra_opt',
                         la2F = .true.,
                         nbnd = 15

/
&ELECTRONS
/
ATOMIC_SPECIES
H  1.00784  h_pbe_v1.4.uspp.F.UPF
S  32.0590  s_pbe_v1.4.uspp.F.UPF

CELL_PARAMETERS
   -1.5622620063709813     1.5622620063709813     1.5622620063709816
    1.5622620063709818    -1.5622620063709809     1.5622620063709813
    1.5622620063709813     1.5622620063709816    -1.5622620063709811
ATOMIC_POSITIONS (crystal)
H             0.0000000000        0.5000000000        0.5000000000
H             0.5000000000       -0.0000000000        0.5000000000
H             0.5000000000        0.5000000000        0.0000000000
S             0.0000000000        0.0000000000       -0.0000000000
K_POINTS {automatic}
32 32 32 0 0 0

程序: pw.x (QuantumESPRESSO)

$ mpiexec -np 32 PATH/pw.x -nk 32 -in nscf.in > nscf.out

重要参数
必须保证这里的np大于第二步的np
calculation = “nscf”
执行non self-consistent calculation.

la2f = .true.
产生pwscf.a2F文件,保存 Kohn-Sham energy.

nbnd
对于计算极化函数(the polarization function),我们不得不去计算一些空态。但是当我们计算绝缘体的时候我们不需要计算太多空态。通常,空状态的数量与占据态(occupied states)的数量相同。

生成文件:

nscf.out
pwscf.a2Fsave
会重写pwscf.xml
会重写pwscf.wfc* 一共ntask个
所以如果这一步的ntask少于第二步用的ntask的话会只覆盖前面的,会出问题
会更新pwscf.save的内容
更新data-file-schema.xml
不更新charge-density.dat
更新pwscf.save/wfc*.dat #MgB2变为210个
#nscf.out中的
#number of k points=   210 (tetrahedron method)
#因为nscf.in用了密网格

3.2 计算屏蔽库仑相互作用下的波函数(Calculation of wave functions for the screened Coulomb interaction)

Input file: twin.in

Program: pw.x (QuantumESPRESSO)

$ bash PATH/twingrid.x 4 4 4 >> twin.in
$ mpiexec -np 32 PATH/pw.x -nk 32 -in twin.in > twin.out

(此处用粗网格)

重要参数
calculation = “bands”

产生k点使用twingrid.x,将其重定向到输入文件,如上所示。k点网格必须和 ph.x计算电声相互作用时input 使用的 nq1, nq2, and nq3 一样。然后运行pw.x

生成文件:

twin.out
更新pwscf.xml
更新pwscf.save/data-file-schema.xml
更新pwscf.save/wfc*.dat 的前96#96是粗网格里的k点个数,在twin.out中
#number of k points=    96

3.3 计算屏蔽库仑相互作用

Input file: sctk.in

Program: sctk.x

$ mpiexec -np 32 PATH/sctk.x -nk 32 -in sctk.in > kel.out

重要参数:

calculation = “kel”
计算 screened Couplmb / spin-fluctuation interaction.

nq1, nq2, nq3
They must be the same as the k in the previous step.

生成文件:

kel.out
vel*.dat #共nq个

4. SCDFT SCF calculation

算完声子(第二步)和屏蔽库伦相互作用(第三步)我们就可以算SCDFT了

Input file: sctk.in (Should be modified)

Program: sctk.x

$ export OMP_NUM_THREADS=32
$ mpiexec -np 1 PATH/sctk.x < sctk.in > tc.out

重要参数
calculation = “scdft_tc”
通过改变这部分,我们改变了计算的类型。这里,我们用二分法得到Tc(the bisection method)。

5.更多分析

5.1画费米面相关的图

文献的图:

Top views of Fermi velocity of the electronic states |𝑉_𝐹 |(左),electron-phonon coupling renormalization 𝑍_𝑛𝑘(中), and superconducting gap function Δ_𝑛𝑘 (右)

现在我们来看怎么计算这三个图:
第一个图用QE/PP部分的fermi_velocity.x
http://www.quantum-espresso.org/Doc/pp_user_guide/node9.html

$ mpiexec -np 29 PATH/pw.x -nk 29 -in scf.in > F_scf.out #先重新执行一下自洽

$PATH/fermi_velocity.x scf.in > FS_vf.out

执行完会得到vfermi.frmsf文件,拖到桌面上,使用软件fermisurfer绘制图形
在这里插入图片描述
画第二个,第三个图:

Input file: sctk.in (Should be modified)

Program: sctk.x

$ mpiexec -np 1 PATH/sctk.x < sctk.in

calculation = “deltaf”
执行完会得到Z.frmsf,delta.frmsf文件,拖到桌面上,使用软件fermisurfer绘制图形
在这里插入图片描述

5.2其他分析

calculation = “lambda_mu_k”
生成 lambda.frmsf, mu.frmsf,使用软件fermisurfer可以绘制图形
输入文件不需要&KEL,只需要&SCDFT在这里插入图片描述

calculation = “scdft”
在某个温度下执行SCDFT计算,然后输出一个文件delta.dat,该文件由以下后处理使用。

temp
温度(开尔文)。如果它被设为0或负值,sctk.x使用特殊的算法来精确的零开尔文

calculation = “qpdos”
准粒子DOS。它需要很长的计算时间。

5.3所有输入文件的k,q设置

https://arxiv.org/pdf/1911.06481.pdf
Sec.3 D 使用三种不同的网格密度
1.粗网格(C)
2.中等密度网格(M)
3.密网格(D:w)
下面是例子中的输入文件使用的网格

文件名AlMgB2
1.scf.ink=888(M);q=无k=886;q=无
2.1 ph.ink=888(M);q=444( C)k=886;q=443
2.2 epmat.ink=444( C);q=444( C)k=443;q=443
3.1 nsfc.ink=16 16 16(D);q=无k=16 16 12 q=无
3.2 twin.ink=444(C)k=443
3.3 sctk.inq=444( C)q=443

5.4 画声子谱

和正常画声子谱一样,注意一定要用sctk里的q2r.x和matdyn.x直接用QE里的会报错。且q2r.in和matdyn.in里要加一行lshift_q = .true.

6. sctk.in的参数设置

6.1 calculation = “kel”

在这里插入图片描述
在这里插入图片描述
start_q : 计算屏蔽库伦相互作用的第一个q点
last_q:最后一个q点,默认是不可约BZ中的q点数
laddxc:使用的假设 0 : RPA, 1: Adiabatic LDA.
lsf:是否计算the spin-fluctuation,1计算,0不计算
ecutwfc:和pw.x一样
nq1, nq2, nq3:和 twingrid.x 一样
nci:The number of Matsubara frequencies of screened Coulomb interactions.
在程序中对于它的描述为“# of Chebyshev int. : nci”(切比雪夫整数???)

6.2 calculation = “scdft”

在这里插入图片描述
temp: 温度(开尔文)
fbee:计算gap函数的第一个带
lbee:计算gap函数的最后一个带。nbnd in pw.x
xic:间隙函数外推法的参数。小于0时不使用这个方法。默认不使用。
nmf:计算 the Coulomb kernel的松原频率数。设为0时使用静态Coulomb
kernel。设成负数只用the phononic kernel,Coulomb kernel变为0.
nx:费米能级附近辅助能量网的数目。
ne:仅用于准粒子DOS( calculation of quasi-particle DOS.网站上关于它有专门的章节)的计算。准粒子态密度的能量网格数。
emin:辅助能源网最小能量尺度参数。单位:Ry
emax:仅用于准粒子DOS的计算。计算QPDOS的最大能量。单位:meV
electron_maxstep:求解gap方程的最大迭代次数
conv_thr:gap方程的收敛阈值,当新间隙函数和旧间隙函数之差的范数小于它时,认为系统是收敛的.单位:Ry
filedyn:It must be the same as filedyn in ph.x.别写最好。是动力学矩阵存储的名称。
spin_fluc:是否包含自旋涨落

6.3 是否包含SF的设置

这是MgB2例子的结果

Tcmulambda
kel,scdft,lambda三个步骤全部包含SF12.3080.298930.58202
kel包含,scdft包含,lambda不包含12.3080.238940.58202
kel包含,scdft不包含,lambda不包含16.6860.238940.58202
kel,scdft,lambda全不包含16.6860.238940.58202

kel这一步是否包含没有影响,scdft不包含会影响超导温度,lambda不包含会影响mu,这些参数都不会影响lambda

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值