弹性常数计算


二阶弹性常数计算

主要采用能量–应变方法

AELAS软件计算

必要的文件

elas_strain.sh
elas_cal.sh
POTCAR
INPOS 优化后的POSCAR。可在脚本设置或者单独给出
KPOINTS 可在脚本设置或者单独给出
incar_rlx 可在脚本设置或者单独给出
incar_stc 

elas_strain.sh脚本参考如下:

#!/bin/bash

cat > INPOS <<!
Si8                                     
1.00000000000000     
  5.4684663969085214    0.0000000000000000    0.0000000000000000
  0.0000000000000000    5.4684663969085214    0.0000000000000000
  0.0000000000000000    0.0000000000000000    5.4684663969085214
Si
8
Direct
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.2500000000000000  0.7500000000000000  0.7500000000000000
  0.5000000000000000  0.0000000000000000  0.5000000000000000
  0.0000000000000000  0.5000000000000000  0.5000000000000000
  0.5000000000000000  0.5000000000000000  0.0000000000000000
  0.7500000000000000  0.2500000000000000  0.7500000000000000
  0.7500000000000000  0.7500000000000000  0.2500000000000000
  0.2500000000000000  0.2500000000000000  0.2500000000000000

!

AELAS -g #建立不同应变下的POSCAR_I_J。例如:POSCAR_01_001 #二维生成命令 AELAS -g2d

#产生优化和静态计算的INCAR
cat > incar_rlx <<!
ISTART=0
ICHARG=2
PREC=Accurate
GGA = PE
ADDGRID =.TRUE.

# Electronic relaxation
ENCUT=500
EDIFF=1E-8

ISMEAR=0
SIGMA=0.05
NELMIN=5

# Ionic relaxation
NSW=100
EDIFFG=-1e-3
ISIF=2

IBRION=2
POTIM=0.20

# Other Tags
#PSTRESS=

#Write flags
LWAVE=.FALSE.
LCHARG=.FALSE.
!

cat > incar_stc<<!
ISTART=0
ICHARG=2
PREC=Accurate
GGA = PE
ADDGRID =.TRUE.

# Electronic relaxation
ENCUT=500
EDIFF=1E-8
EDIFFG=-0.001

ISMEAR=-5
#SIGMA = 0.05
POTIM=0.20

# Other Tags
#PSTRESS=

# Write flags
LWAVE=.FALSE.
LCHARG=.FALSE.
!

cat > KPOINTS <<!
A
0
M
9  9  9
0  0  0
!

运行生成应变后的POSCAR及计算输入文件

elas_cal.sh脚本设置如下:

for i in 01 02 03 #根据生成的数量设置
do

for j in 001 002 003 004 005 006 007 008 009 010 011 012 013
do
#优化计算
cp POS_"$i"_$j.vasp POSCAR
cp incar_rlx INCAR
echo "relax I= $i,J = $j"; time mpirun -np 16 vasp_std

#静态计算
cp CONTCAR POSCAR
rm INCAR
cp incar_stc INCAR
echo "static I= $i,J = $j"; time mpirun -np 16 vasp_std
cp OSZICAR OSZICAR_"$i"_$j
rm INCAR
done
done

#计算弹性常数
AELAS -d #二维产生 AELAS -d2d

提交上述脚本计算,成功计算后生成ELADAT文件,形式如下:

 Elastic tensor: 

  153.04   57.11   57.11    0.00    0.00    0.00
   57.11  153.04   57.11    0.00    0.00    0.00
   57.11   57.11  153.04    0.00    0.00    0.00
    0.00    0.00    0.00   74.71    0.00    0.00
    0.00    0.00    0.00    0.00   74.71    0.00
    0.00    0.00    0.00    0.00    0.00   74.71

 Compliance tensor: 

  0.008197 -0.002228 -0.002228  0.000000  0.000000  0.000000
 -0.002228  0.008197 -0.002228  0.000000  0.000000  0.000000
 -0.002228 -0.002228  0.008197  0.000000  0.000000  0.000000
  0.000000  0.000000  0.000000  0.013384  0.000000  0.000000
  0.000000  0.000000  0.000000  0.000000  0.013384  0.000000
  0.000000  0.000000  0.000000  0.000000  0.000000  0.013384

 Young's, shear and bulk moduli and Poisson ratio

   Voigt approximate:   154.93   64.01   89.09   0.210
   Reuss approximate:   149.17   61.09   89.09   0.221
   Hill approximate :   152.05   62.55   89.09   0.216

 Pugh ratio (G/K):   0.7021
 Cauchy pressure (Pc=C12-C44):   -17.60

 Elastic Anisotropy Index

   Chung-Buessem Anisotropy Index (Ac=(Gv-Gr)/(Gv+Gr)):   0.0234
   Universal Elastic Anisotropy Index (Au=5*Gv/Gr+Kv/Kr-6):   0.2396

 Elastic Stability Conditions:  Stable



