本帖最后由 卡开发发 于 2024-10-9 04:19 编辑 tjuphysfang 发表于 2024-10-8 21:11 这方面其实你可以参考LAPW基组的处理方式。这时候不推荐使用AECCAR0+2的数据进行处理,因为它们在映射到均匀网格太容易失真,除非网格选取非常稠密,但这样会给计算和存储造成很多困难。你可能得从PAW-POTCAR当中获取ae+ps的partial wave和core density。事实上如果你真的这么需要讨论原子芯附近的电子行为,本身就应该使用LAPW+lo基组进行计算(比如Wien2K、ELK、Fleur等)。 |
本帖最后由 tjuphysfang 于 2024-10-8 21:47 编辑 卡开发发 发表于 2024-10-8 17:05 感谢您的回答,我研究的问题确实需要计算核芯电子的分布情况,而不只是求总的全电子数目,所以一直在纠结这个数值到底是否可信,因为随着网格的变化,芯电子数目变化太大了。请问老师,可以介绍一下在哪里可以学习这些技巧来计算全电子分布吗?感谢! |
tjuphysfang 发表于 2024-10-8 16:28 可以,但不推荐这样做。不过如你所见并不是很好处理,可能需要很密集的网格才能得到合理的数值,这也是为什么Henkelman组的AIM电荷程序Bader仅使用CHGCAR而不用AECCAR0+2那个和来进行盆积分(当然划分盆肯定还是用AECCAR0+2)。 原因是因为AECCAR0本身就是内层电子在冻芯下的密度(从POTCAR-PAW信息构造),一个是本身振荡要比价层赝波函数快,其次是在原子芯附近本身就有个岐点或者叫尖点,这样的东西用均匀网格本身就不怎么好描述。因此,如果没有什么特定需求,完全可以对CHGCAR进行积分,然后芯电子数目直接从POTCAR当中读出来加在上面就行了。当然一定要去处理全电子密度是可以通过一定技巧来实现的,不过要麻烦很多。 |
卡开发发 发表于 2024-10-8 02:11 感谢您的答疑~问题解决了!还有一个问题想请教一下您,我之前计算AECCAR0中总的核芯电子数目的时候,发现对于不同的NGXF,NGYF,NGZF数值,核心电子总数差别很大,只有取非常密集的网格才可以得到正确的核芯电子总数,如果总数正确了,请问老师,现在AECCAR0中的数值可以用来进行实际计算吗? |
|
VASP手册这里写的应该比较乱。a、b、c是应该是一个体素或是说体元(voxels)的长度,Vcell就是一个体素的体积。建议稍微改下符号,按照这样: 实际晶胞的体积是Vcell 体素或是说网格数目Ngrid=NGXF*NGYF*NGZF 体素体积为ΔV 这样有Vcell=Ngrid·ΔV 然后按照VESTA的手册描述, When these files are read in to visualize isosurfaces and sections, data values are divided by V in the unit of bohr^3. 这样n(r)=data(r)/Vcell 然后根据矩形求积规则NELECT=∫{n(r)}dr r∈Vcell NELECT=∑{data(n)/Vcell}ΔV n∈Ngrid 根据前面提到的,data(n)/Vcell·ΔV=data(n)/Ngrid,这样与最终公式相同。 事实上一个比较简单的做法是根据Fourier变换关系,有: n(r)=∫{n(G)exp(iG·r)}dG 当G仅取(0,0,0)时即为n(r)在Vcell内的平均值,因为已经乘了晶胞体积应该很方便就能得到电子数。 |
| 参与人数Participants 1 | eV +4 | 收起 理由Reason |
|---|---|---|
|
| + 4 | 赞! |
手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图
GMT+8, 2026-2-22 15:32 , Processed in 0.196251 second(s), 26 queries , Gzip On.