采用VASP如何计算晶体的弹性常数
VASP计算-力学常数1

VASP 计算----------力学常数摘要本文主要介绍了用VASP 对弹性模量、剪切模量、体积模量以及泊松比等力学常数计算,首先介绍了计算所需的相关基础知识,然后详细的阐述了理论的推导过程和对结果的处理方法,并介绍了VASP 所需文件和生成的文件,最后提供了计算的一个例子和其程序流程图。
目录一、 基础知识 .................................................................................................................... 1 二、 VASP 计算时解析推导 .............................................................................................. 3 三、 VASP 计算 .................................................................................................................. 9 四、 有待继续研究的地方 .............................................................................................. 10 五、 参考文献 .................................................................................................................. 10 六、 附录(一)程序流程图 .......................................................................................... 11 七、附录(二)------一个例子,TaN (12)一、 基础知识[1][2]这部分主要介绍了进行VASP 计算时所需要的概念的解释,其主要部分来自弹性力学,详细的介绍可阅读参考文献。
VASP表面

Next: 采用VASP如何计算晶体的弹性常数 Up: VASP计算实例 Previous: 用VASP 计算Pd金属的晶格常数 Contents用VASP 计算表面能做表面计算时,第一步我们需要测试K 点的收敛性。
通常,在垂直表面方向用1个K 点就可以了,在平行表面方向,可以用和体材料类似的K 点密度。
其次,我们要测试真空厚度(vacuum thickness)的收敛性。
我们构造完一个slab 后,将真空厚度逐渐从增加到,体系的总能量改变不超过10meV 的时候,可以初步认为真空厚度达到标准。
以下是一个3层的(fcc) Pd slab 的能量随着真空厚度的变化。
其INCAR 文件如下:SYSTEM = undeformed fcc Pd (111) surface calculation Startparameter for this run: PREC = AccurateISTART = 0 job : 0-new 1-cont 2-samecut ICHARG = 2 charge: 1-file 2-atom 10-const ISPIN = 1 spin polarized calculation?Electronic Relaxation 1NELM = 90; NELMIN= 8; # of ELM steps EDIFF = 0.1E-03 stopping-criterion for ELM LREAL = .FALSE. real-space projection NBANDS = 40Ionic relaxationEDIFFG = 0.1E-2 stopping-criterion for IOM NSW = 0 number of steps for IOMIBRION = 2 ionic relax: 0-MD 1-quasi-New 2-CG ISIF = 2 stress and relaxationPOTIM = 0.10 time-step for ionic-motion TEIN = 0.0 initial temperatureTEBEG = 0.0; TEEND = 0.0 temperature during runDOS related values:ISMEAR = 1 ; SIGMA = 0.20 broadening in eV -4-tet -1-fermi 0-gausElectronic relaxation 2 (details)Write flagsLWAVE = F write WAVECARLCHARG = F write CHGCARLVTOT = .TRUE.其中因为Pd是金属,ISMEAR设置为method of Methfessel-Paxton。
VASP计算弹性常数

VASP计算弹性常数VASP (Vienna Ab-initio Simulation Package) 是一种常用的第一性原理计算软件包,用于计算物质电子结构和能带结构。
除了电子结构计算,VASP还可以用于计算材料的弹性常数。
在本文中,我们将讨论如何使用VASP计算材料的弹性常数,并了解计算结果的解释。
弹性常数是描述材料变形行为的物理量。
材料在受力作用下产生变形,而弹性常数则定量描述了材料对应力的响应。
弹性常数包括弹性模量、剪切模量、泊松比等。
通过计算这些弹性常数,我们可以了解材料的机械性能和应力应变行为。
首先,我们需要确定计算材料的晶体结构。
这包括晶胞参数、原子位置和晶胞对称性。
在VASP中,我们使用POSCAR文件来描述晶体结构的具体细节。
POSCAR文件包括晶体的晶胞参数、原子种类和位置等信息。
其次,我们需要生成一系列的应变状态。
常见的应变状态包括体积应变、晶格常数应变和剪切应变。
在VASP中,我们可以使用ISIF标志来控制应变类型。
例如,ISIF=3可以用于计算体积应变,ISIF=2可以用于计算剪切应变。
然后,我们需要进行一系列的弛豫计算。
在每个应变状态下,我们需要优化结构以达到最低的总能量。
这可以通过设置IBRION=2和ISIF=3来实现。
这些计算将给出最优的应变状态下的应力张量。
最后,我们可以使用应力和应变的关系来计算材料的弹性常数。
对于单晶材料,弹性常数可以通过应力张量的分量和应变张量的分量之间的线性关系来得到。
C_ij = (stress_i - stress_0_i) / strain_j其中,C_ij是第i个应力分量(i = 1,2,...,6)和第j个应变分量(j = 1,2,...,6)之间的弹性常数,stress_i是在第i个应变分量下计算得到的应力,stress_0_i是在未应变状态下计算得到的应力,strain_j是第j个应变分量。
使用以上计算方法,我们可以得到材料的弹性常数。
VASP使用总结