vaspkit软件

建议使用惯用晶胞,不要使用原始晶胞。可以借用上面软件的AELAS -d生成的RECELL文件。

版本1.0.0及以上

必要的文件

elas_strain.sh
elas_cal.sh
POTCAR
KPOINTS 可在脚本设置或者单独给出
incar_rlx 可在脚本设置或者单独给出
incar_stc
VPKIT.in 可在脚本设置或者单独给出

elas_strain.sh脚本参考如下:


#!/bin/bash

cat > VPKIT.in <<!
1                                                              ! 1 for prep-rocessing, 2 for post-processing
3D                                                             ! 2D for slab, 3D for bulk
13                                                              ! number of strain
-0.018 -0.015 -0.012 -0.009 -0.006 -0.003 0.000 0.003 0.006 0.009 0.012 0.015 0.018 ! magnitude of strain
!

cat > POSCAR <<!
Si8
1.00000000000000
  5.4684663969085214    0.0000000000000000    0.0000000000000000
  0.0000000000000000    5.4684663969085214    0.0000000000000000
  0.0000000000000000    0.0000000000000000    5.4684663969085214
Si
8
Direct
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.2500000000000000  0.7500000000000000  0.7500000000000000
  0.5000000000000000  0.0000000000000000  0.5000000000000000
  0.0000000000000000  0.5000000000000000  0.5000000000000000
  0.5000000000000000  0.5000000000000000  0.0000000000000000
  0.7500000000000000  0.2500000000000000  0.7500000000000000
  0.7500000000000000  0.7500000000000000  0.2500000000000000
  0.2500000000000000  0.2500000000000000  0.2500000000000000

!

#产生优化和静态计算的INCAR
cat > incar_rlx <<!
ISTART=0
ICHARG=2
PREC=Accurate
GGA = PE
ADDGRID =.TRUE.

# Electronic relaxation
ENCUT=500
EDIFF=1E-8

ISMEAR=0
SIGMA=0.05
NELMIN=5

# Ionic relaxation
NSW=100
EDIFFG=-1e-3
ISIF=2

IBRION=2
POTIM=0.20

# Other Tags
#PSTRESS=

#Write flags
LWAVE=.FALSE.
LCHARG=.FALSE.
KPAR=2
!

cat > incar_stc<<!
ISTART=0
ICHARG=2
PREC=Accurate
GGA = PE
ADDGRID =.TRUE.

# Electronic relaxation
ENCUT=500
EDIFF=1E-8
EDIFFG=-0.001

ISMEAR=-5
#SIGMA = 0.05
POTIM=0.20

# Other Tags
#PSTRESS=

# Write flags
LWAVE=.FALSE.
LCHARG=.FALSE.
KPAR=2
!

cat > KPOINTS <<!
A
0
M
9  9  9
0  0  0
!

vaspkit -task 201 #建立不同应变下的POSCAR文件

提交生成应变后的文件夹

elas_cal.sh脚本设置如下:


#!/bin/bash
root_path=`pwd`

for cij in `ls -F | grep /$`
do
  cd ${root_path}/$cij
  for s in strain_*
  do
    cd ${root_path}/$cij/$s
    echo `pwd`

    #优化计算
    cp ../../incar_rlx INCAR
    time mpirun -np 16 vasp_std

    rm INCAR

    #静态计算
    cp ../../incar_stc INCAR
    time mpirun -np 16 vasp_std

  done
done

cd ${root_path}

#计算弹性常数
cat > VPKIT.in <<!
2                                                              ! 1 for prep-rocessing, 2 for post-processing
3D                                                             ! 2D for slab, 3D for bulk
13                                                              ! number of strain
-0.018 -0.015 -0.012 -0.009 -0.006 -0.003 0.000 0.003 0.006 0.009 0.012 0.015 0.018 ! magnitude of strain
!

vaspkit -task 201 > elastics.out

