cndaqiang Web Linux DFT

Learn QE2 原子结构相关:结构优化,MD,NEB,声子谱

2020-03-07
cndaqiang
 
RSS

本学习教程内容主要来自互联网,个人学习记录,仅供参考。
代码仓库LearnQE@cndaqiang

参考

Summer School on Advanced Materials and Molecular Modelling
GitLab for qe2019

示例

结构优化

Graphane relax

relax计算 calculation = 'relax',,添加&IONS原子收敛参数

&IONS
!都有默认值
		!ion_dynamics="bfgs" !relax: bfgs,damp ; md: verlet langevin, langevin-smc....
/

运行

cd LearnQE/DOC/material-for-ljubljana-qe-summer-school-master/Day-2/example1.relax
mpirun -np 4 pw.x -i pw.graphane.relax.in | tee graphane.relax.out
xcrysden  --pwo graphane.relax.out 

xcrysden打开后,可以选择Display All Coordinates as Animation
然后显示不同原子步的结构,分别测量,C-H键长变化:0.9851Ang->1.1083Ang

hcp-Zinc vc-relax

vc-relax,变cell结构优化,要加上&CELL

 &IONS
 /
 &CELL
 /

运行

mpirun -np 4 pw.x -i pw.Zn.vc-relax.in | tee Zn.vc-relax.out
xcrysden --pwo  Zn.vc-relax.out

MD分子动力学[略]

与结构优化类似,添加步长dt和总步数nstep,

&CONTROL
	  calculation="md" !scf nscf 
      nstep=68
      dt=4
/
&IONS
!tempw起始温度
!		tempw = 0.1
!系综,verlet(NVE)
		ion_dynamics="verlet"
/
&CELL
/

NEB计算

输入文件结构示例

BEGIN

BEGIN_PATH_INPUT
&PATH
nstep_path = 200 !最大步数
num_of_images = 7
!默认pwscf_1 pwscf_N仅计算一次,只有2-N1共N-2个image参与后续的迭代
!设置first_last_opt = .True. 1,N也参与迭代
!first_last_opt = .False.
/
END_PATH_INPUT

BEGIN_ENGINE_INPUT
!各个图像的计算参数,把pw.x的输入复制过来,
!仅不包含原子结构ATOMIC_POSITIONS,其他的如晶格参数,赝势依旧在此处填写
&CONTROL
pseudo_dir = './'
/
&SYSTEM
  ibrav = 0
  A =    1.00000000000000
  nat = 3
  ntyp = 3

  ecutwfc = 30 
!  	kinetic energy cutoff (Ry) for wavefunctions
  ecutrho = 200 !4*ecutwfc

/
&ELECTRONS
/

CELL_PARAMETERS {alat}
  20.0000000000000000   0.0000000000000000   0.0000000000000000
   0.0000000000000000  20.0000000000000000   0.0000000000000000
   0.0000000000000000   0.0000000000000000  20.0000000000000000
ATOMIC_SPECIES
  C 12.0107 C_ONCV_PBE_fr.upf
  N 14.0067 N_ONCV_PBE_fr.upf
  H 1.00794 H_ONCV_PBE_fr.upf
K_POINTS {automatic}
1 1 1  0 0 0

BEGIN_POSITIONS
!初始IMAGE,终止IMAGE
FIRST_IMAGE
ATOMIC_POSITIONS {crystal}
  C   0.4999025166406645 0.5000000000000000 0.5000000000000000
  N   0.5578501003511457 0.5000000000000000 0.5000000000000000
  H   0.4462473830081877 0.5000000000000000 0.5000000000000000 
LAST_IMAGE
ATOMIC_POSITIONS {crystal}
  C   0.5000000000000000 0.5000000000000000 0.4414141678546500
  N   0.5000000000000000 0.5000000000000000 0.5001920800889998
  H   0.5000000000000000 0.5000000000000000 0.5503937520563474
END_POSITIONS
   
END_ENGINE_INPUT
END