VASP计算的理论及实践总结一、赝势的选取二、收敛测试1、VASP测试截断能和K 点2、MS测试三、结构弛豫四、VASP的使用流程(计算性质)1、VASP的四个输入文件的设置2、输出文件的查看及指令3、计算单电能(1) 测试截断能(2) 测试K点4、进行结构优化5、计算弹性常数6、一些常用指令一、赝势的选取VASP赝势库中分为:PP和PAW两种势,PP又分为SP(标准)和USPP(超软)。
交换关联函数分为:LDA(局域密度近似)和GGA(广义梯度近似)。
GGA 又分为PW91和PBE。
在VASP中,其中pot ,pot-gga是属于超软势(使用较少)。
Paw, paw-pbe ,和paw-gga是属于PAW。
采用较多的是PAW-pbe 和PAW-gga。
此外vasp 中的赝势分为几种,包扩标准赝势(没有下标的)、还有硬(harder)赝势(_h)、软(softer)赝势(_s), 所谓的硬(难以赝化),就是指该元素原子的截断动能比较大,假想的势能与实际比较接近,计算得到的结果准确,但比较耗时,难以收敛。
软(容易赝化),表示该元素原子的截断动能比较小,赝势模型比较粗糙,但相对简单,可以使计算很快收敛(比如VASP开发的超软赝势)。
即硬的赝势精度高,但计算耗时。
软的精度低,容易收敛,但节省计算时间。
另一种情况:如Gd_3,这是把f电子放入核内处理,对于Gd来说,f电子恰好半满。
所以把f电子作为价电子处理的赝势还是蛮好的(类似还有Lu,全满)。
(相对其他的4f元素来说,至于把f电子作为芯内处理,是以前对4f元素的通用做法。
计算结果挺好)常用的做法是:用两种赝势测试一下对自己所关心的问题的影响情况。
在影响不大的情况下,选用不含4f电子的赝势(即后缀是3),一来减少计算量,二来避免DFT对4f电子的处理。
【1.赝势的选择:vasp的赝势文件放在目录~/vasp/potentials 下,可以看到该目录又包含五个子目录pot pot_GGA potpaw potpaw_GGA potpaw_PBE ,其中每一个子目录对应一种赝势形式。
侯柱峰-vasp计算晶体弹性常数

侯柱峰-vasp计算晶体弹性常数引言晶体弹性常数是描述晶体材料力学性质的重要参数之一,对于理解材料的力学行为和设计新材料具有重要意义。
在材料科学领域中,计算晶体弹性常数的方法多种多样,其中基于第一性原理的计算方法得到了广泛的应用和认可。
本文将介绍侯柱峰等人在VASP软件包中计算晶体弹性常数的方法和步骤。
VASP简介VASP(Vienna Ab-initio Simulation Package)是一款基于密度泛函理论(DFT)的第一性原理计算软件包,由维也纳大学的J. Hafner教授及其团队开发。
VASP以固体物理和材料科学为核心,广泛应用于研究材料的电子结构、力学性质、热力学性质等方面。
VASP计算晶体弹性常数的方法1. 结构优化在计算晶体弹性常数之前,首先需要通过VASP进行结构优化。
结构优化的目的是找到晶体的平衡结构,使得能量最低。
在结构优化过程中,需要设定材料的晶格参数、原子种类和初始位置等参数,并设置计算的精度和收敛标准。
2. 弹性常数计算前的准备在进行弹性常数计算之前,需要对结构进行静力学计算,即计算晶体的内部应力状态。
为此,需要在INCAR文件中设置一些相关的参数,例如选用的泛函类型、截断能等。
3. 弹性常数计算在进行弹性常数计算之前,需要在INCAR文件中添加以下参数:ISTART = 1ICHARG = 2ENCUT = 520ISYM = 0ISMEAR = 0然后运行VASP进行弹性常数的计算。
计算完成后,可以得到弹性常数矩阵,其中包括36个元素,分别对应不同的弹性常数。
4. 弹性常数的后处理在得到弹性常数矩阵之后,需要进行一些后处理来得到弹性常数的具体数值。
这一步可以使用第三方软件进行,例如使用MATLAB来计算并提取需要的弹性常数。
结论侯柱峰等人在VASP软件包中提供了一种计算晶体弹性常数的方法,可以方便而准确地得到晶体的力学性质。
这种方法基于第一性原理,充分考虑了材料的电子结构和原子之间的相互作用,具有很高的可靠性和适用性。
VASP计算有限温度下的晶格常数