成功计算后生成elastic.out文件,形式如下:

 +---------------------------------------------------------------+
 |             VASPKIT Version: 1.00 (16 Sep. 2019)              |
 |       A Pre- and Post-Processing Program for VASP Code        |
 |            Running VASPKIT Under Command-Line Mode            |
 +---------------------------------------------------------------+
  -->> (01) Reading VPKIT.in File...
 +-------------------------- Warm Tips --------------------------+
      See an example in vaspkit/examples/elastic/diamond_3D,   
   Require the fully-relaxed and standardized Convertional cell.
 +---------------------------------------------------------------+
  -->> (02) Reading Structural Parameters from POSCAR File...
  -->> (03) Calculating the fitting coefficients of energy vs strain.
  -->> Current directory:  Fitting Precision 
              C44 Folder:  0.405E-09
        C11_C12_I Folder:  0.244E-09
       C11_C12_II Folder:  0.744E-08
 +-------------------------- Summary ----------------------------+
 Based on the Strain versus Energy method.
 Crystal Class: m-3m
 Space Group: Fd-3m
 Crystal System: Cubic system
 Including Point group classes: 23, 2/m-3, 432, -43m, 4/m-32/m
 There are 3 independent elastic constants
    C11  C12  C12    0    0    0  
    C12  C11  C12    0    0    0  
    C12  C12  C11    0    0    0  
      0    0    0  C44    0    0  
      0    0    0    0  C44    0  
      0    0    0    0    0  C44  

 Stiffness Tensor C_ij (in GPa):
    153.056     57.116     57.116      0.000      0.000      0.000
     57.116    153.056     57.116      0.000      0.000      0.000
     57.116     57.116    153.056      0.000      0.000      0.000
      0.000      0.000      0.000     99.411      0.000      0.000
      0.000      0.000      0.000      0.000     99.411      0.000
      0.000      0.000      0.000      0.000      0.000     99.411

 Compliance Tensor S_ij (in GPa^{-1}):
   0.008196  -0.002227  -0.002227   0.000000   0.000000   0.000000
  -0.002227   0.008196  -0.002227   0.000000   0.000000   0.000000
  -0.002227  -0.002227   0.008196   0.000000   0.000000   0.000000
   0.000000   0.000000   0.000000   0.010059   0.000000   0.000000
   0.000000   0.000000   0.000000   0.000000   0.010059   0.000000
   0.000000   0.000000   0.000000   0.000000   0.000000   0.010059

 Elastic stability criteria as seen in PRB 90, 224104 (2014).
 Criteria (i) C11 - C12 > 0 meeted.
 Criteria (ii) C11 + 2C12 > 0 meeted.
 Criteria (iii) C44 > 0 meeted.
 This Structure is Mechanically Stable.

 Average mechanical properties for polycrystalline:
 +---------------------------------------------------------------+
 |        Scheme             |   Voigt   |   Reuss   |    Hill   |
 +---------------------------------------------------------------+
 |  Bulk modulus K (GPa)     |   89.096  |   89.096  |   89.096  |
 |  Shear modulus G (GPa)    |   78.835  |   69.569  |   74.202  |
 |  Young's modulus E (GPa)  |  182.637  |  165.605  |  174.236  |
 |  P-wave modulus (GPa)     |  194.209  |  181.855  |  188.032  |
 |  Poisson's ratio v        |    0.158  |    0.190  |    0.174  |
 |  Bulk/Shear ratio         |    1.130  |    1.281  |    1.201  |
 +---------------------------------------------------------------+
 Pugh Ratio: 0.833
 Cauchy Pressure (GPa):  -42.295
 Universal Elastic Anisotropy: 0.666
 ChungBuessem Anisotropy:    0.062
 Isotropic Poissons Ratio: 0.174
 Longitudinal wave velocity (in m/s):   9078.421
 Transverse wave velocity (in m/s):   5702.983
 Average wave velocity (in m/s):   6278.900
 Debye temperature (in K):  683.685
 References:
 [1] Voigt W, Lehrbuch der Kristallphysik (1928)
 [2] Reuss A, Z. Angew. Math. Mech. 9 4958 (1929)
 [3] Hill R, Proc. Phys. Soc. A 65 34954 (1952)
 [4] Debye temperature J. Phys. Chem. Solids 24, 909-917 (1963)
 [5] Elastic wave velocities calculated using Navier's equation
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
 | We Would Appreciate if You Cite in Your Research with VASPKIT.|
 | Ref: V. Wang, N. Xu, J.C. LIU, G. Tang, et al, VASPKIT: A Pre-|
 | and Post-Processing Program for VASP Code, arXiv:1908.08269.  |
 +---------------------------------------------------------------+

文章作者: 天帝君豪
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 天帝君豪 !
 上一篇
晶格常数计算 晶格常数计算
晶格常数测试 (Equation of state method)必要输入文件 run_a0.sh POTCAR INCAR 和 KPOINTS可在run_a0.sh中直接设置,也可以单独给出。 EOS.in 三维立方晶格脚本示例:Si #
下一篇 
Spglib安装教程 Spglib安装教程
Spglib安装教程软件下载地址官网:https://atztogo.github.io/spglib/index.htmlC版本下载:https://github.com/atztogo/spglibpython版本下载:https://
  目录