运行

  • 默认的计算方式,创建pwscf_[1-N],然后分别进入到相应的文件夹进行计算
    可以看到开始时只有pwscf_1中有输出,随后其他文件夹内以此出现输出文件
    mpirun -np 4 neb.x -i neb.in | tee neb.out
    
  • 使用image并行(-ni n),可以同时开始好几个pwscf_的计算,如下,有四个image同时计算
    image并行的image数量小于等于neb的image-2,因为初始和最终的image不参与后续的计算
    如果设置first_last_opt = .True.,初始,最终的image也参与计算,此时image并行的image数量小于等于neb的image
    mpirun -np 4 neb.x -ni 4  -i neb.in | tee neb.out
    

xcrysden 可以根据neb.in生成变化动图,如下例

HCN 转换为 CNH 的过程

工作路径

LearnQE/DOC/material-for-ljubljana-qe-summer-school-master/Day-2/example3.neb/HCN_CNH

之前使用VASP+VTST的计算结果DFT-EXERCISES中的6.5节

计算输出

运行

EXEC=/public/home/chendq/soft/intel17/qe-6.4.1/bin/neb.x
srun --mpi=pmi2 $EXEC -ni 5 -i neb.in | tee result

下面的输出,是我中途kill了neb.x的结果,不是最终收敛的结果

  • neb.dat 是输入neb.in中的&PATH的备份
  • pw_1.in pw_2.in 是neb.in中的初态,末态scf计算的参数和坐标
  • pwscf_i 各个image的运行目录,与正常的scf计算相同,pwscf_i/PW.out是标准输出
  • pwscf.int ??
  • pwscf.dat中[反应坐标,相对能量,error]与标准输出中的一致,用于画反应势能面
        image        energy (eV)        error (eV/A)        frozen
    
           1       -455.0343548            3.837393            T
           2       -454.1570363           17.615266            F
           3       -453.7100989           11.466074            F
           4       -453.2121126            3.452926            F
           5       -453.9481453            0.191098            F
           6       -453.7209844           14.164421            F
           7       -454.3738303            3.409830            T
    
  • pwscf.pathI 每次迭代的反应路径
C_ONCV_PBE_fr.upf  pwscf.dat     pwscf.path26  pwscf.path46
H_ONCV_PBE_fr.upf  pwscf.int     pwscf.path27  pwscf.path47
neb.dat            pwscf.path    pwscf.path28  pwscf.path48
neb.in             pwscf.path0   pwscf.path29  pwscf.path49
N_ONCV_PBE_fr.upf  pwscf.path1   pwscf.path3   pwscf.path5
out.1_0            pwscf.path10  pwscf.path30  pwscf.path50
out.2_0            pwscf.path11  pwscf.path31  pwscf.path51
out.3_0            pwscf.path12  pwscf.path32  pwscf.path52
out.4_0            pwscf.path13  pwscf.path33  pwscf.path53
out.5_0            pwscf.path14  pwscf.path34  pwscf.path54
out.6_0            pwscf.path15  pwscf.path35  pwscf.path55
pw_1.in            pwscf.path16  pwscf.path36  pwscf.path6
pw_2.in            pwscf.path17  pwscf.path37  pwscf.path7
pwscf_1            pwscf.path18  pwscf.path38  pwscf.path8
pwscf_2            pwscf.path19  pwscf.path39  pwscf.path9
pwscf_3            pwscf.path2   pwscf.path4   pwscf.xyz
pwscf_4            pwscf.path20  pwscf.path40  result
pwscf_5            pwscf.path21  pwscf.path41  run-qe-sslab.sh
pwscf_6            pwscf.path22  pwscf.path42  run-qe-sslab.sh.e1010102
pwscf_7            pwscf.path23  pwscf.path43  run-qe-sslab.sh.o1010102
pwscf.axsf         pwscf.path24  pwscf.path44
pwscf.crd          pwscf.path25  pwscf.path45

结果等待SSLAB中