VASP计算有限温度下的晶格常数一般VASP算得的晶格常数是在0k下的,现在如果要算300k下的晶格常数,用VASP可否实现。
一种近似是认为二者一样。
反正是在常温常压下,距离熔点很远。
一般来说,VASP计算不能加上温度,除非是做分子动力学的计算,来模拟固定在一定温度下稳定性。
要计算高温下固体的能量和晶格常数、体积,可以计算出不同晶格常数(也就是体积)固体的声子振动频率,再得到自由能,利用F(V)的关系得到在某一个温度下的平衡体积。
(这种办法是一种准谐近似),PRB 上面有很多类似的文章。
有人会问:(1)既然涉及到温度都只能是MD了,为何还能计算高温下的声子振动频率?答:这是因为MD计算也能求解出声子的振动频率,这个在Rev.Mod.Phys.2001的一篇文章就有提到。
(2)得到声子的振动频率在VASP中是设定IBRION=5,但是只能计算Gama 点的振动频率,你的意思是计算Gama点的频率?答:VASP可以任何k点的声子振动频率,不局限于Gamma点。
手册上有提到的,要计算其他非Gamm点的频率需利用一个PHONON的程序。
(3)用VASP计算后的OSZICAR中就直接输出自由能呀!为何还通过计算声子频率再得到自由能呢?怎样得到的呢?答:VASP输出的自由能只是电子部分的,非原子的自由能。
看看VASP 在comput.mat.sci.上面的一篇文章就知道了vasp的理论基础。
G. Kresse and J. Furthmüller, "Efficiency of ab-initio total energy calculations for metals and semiconductors using a plane-wave basis set", Comput. Mat. Sci. 6, 15-50 (1996).如果希望采用准谐近似来计算热学性质,可以参看这样的一篇文章(尽管是对金属单质体系的)PHYSICAL REVIEW B, VOLUME 65, 064302,2002 Ab initiocalculation of the thermal properties of Cu: Performance of the LDA and GGA。
vasp计算参数设置
vasp计算参数设置软件主要功能:采用周期性边界条件(或超原胞模型)处理原子、分子、团簇、纳米线(或管)、薄膜、晶体、准晶和无定性材料,以及表面体系和固体l 计算材料的结构参数(键长、键角、晶格常数、原子位置等)和构型l 计算材料的状态方程和力学性质(体弹性模量和弹性常数)l 计算材料的电子结构(能级、电荷密度分布、能带、电子态密度和ELF)l 计算材料的光学性质l 计算材料的磁学性质l 计算材料的晶格动力学性质(声子谱等)l 表面体系的模拟(重构、表面态和STM模拟)l 从头分子动力学模拟l 计算材料的激发态(GW准粒子修正)计算主要的四个参数文件:INCAR ,POSCAR,POTCAR ,KPOINTS,下面简要介绍,详细权威的请参照手册INCAR文件:该文件控制VASP进行何种性质的计算,并设置了计算方法中一些重要的参数,这些参数主要包括以下几类:l 对所计算的体系进行注释:SYSTEMl 定义如何输入或构造初始的电荷密度和波函数:ISTART,ICHARG,INIWA Vl 定义电子的优化–平面波切断动能和缀加电荷时的切断值:ENCUT,ENAUG–电子部分优化的方法:ALGO,IALGO,LDIAG–电荷密度混合的方法:IMIX,AMIX,AMIN,BMIX,AMIX_MAG,BMIX_MAG,WC,INIMIX,MIXPRE,MAXMIX–自洽迭代步数和收敛标准:NELM,NELMIN,NELMDL,EDIFFl 定义离子或原子的优化–原子位置优化的方法、移动的步长和步数:IBRION,NFREE,POTIM,NSW–分子动力学相关参数:SMASS,TEBEG,TEEND,POMASS,NBLOCK,KBLOCK,PSTRESS–离子弛豫收敛标准:EDIFFGl 定义态密度积分的方法和参数–smearing方法和参数:ISMEAR,SIGMA–计算态密度时能量范围和点数:EMIN,EMAX,NEDOS–计算分波态密度的参数:RWIGS,LORBITl 其它–计算精度控制:PREC–磁性计算:ISPIN,MAGMOM,NUPDOWN–交换关联函数:GGA,VOSKOWN–计算ELF和总的局域势:LELF,LVTOT–结构优化参数:ISIF–等等。
如何用VASP计算晶格常数
如何用VASP计算晶格常数我们用Pd金属作为例子。
Pd金属的实验上的晶格常数为3.89A。
在这里,我们用V ASP计算它的晶格常数。
首先将Pd所对应的POTCAR文件拷贝到目录下。
然后准备好INCAR和KPOINTS文件。
POSCAR文件我们将通过一个tcsh的script来产生。
KPOINTS文件可以如下:Monkhorst PackMonkhorst Pack11 11 110 0 0INCAR文件可以如下:SYSTEM = Pd bulk calculationStartparameter for this run:PREC = AccurateISTART = 0 job : 0-new 1-cont 2-samecutICHARG = 2 charge: 1-file 2-atom 10-constISPIN = 1 spin polarized calculation?Electronic Relaxation 1EDIFF = 0.1E-03 stopping-criterion for ELMLREAL = .FALSE. real-space projectionIonic relaxationEDIFFG = 0.1E-02 stopping-criterion for IOMNSW = 0 number of steps for IOMIBRION = 2 ionic relax: 0-MD 1-quasi-New 2-CGISIF = 2 stress and relaxationPOTIM = 0.10 time-step for ionic-motionTEIN = 0.0 initial temperatureTEBEG = 0.0; TEEND = 0.0 temperature during runDOS related values:ISMEAR = 0 ; SIGMA = 0.05 gaussian smearElectronic relaxation 2 (details)Write flagsLWA VE = F write WA VECARLCHARG = F write CHGCAR产生POSCAR和计算晶格常数的工作可以用以下的PBS script来完成。
VASP使用总结
VASP计算的理论及实践总结一、赝势的选取二、收敛测试1、VASP测试截断能和K 点2、MS测试三、结构弛豫四、VASP的使用流程(计算性质)1、VASP的四个输入文件的设置2、输出文件的查看及指令3、计算单电能(1) 测试截断能(2) 测试K点4、进行结构优化5、计算弹性常数6、一些常用指令一、赝势的选取VASP赝势库中分为:PP和PAW两种势,PP又分为SP(标准)和USPP(超软)。
交换关联函数分为:LDA(局域密度近似)和GGA(广义梯度近似)。
GGA 又分为PW91和PBE。
在VASP中,其中pot ,pot-gga是属于超软势(使用较少)。
Paw, paw-pbe ,和paw-gga是属于PAW。
采用较多的是PAW-pbe 和PAW-gga。
此外vasp 中的赝势分为几种,包扩标准赝势(没有下标的)、还有硬(harder)赝势(_h)、软(softer)赝势(_s), 所谓的硬(难以赝化),就是指该元素原子的截断动能比较大,假想的势能与实际比较接近,计算得到的结果准确,但比较耗时,难以收敛。
软(容易赝化),表示该元素原子的截断动能比较小,赝势模型比较粗糙,但相对简单,可以使计算很快收敛(比如VASP开发的超软赝势)。
即硬的赝势精度高,但计算耗时。
软的精度低,容易收敛,但节省计算时间。
另一种情况:如Gd_3,这是把f电子放入核内处理,对于Gd来说,f电子恰好半满。
所以把f电子作为价电子处理的赝势还是蛮好的(类似还有Lu,全满)。
(相对其他的4f元素来说,至于把f电子作为芯内处理,是以前对4f元素的通用做法。
计算结果挺好)常用的做法是:用两种赝势测试一下对自己所关心的问题的影响情况。
在影响不大的情况下,选用不含4f电子的赝势(即后缀是3),一来减少计算量,二来避免DFT对4f电子的处理。
【1.赝势的选择:vasp的赝势文件放在目录~/vasp/potentials 下,可以看到该目录又包含五个子目录pot pot_GGA potpaw potpaw_GGA potpaw_PBE ,其中每一个子目录对应一种赝势形式。
如何用VASP计算晶格常数
如何用VASP计算晶格常数VASP是一款常用的第一性原理计算软件,可用于计算各种物理和化学性质,包括晶格常数。
本文将通过详细的步骤指导如何使用VASP计算晶格常数。
1.准备工作:在使用VASP计算晶格常数之前,需要准备以下文件:-INCAR文件:包含所有计算参数的输入文件。
- POSCAR文件:包含体系的原子坐标和晶格常数的输入文件。
可以使用外部软件生成,例如Materials Studio、VESTA等。
-POTCAR文件:包含原子势能信息的文件。
-KPOINTS文件:用于定义k点网格,用于计算能带结构。
可以使用自动生成工具进行生成。
2.设置INCAR文件:打开INCAR文件,设置以下参数:-ENCUT:截断能。
一种势能截断参数,对计算结果影响较大。
可通过多次计算逐渐增大其值,直到结果收敛为止。
- ISMEAR:用于定义电子占据数的方法。
常用的选项有Gaussian和Methfessel-Paxton。
- SIGMA:在使用ISMEAR选项为Gaussian时,用于定义宽度的参数。
一般选择小于0.2 eV。
- PREC:定义计算的精度级别。
常用的设置有Low、Normal和High。
-NSW:定义离子进行多少步的迭代。
-ISTART和ICHARG:对于初始的计算,将其设置为0。
-EDIFF:收敛判据。
设置一个合适的值,使得计算结果收敛。
3.设置POSCAR文件:打开POSCAR文件,设置晶体的结构参数。
可以手动输入原子的坐标,或者复制其他软件生成的文件内容。
4.设置POTCAR文件:在VASP的安装目录中,找到POTCAR文件夹,并将需要使用的原子势能文件复制到当前工作目录中。
注意保持POTCAR文件的顺序和POSCAR文件中原子的顺序一致。
5.设置KPOINTS文件:打开KPOINTS文件,在其中设置k点的信息。
k点的密度对计算结果的精度有一定影响,可以根据具体需求进行调整。
在这里,我们将只计算晶格常数,因此可以选择较低的k点密度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
3
ISMEAR = 0; SIGMA = 0.2 NSW = 60; IBRION = 2 EDIFF = 1E-5 EDIFFG = -1E-2 ISIF = 2 POTIM = 0.2 PREC = Accurate LWAVE = .FALSE.
4
3
strten(1,2)=0.5*strain(6) strten(1,3)=0.5*strain(5) strten(2,1)=0.5*strain(6) strten(2,2)=strain(2)+1.0 strten(2,3)=0.5*strain(4) strten(3,1)=0.5*strain(5) strten(3,2)=0.5*strain(4) strten(3,3)=strain(3)+1.0 C%%%%%%%%% Transform the primitive vector to the new vector under strain%%%%% C strvect(i,j)=privect(i,j)*(I+strten(i,j)) do k=1,3 do i=1,3 strvect(i,k)=0.0 do j=1,3 strvect(i,k)=strvect(i,k)+privect(i,j)*strten(j,k) enddo enddo enddo C%%%%%%%% Write the new vector under strain%%%%%%%%%%%% do i=1,3 write(*,100)(strvect(i,j),j=1,3) enddo 100 format(3f20.15) C%%%%%%%%% Create the POSCAR for total energy calculation %%%%%%%%%%%%%%5 write(3,’(A10)’) title write(3,’(f15.10)’) alat do i=1,3 write(3,100)(strvect(i,j),j=1,3) enddo write(3,’(10I4)’) (natomi(i), i=1,ntype) write(3,’(A6)’) Direct do i=1, nn write(3,100) (pos(i,j),j=1,3) enddo C%%%%%%% end
ij
¦
Î
[1, 2]
σ
ùþǑñ Ǒñ
ǫ=
e1 1 2 e6 1 2 e5
1 2 e6
e2
1 2 e5 1 2 e4
1 2 e4
e3
.
(1)
σi =
¦
1 V
∂E (V, ǫj ) ∂ǫi
,
ǫ=0
(2)
Cij =
1 V
∂ 2 E (V, ǫk ) ∂ǫi ∂ǫj 1
,
ǫ=0
(3)
2
ÆÇ
ù
•
ª
 ”Define the strain”Í
