Phononpy-siesta

Phononpy-gulp(利用 siesta interface)

利用 siesta 输出力的格式,也可用于 lammps 的计算

phononpy 安装

参见:

http://phonopy.github.io/phonopy/install.html#minimum-steps-to-install-and-use-phonopy-via-conda

Workflow

There are two ways to calculate,

(1) atomic forces from finite displacements and

(2) given force constants. You can choose one of them. Forces on atoms or force constants are calculated by your favorite calculator (shown by the octagons in the work flow). The boxes are jobs being done by phonopy, and the circles are input and intermediate output data structures.

procedure

Phonon calculations with siesta、ReaxFF-nn(GULP) and phonopy

The phonopy code can calculate a range of harmonic and quasi-harmonic vibrational properties and from version 2.0 onwards. Information about how to install phonopy is available.

The below examples shows how to calculate the phonons use phononpy with siesta and ReaxFF-nn (GULP).

  1. The (single) distorted geometry and the required phonopy_disp.yaml file is then generated with the command
#先将结构文件转换为siesta输入文件
./smd.py wi --g=gulp.cif
#生成位移文件
phonopy --siesta -c=in.fdf -d --dim="6 6 1" --amplitude=0.02

This constructs a 4x4x4 supercell of the primitive cell and saves the undistorted and distorted supercells as geo.genS and geo.genS-001 respectively. Note that you should test the required number of repeats in supercell required to reach convergence of the band structure (or other properties of interest).

  1. Using the “get_force.py” script to compute the forces through GULP and ReaxFF-nn.
./phonon_force.py
or 
./phonon_force.py --n=1 # use n to specify which supercell to be calculated

Alterativly, to get the siesta force, using mpirun commond instead:(如果使用 GULP 计算,该步骤不需要)

mpirun -n 8 siesta<supercell.fdf>siesta.out
  1. Then create the required FORCE_SETS file
phonopy -f Forces-001.FA Forces-002.FA --siesta

This assumes that the results.tag and phonopy_disp.yaml files are in the same directory (for more complex cases the calcuation should be run in the same directory as the phonopy files and the path to directories containing the DFTB+ output files).

  1. Then specify the path in the Brillouin zone you are interested in (see the phonopy documentation). Then post-process the phonopy data, providing the dimensions of the the supercell repeat either on the command line or in the settings file (a DIM file):

    as an example of graphene

phonopy --siesta -c in.fdf -p --dim="6 6 1" --band="0.0 0.0 0.0 1/4 0.0 0.0  0.5 0.0 0.0  2/3 -1/3 1/2 1/3 -1/6 0.0  0.0 0.0 0.0"
  1. Finally create a band structure in gnuplot format
phonopy-bandplot --gnuplot band.yaml > band.dat

The resulting band structure for the mio carbon model is shown in :numref:​.

band

  • 6 使用 Phonopy 计算二阶力常数
phonopy --writefc --full-fc

此时计算的二阶力常数的长度单位是 Unit of length: au

需要将其力除以 0.529 转换成\AA。可使用如下 Python 脚本进行转换:

f1 = open('FORCE_CONSTANTS_2ND','w')

lines = f0.readlines()
for line in lines:
    l = line.split()
    if len(l)==3:
       print('  {:17.12f} {:17.12f} {:17.12f}'.format(float(l[0])/0.52917721,
             float(l[1])/0.52917721,float(l[2])/0.52917721),file=f1)
    else:
       print(line,end=' ',file=f1)
  
f0.close()
f1.close()

保存成 force_unit.py 文件,然后执行脚本:

./force_unit.py

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...