振动模式计算

  • 注意区分dynmat.xmatdyn.x不是一个程序
  • 计算耗时主要来自于ph.x的计算
  • 如果赝势来源有问题,很可能算出来的结果完全错的,也没有很好的收敛性
  • 注意ph.x和matdyn.x输入q点坐标时,默认的单位是2pi/a,不是分数坐标,matdyn.x可以通过q_in_cryst_coord=.true.设置成倒格式的分数坐标,但是ph.x只能用2pi/a输入,而且输出的所有文件中的q都是以2pi/a为单位.
  • ph.x续算,删除_phN/pwscf.save,输入参数添加recover=.true.即可,自动续算的作业提交方式sbatch --dependency=afternotok:5718202 run-tdpw-huairou.sh

计算流程

计算流程和电子自洽计算一样:

  • 1.pw.x:电子结构计算
  • 2.0 ph.x计算单q点(声子波矢,如$\Gamma$点)的力常数ldisp=.false.,见下
    • 2.0.1 dynmat.x后处理动力学矩阵文件,得到红外拉曼,运动图像等信息
  • 2.1 ph.x:自洽计算均一网格点(q-mesh)的$C_{s\alpha,s’\beta}(q_{ijk})$,ldisp=.true.需要测试qmesh的收敛性
    • 2.1.1 q2r.x:傅立叶变换到实空间(interatomic force constants, IFC): $C_{s\alpha,s’\beta}(q_{ijk})$ 到$C_{s\alpha,s’\beta}(R_{lmn})$
    • 2.1.2 matdyn.x:从实空间傅立叶到q空间,用于插值快速计算指定q点的$C_{s\alpha,s’\beta}(q’_{ijk})$ \(\begin{array}{c} C_{s\alpha,s'\beta}(R_{lmn})=\frac{1}{N_q}\sum_{i,j,k}C_{s\alpha,s'\beta}(q_{ijk})e^{iq_{ijk}R_{lmn}} \\ C_{s\alpha,s'\beta}(q_{ijk})=\sum_{l,m,n}C_{s\alpha,s'\beta}(R_{lmn})e^{-iq_{ijk}R_{lmn}} \end{array}\)
  • 2.2 ph.x: 直接计算q点列表的动力学矩阵,ldisp=.true.,qplot=.true.
    • 2.2.1 matdyn.x:直接自洽求解$C_{s\alpha,s’\beta}(q’_{ijk})$,可用于确认2.1的方法qmesh是否足够收敛

ph.x计算声子信息(动力学矩阵)

&INPUTPH
prefix='pwscf'
tr2_ph=1d-12 !阈值,提高可以减少部分虚频
fildyn='matdyn'!保存用于后处理文件

!这三个量只会在非金属体系的q=(0,0,0)点计算,其他材料或者其他q点(q!=0),则不会计算,设置也没有用
!当ldisp=.FALSE.时,这三个量才由输入参数决定
!当ldisp=.true.时,如果有q=0的点,且是非金属,则会强制计算这个q点的这三个信息`/PHonon/PH/prepare_q.f90`
!  IF (elph_ahc) THEN
!     epsil = .FALSE.
!     zeu = .FALSE.
!     zue = .FALSE.
!  ENDIF
!epsil=.true. !红外活性, 仅适用于半导体, 即自洽计算的occupations = 'fixed', epsil = epsil .OR. lraman .OR. elop
!zeu=epsil !effective charges  are computed from the dielectric
!zue=.false. !effective charges are computed from the phonon density responses.

!lraman=.true. !拉曼活性

!q点的计算方式MP网格,二维网格,q点列表
!ldisp=.false.  !使用nq1,nq2,nq3设置q点网格,或者qplot=.true.读入q点列表
!  nq1 = 1,
!  nq2 = 1,
!  nq3 = 1,
!qplot=.false. !读入q点列表,需要设置ldisp=.true., 而且会输出`fildyn`+`.freq`文件,里面是各个q点振动模式的本征值,band.x的输出格式,和matdyn.x输出的flfrq='matdyn.freq'内容一样
!q2d = .false. !利用q点列表生成二维的q点网格
!q_in_band_form = .false. !.true. 和pwscf计算能带一样,q点列表为高对称q点和q点间隔nq, .false. 直接计算输入的q点列表