ù
³
¿
defvector.f
”Define the strain”
e = (δ, δ, 0, 0, 0, 0)
» ñ
Ç
Ö ù
C11 + C12
Ó
Ä
strain(i)
defvect.f
C%%%%%%%%% Define the strain %%%%%%%%%%%%%% strain(1)=delta strain(2)=delta strain(3)=0.0 strain(4)=0.0 strain(5)=0.0 strain(6)=0.0
¿
¢ ìõ
E (V0 , 0) − → R
Æ
ÓÍE(V, ǫ)Í
6
ǫ V0 2
6
Í Î
ÑǑñ
(4) − →′ R
E (V, {ǫi }) = E (V0 , 0) + V0
σi ei +
i=1
Cij ei ej + . . .
i,j =1
ð Æ Ñ ³ Ǒñ
AlN 2 3.11553 1.000000 0.000000 0.000000 -0.500000 0.866025 0.000000 0.000000 0.000000 1.605000 2 2 Direct 0.00000000 0.00000000 0.00000000 0.333333333 0.666666667 0.50000000 0.00000000 0.00000000 0.381483673 0.333333333 0.666666667 0.881483673
(9)
ñ
æ
∆E = C44 δ 2 V0 e = (δ, δ, δ, 0, 0, 0) C11 C12 C13 C33 ∆E = (C11 + C12 + 2C13 + C33 /2)δ 2 V0
(10)
ñ
(11)
Äæ Í ³ Æ ¦
ù
∆E ∼ δ
ü è ¯ δ ½ á
2
∆E ∼ δ
à
¾ Ç Æ
¿defvector.f ¦ ntype ùþ Ǒ10 ¦ î” write(3,’(10I4)’) (natomi(i), i=1,ntype)” Á Æ natomi(10) ”10I4” ¿defvector.f èª ù defvector.f g77 -o defector.x defector.f) defvector.x • Ç VASPÇ KPOINTS POTCAR ½¦ èò Ç INCAR.relax ËÆ ñ
¸©¿Ç
SYSTEM = AlN ENCUT = 400 ISTART = 0 ICHARG = 2 ISMEAR = -5 EDIFF = 1E-5 PREC = Accurate LWAVE = .FALSE.
Þ
´¨ ½ÓÍ ½
INCAR.static
Ǒ
− →′ − → R = R • (I + ǫ)
î è Æ
Æ ½ Æ
§2
Æ ð Æ æ
Æ ¦ì
Æ Æ ¦
a1
Ǒñ
Í
1 2a 1 2a
³
0 0 . c (6)
− → R = a2 = a3
√ 3 a 2 √ 3 − 2 a
0
0
a
c
e = (δ, δ, 0, 0, 0, 0)
defvector.f
ð
¸
3
POSCAR
ºÍ”Define the
3
strain”
ËÆ ñ
ùþ
Á¿ Ë °½
î
defvect.f
C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C >this simple program to get the primitive vectors after C $\delta$ strain, in order to calculate the independent C elastic constants of solids. C usage: C!!!!! Please first prepare the undeformed POSCAR in C >defvector.x C >type defvector.x > create new POSCAR in file fort.3 C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% program defvector real*8 privect,strvect,delta,strten,strain,pos, alat dimension privect(3,3),strvect(3,3),strten(3,3),strain(6) dimension pos(50,3) character*10 bravlat, title, direct integer i,j,k,ntype, natomi, nn dimension natomi(10)
VASP
Ç
2006
Òñ õ 8 Ò
21
Æ ¦
Cij
(zfhou@)
Æ é Æ î
ý Ǒ ¼« ÄVASPÇ Æ ¦ C ËÆ æ » ììì
ij
§1 §2 §3
¦ Î Æ Æ ¦ ÆÇ ù
õ
[1, 2] 1
Í
§1
³
2 3
¦ ª Æ © ǫ Ǒ ¿ ¢ ìõ Æ ËÍ ¢ ¿ ³ § ù ¦ C ð ³ VoigtÁÈñ xx → 1, yy → 2, zz → 3, yz → 4, xz → 5 xy → 6 ǫù á þǑñ
ÓÍ V ð
0
¦ì Æ ¸©
(5)
ª ü ù ǫ = e = (e , e , e , e , e , e ) Ç ¿è ÓÍ Þ(△E = E(V, ǫ) − E(V, 0)) ¾ ÓÍ Þ ø á Æ ¸ ¦ ù¦ Æ Ǒ ³ ¦ ð´ù ³ ¦ ǑñC , C , C , C C
I
1 2 3 4 5 6 11 12 13 33 44
Ç ñ
C11 + C12 [3]
ñ
(7)
æ
33
∆E = (C11 + C12 )δ 2 V0 e = (0, 0, 0, 0, 0, δ ) C11 − C12 ∆E 1 = (C11 − C12 )δ 2 V0 4 e = (0, 0, δ, 0, 0, 0)