!nat_todo=0 !不计算指定q点,而是计算指定原子的自由度对应的声子
!electron_phonon='' !电声耦合系数
!asr=.true.

/
!q点列表,原子列表, 必须紧贴着/下一行些,不能有空行和注释行
!注意单位都是2i/a
!> ldisp=.false., qplot=.false., 只能输入一个q点列表,qx,qy,qz
!0.0 0.0  0.0
!> ldisp=.true.,qplot=.false., 空,使用上面的nq1,2,3
!> ldisp=.true.,qplot=.true., 类似于K点的输入,具体见q2d,q_in_band_form
!nqs
!q1x q1y q1z nq1
!...
!qnx qny qnz nqn
!
  • ldisp=.false. 时,只输出fildyn='matdyn'文件,即指定q点的动力学矩阵
  • ldisp=.true., nq1,2,3,
    nq1=nq2=nq3=1只有1个q点时和ldisp=.false.的计算相同, 但是ldisp=.true.时,对于半导体材料,在q=(0,0,0)的点会强制计算epsil,zeu,zue 输出matdyn0(q点列表),matdyn[1-N]动力学矩阵文件,同ldisp=.false.中的fildyn='matdyn'文件
  • epsil=.true. , 红外活性,拉曼活性, 仅适用于半导体, 即自洽计算的occupations = ‘fixed’,

    7.6 HOW CAN I CALCULATE RAMAN/IR COEFFICIENTS IN METALS?
    You cannot: they are well defined only for insulators.
    7.7 HOW CAN I CALCULATE THE ELECTRON-PHONON COEFFICIENTS IN INSULATORS?
    You cannot: the current implementation is for metals only.

动力学矩阵文件格式

  • 只能由ph.x输出fildyn='matdyn',不仅是密度矩阵,还包含了一系列的信息
    如设置了epsil则会计算Dielectric Tensor:,Effective Charges E-U: Z_{alpha}{s,beta}等项,否则不计算为空
  • ldisp=.false.时输出到一个动力学矩阵文件文件matdyn
  • ldisp=.true. 时输出到1(matdyn0,q点网格)+$N_q$(matdyn1,…,matdynI,…matdynN,动力学矩阵文件)个文件
  • matdynmatdynI都是动力学矩阵文件,内容格式一模一样
    • Dynamical matrix file 晶格,原子坐标
    • Dynamical Matrix in cartesian axes 动力学矩阵
    • Dielectric Tensor:
    • Effective Charges E-U: Z_{alpha}{s,beta}
    • Diagonalizing the dynamical matrix 动力学矩阵的 本征矢量
  • 使用dynmat.x后处理单个动力学矩阵文件matdynmatdynI
  • 使用q2r.x可以把matdyn[1-N]转换到实空间,matdyn.x继续转换为指定q点的动力学矩阵,但是matdyn.x输出的只有动力学矩阵,不包含晶格, 节点,本征矢量等信息.
Dynamical matrix file
晶格原子结构
     !>>>>> 动力学矩阵
     Dynamical  Matrix in cartesian axes

     q = (    0.000000000   0.000000000   0.000000000 )

    1    1
  2.06042047   0.00000000     0.00000000   0.00000000     0.00000000   0.00000000
  0.00000000   0.00000000     0.08783090   0.00000000     0.00000000   0.00000000
  0.00000000   0.00000000     0.00000000   0.00000000     0.08783090   0.00000000

     Dielectric Tensor:
     Effective Charges E-U: Z_{alpha}{s,beta}
     atom #    1
     ...
     !>>>>>>>>>> q,频率,本征矢量
     Diagonalizing the dynamical matrix 

     q = (   -0.050000000   0.000000000   0.000000000 )

 **************************************************************************
     freq (    1) =      -6.661608 [THz] =    -222.207322 [cm-1]
 (  0.000000  0.000000 -0.527975  0.000000  0.000000  0.000000 )
 (  0.000000  0.000000 -0.527975  0.000000 -0.000000  0.000000 )
 (  0.000000  0.000000 -0.665195  0.000000  0.000000  0.000000 )

dynmat.x后处理单个q点的动力学矩阵文件

直接处理ph.x的计算结果matdyn,matdyn[1-N]

  • 读入单个动力学矩阵文件
  • Acoustic Sum Rule (if q=0)
  • 对角化动力学矩阵
  • 计算红外和拉曼散射截面
  • 保存结果用于画图
&INPUT
fildyn='matdyn'   !动力学矩阵文件,只能由ph.x的`fildyn`输入
!fildyn='matdyn1' !多个q点时,读入特定q点
filout='dynmat.out' !同密度矩阵文件格式中的Diagonalizing the dynamical matrix项,是normalized phonon displacements
!(i.e. eigenvectors divided by the square root of the mass and then normalized; they are not orthogonal)
!fileig='dynmat.eig' !>>>默认不输出, 也是 eigenvectors(they are orthogonal), 几乎同filout='dynmat.out'
!不过这两个文件和原始的matdyn文件中的Diagonalizing the dynamical matrix项又存在差异,为什么呢?
filmol='dynmat.mold' !Molden Format格式,频率,坐标,振动模式,可能给特定程序后处理用
filxsf='dynmat.axsf' !图形化展示原子的运动
/

q2r.x,matdyn.x 指定q点的声子频率

注意区分dynmat.xmatdyn.x不是一个程序
从qe-6.8开始,PHonon/Doc目录中才出现matdyn和q2r的说明手册

q2r.x读入动力学矩阵$C_{s\alpha,s’\beta}(q_{ijk})$,计算原子间力常数interatomic force constants (IFC), C(R)

&INPUT
fildyn="matdyn" !读入matdyn0,matdyn[1-N],找不到matdyn0,也会
flfrc='matdyn.ifc' ! 原子间力常数文件,Output file containing the IFC in real space (must be specified)
/

matdyn.x读入IFC( q2r.x 计算的 interatomic force constants ),计算给定q点的声子频率

&INPUT
flfrc="matdyn.ifc"  !同q2r
!dos=.false. !true 计算dos, false计算band
!dos参数
!nk1, nk2, nk3 计算dos的均一k点网格
!deltaE !dE,单位cm^-1
!degauss=0.0 !展宽
!fldos='matdyn.dos' 

!一些信息和dynmat.x类似,fildyn,filout,fileig
!fldyn="matdyn.mat"   !>>>默认不输出,和ph.x的输出相比,是matdyn文件的部分信息, 仅包含Dynamical  Matrix in cartesian axes
!flvec='matdyn.modes' !>>>默认输出,信息足够<<< 同密度矩阵文件格式中的Diagonalizing the dynamical matrix项,是normalized phonon displacements, 同上filout
!flfrq='matdyn.freq'  !>>>默认输出,信息足够<<< 频率信息,是qe的band.x类型的输出,可以用plotband.x处理,只有声子坐标和频率
!fleig='matdyn.eig'   !>>>默认不输出,phonon eigenvectors, 同上fileig


!q点形式,和ph.x类似
!q_in_band_form=.false. !按照能带格式录入
!q_in_cryst_coord=.false. !设为True,则录入的q点坐标是分数坐标, 否则按照2pi/a为单位
/
!q点列表格式,在dos=.false.时读入
!qe q_in_band_form == .trun. dos == .false.
!nqs
!q1x q1y q1z nq
!... 同能带
!qe .a_in_band_form == .false. dos == .false., q点列表
!nq
!q1x q1y q1z
!...

2.0 分子振荡频率($\Gamma$点声子谱)

参考

利用xcryden画出振动模式图

#自洽计算
mpirun -np 20 pw.x -i input.in | tee scf.result
#ph.x
mpirun -np 20 ph.x   -i ph.in | tee ph.result
#使用image并行运行ph.x, 把表示分配到不同的CPU里面去加速计算
#mpirun -np 20 ph.x   -i ph.in -ni 2 | tee ph.result
#dynmat.x用于图形化展示振动特征
dynmat.x -i dynmat.in | tee dynmat.result

ph.in全部使用默认参数

&INPUTPH
/
0.0 0.0 0.0

dynmat.in全部使用默认参数

&INPUT
!fildyn='matdyn'
!filxsf='dynmat.axsf'!输出展示文件
/
展示苯环的振动模式

参数同上,使用xcrysden打开dynmat.axsf,display显示受力,Modify可以修改里的显示方式

使用上述参数计算NH3的振动频率

参数同上,从matdyn中读入频率画图 下图为$NH_3$的振动频率和使用VASP计算:5.2 NH3 振动频率的结果一致

./matdyn.py

CO2的拉曼和红外模式识别

参数同上,通过提高tr2_ph=1d-14精度,计算的虚频就没有了,计算出三支主要的频率648.1,1346.7,2403.0分别对应红外IR,拉曼Raman,红外IR模式

(python37) cndaqiang@mommint:~/work/tdpw/LearnQE/DOC/material-for-ljubljana-qe-summer-school-master/Day-3/ph_CO2_LDA$ !grep
grep freq ph.result | grep -v THz
     freq (   1-   1) =         25.3  [cm-1]   --> A_2u X_4' M_4'  I
     freq (   2-   3) =         27.0  [cm-1]   --> E_g  X_5  M_5   R
     freq (   4-   5) =         86.1  [cm-1]   --> E_u  X_5' M_5'  I
     freq (   6-   7) =        648.1  [cm-1]   --> E_u  X_5' M_5'  I
     freq (   8-   8) =       1346.7  [cm-1]   --> A_1g X_1  M_1   R
     freq (   9-   9) =       2403.0  [cm-1]   --> A_2u X_4' M_4'  I

ph.in中添加下面参数计算红外和拉曼光谱,会计算介电性值

提取结果:dynmat.x -i dynmat.in | tee dynmat.result

# mode   [cm-1]    [THz]      IR          Raman   depol.fact
    1     25.33    0.7595    0.0000         0.0000    0.7500
    2     26.99    0.8093    0.0000         2.8224    0.7500
    3     26.99    0.8093    0.0000         2.8224    0.7500
    4     86.07    2.5802    0.0000         0.0000    0.7500
    5     86.07    2.5802    0.0000         0.0000       NaN
    6    648.08   19.4288    0.5810         0.0000    0.7500
    7    648.08   19.4288    0.5810         0.0000       NaN
    8   1346.73   40.3739    0.0000        27.4919    0.0995
    9   2403.03   72.0411   13.5277         0.0000    0.7500

2.1/2.2声子谱计算

流程见上, 示例目录

LearnQE/DOC/material-for-ljubljana-qe-summer-school-master/Day-3/ph_Si2

scf计算

mpirun -np 20 pw.x -i input.in | tee result
2.1 傅立叶变化计算声子谱

自洽计算q网格点mpirun ph.x -i ph.in | tee ph.result,参数

 &inputph
  prefix='pwscf',
  tr2_ph = 1.0d-14,
  ldisp = .true.,
  nq1 = 2,
  nq2 = 2,
  nq3 = 2,
  outdir='../'
  fildyn='matdyn',
!lraman=.true.
 /

FFT到实空间q2r.x -i q2r.in | tee q2r.result,生成IFC文件

&INPUT
fildyn="matdyn" !读入matdyn0,matdyn[1-N],找不到matdyn0,也会
flfrc='matdyn.ifc' ! 原子间力常数文件,Output file containing the IFC in real space (must be specified)
zasr='simple'
/

计算指定q点的声子谱matdyn.x -i matdyn.in | tee matdyn.result

&INPUT
flfrc="matdyn.ifc"  !同q2r
q_in_band_form=.true.
asr='simple'
/
5
0.0 0.0 0.0 10 \Gamma
1.0 0.0 0.0 10  X
1.0 1.0 0.0 10  W
0.0 0.0 0.0 10 \Gamma
0.5 0.5 0.0 0  L

产生matdyn.modes模式详细信息,matdyn.freq声子谱(单位$cm^{-1}$)

2.2 直接计算声子谱
LearnQE/DOC/material-for-ljubljana-qe-summer-school-master/Day-3/ph_Si2/direct

设置 ldisp = .true., qplot=.true., 直接填入要计算的q点坐标,在mpirun ph.x -i ph.in | tee ph.result后就会输出matdyn.freq

 &inputph
  prefix='pwscf',
  tr2_ph = 1.0d-14,
  ldisp = .true.,
  nq1 = 1,
  nq2 = 1,
  nq3 = 1,
  qplot=.true.
  q_in_band_form=.true.
  outdir='../'
  fildyn='matdyn',
!lraman=.true.
 /
5
0.0 0.0 0.0 10 \Gamma
1.0 0.0 0.0 10  X
1.0 1.0 0.0 10  W
0.0 0.0 0.0 10 \Gamma
0.5 0.5 0.0 0  L

这里对比了ph.x的参数nq=1x1x1,2x2x2,4x4x4,8x8x8以及,直接在ph.x的输入文件中写入q点坐标的计算结果,对比结果如图.
可以见q点密度上去后,是会逐渐和直接算的结果趋于一致(其实$\Gamma$点附近还是有点不一样的)

plotband.x.py -i 1x1x1/matdyn.in -eig 1x1x1/matdyn.freq 2x2x2/matdyn.freq 4x4x4/matdyn.freq 8x8x8/matdyn.freq direct/matdyn.freq

测试

  • 波函数的数量(nbnd)对声子&介电性值计算没有明显影响
image并行

-ni示例

#ph.x
mpirun  ph.x   -i ph.in -npool 2 -ni 36  | tee ph.result

可以在ph.result中看到,第一个image只算一个表示和某些原子

     Atomic displacements:
     There are   36 irreducible representations

     Representation     1      1 modes -  To be done

     Representation     2      1 modes -  Not done in this run

     Representation     3      1 modes -  Not done in this run
     ......
     Representation    36      1 modes -  Not done in this run

     Compute atoms:     5,    6,    7,    8,

第2个image的屏幕输出在out.1_0…, 计算文件夹在_phN

用时对比

#mpirun -np 6 ph.x -i ph.Si.in | tee ph.result
#     PHONON       :     17.58s CPU     20.73s WALL
#mpirun -np 6 ph.x -i ph.Si.in -ni 6 | tee ph.result
#     PHONON       :     16.98s CPU     17.53s WALL
#mpirun -np 1 ph.x -i ph.Si.in | tee ph.result
#     PHONON       :     34.96s CPU     36.03s WALL
startq加速ph.x计算

不同q点顺序同时开始计算

&INPUTPH
start_q=1
last_q=10
outdir="1_10.out" !如果希望不同q点顺序同时开始计算,必须给他们指定不同的outdir存储中间变量,把scf的outdir复制一份即可
/

附录

xcrysden help

       --xsf file
           Load structure from XCrySDen's-Structure-File (XSF) formatted file.

       --cube file
       --gXX_cube file
       --g98_cube file
           Load  structure  from  Gaussian cube file. The cube file should be produced with the Cube=Cards option. Only scalar cube files are supported, that
           is, Cube=(Cards,Density) or Cube=(Cards,Orbitals) or Cube=(Cards,Potential). Refer to GAUSSIAN manual for the meaning of this keywords.

       --pwi
       --pw_inp file
           Load structure from pw.x input file. pw.x is a  pseudopotential  planewave  program  of  the  Quantum-ESPRESSO  distribution  (http://www.quantum-
           espresso.org/).

       --pwo
       --pw_out file
           Load  structure  from  pw.x  output  file.  pw.x  is a pseudopotential planewave program of the Quantum-ESPRESSO distribution (http://www.quantum-
           espresso.org/).

       -s script
       --script script
           Load script from file containing Tcl script.

本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


类似文章


评论


广告


广告
访客数据