计算化学公社

标题: 请教在QE中进行DFT+U+V计算时,Hubbard card中的参数如何确定 [打印本页]

作者
Author:
aikeyin    时间: 2025-7-17 19:35
标题: 请教在QE中进行DFT+U+V计算时,Hubbard card中的参数如何确定
本帖最后由 aikeyin 于 2025-7-17 20:18 编辑

如题,在利用QE的DFT+U+V做过渡金属氧化物的能带的计算。在写输入文件时,使用说明中说:在Hubbard card中输入的格式形如:V  label(I)-manifold(I)  label(J)-manifold(J)  I  J  V_val(I,J)。到这里就看不懂了,有疑问:① I和J是啥意思?I、J的数值如何确定?(我看LiCoO2的例子中,O-2p的J是19(也有其它数值),这个19是怎么来的呢?) ② V_val(I,J)的数值怎么确定?③ 如果计算过渡金属氧化物的能带,使用DFT+U_eff是否可行,其精确度与DFT+U+V相比能差多少?还望大佬能指点下,不胜感激~
作者
Author:
ultramanm87    时间: 2025-7-18 13:04
1. I和J应该代表不同的原子
2. V和U差不多,无非是凑实验值、更高计算级别的值、查文献、或者用自洽响应的办法(https://gitlab.com/QEF/q-e/-/tre ... example10/reference
3. 应该是可以的,精度差距要具体看体系。或者有条件试下杂化泛函
作者
Author:
aikeyin    时间: 2025-7-18 23:48
ultramanm87 发表于 2025-7-18 13:04
1. I和J应该代表不同的原子
2. V和U差不多,无非是凑实验值、更高计算级别的值、查文献、或者用自洽响应的 ...

帮助太大了,非常感谢大佬指点
作者
Author:
卡开发发    时间: 2025-7-19 04:02
aikeyin 发表于 2025-7-18 23:48
帮助太大了,非常感谢大佬指点

1、I和J应该代表不同原子。
2、(1)V的值同样可以通过hp.x通过DFPT或者手动进行LR-cDFT来进行计算,原理和计算U的一样,如果你对U的这种计算方式有一定了解,可以知道计算U的时候U只是取了对角线上的U(II),而V其实就对应非对角线上的V(IJ)。当然原子化学环境比较复杂的情况很可能计算很慢。(2)也可以类似于使用杂化泛函拟合U那样同时拟合U+V。
3、有时候DFT+U_eff可能很糟,QE官方发过DFT+U+V的测试和DFT+U_eff做过对照,你有兴趣可以看看其中具体数据。原理上说,DFT+U修正的是单中心的贡献而DFT+U+V修正的是双中心的贡献,后者包含了更多的物理因素,但我个人看法是,实际上可能存在的问题是V可能对化学环境会更敏感。
作者
Author:
aikeyin    时间: 2025-7-19 20:52
本帖最后由 aikeyin 于 2025-7-19 21:42 编辑
卡开发发 发表于 2025-7-19 04:02
1、I和J应该代表不同原子。
2、(1)V的值同样可以通过hp.x通过DFPT或者手动进行LR-cDFT来进行计算,原 ...

您的帮助太大了,非常感谢大佬指点。我还想问下:① 在qe中写LiCoO2的scf输入文件时,氧原子的初始O-2p的J可以暂定为2,V暂定为1e-5,在后续的计算中会自动迭代更新,应该是这个思路吧?② 在利用qe进行计算时,hp.x处理后得到的V值与scf中的初始V值比较,若差值大于向hp.x中输入的文件中的conv_thr_chi的设定值,那就需要继续进行迭代计算(将第一次计算得到的U、V值作为第二次计算的初始值),直到满足conv_thr_chi的设定值为止,应该是这样吧?③ 这个+U+V是不是可以理解为哈密顿算符中的微扰项,将这项对应的矩阵求出来后,U和V就全都有了呢?如果是这样,那波函数应该怎么求得呢?另外,用hp.x处理后得到的Hubbard_parameters.dat中的Hubbard matrix是否就是微扰矩阵呢?④ 对化学环境敏感就是说,固体材料中中心原子和其周围环境中的配体对于不同种类的固体材料要不同对待,就是要自己算算看,是吧?
作者
Author:
卡开发发    时间: 2025-7-19 21:44
aikeyin 发表于 2025-7-19 20:52
您的帮助太大了,非常感谢大佬指点。我还想问下:① 在qe中写LiCoO2的scf ...

1、可以这么理解,但实际是迭代响应矩阵\chi和\chi_0,这样才有conv_thr_chi这事情。QE的DFT+U+V的U其实是U_eff,不涉及到J的问题。
2、conv_thr_chi控制的是hp.x进行LR-cDFT迭代中\chi和\chi0前后两步变化值。
3、所以这就存在另一个问题,实际上这里计算的U和V(应当暂计为U_out和V_out)是参考你设置的U_in和V_in的KS方程得到的波函数和电荷密度,假定初始设置的很小,那就对应于plain DFT的。如果要得到当前DFT+U+V对应的波函数那就要在新的U和V下去再进行自洽计算,但这样得到的波函数其实也不同于最开始的波函数和电荷密度。因此严格来说,需要一些特定的方法外推或迭代到合理的波函数和电荷密度,使U_in、V_in和U_out、V_out得到的结果能够自洽,不过这个过程比较繁琐。
4、对化学环境敏感指的是,至少U的参数是单中心的,不显式涉及到两原子间距问题(实际上也有依赖),而V的参数其实原理上说会显式依赖。
作者
Author:
aikeyin    时间: 2025-7-21 00:12
卡开发发 发表于 2025-7-19 21:44
1、可以这么理解,但实际是迭代响应矩阵\chi和\chi_0,这样才有conv_thr_chi这事情。QE的DFT+U+V的U其实 ...

感谢大佬回复与深刻指导。再问下您:对于“2、conv_thr_chi控制的是hp.x进行LR-cDFT迭代中\chi和\chi0前后两步变化值”。是否可以理解成:如果进行LR-cDFT迭代后,\chi和\chi0前后两步变化值小于阈值conv_thr_chi的设定,那相应地,迭代后的U值和V值也就能够满足要求了呢?就可以将这两个值作为初值进行后续的计算了呢?
作者
Author:
卡开发发    时间: 2025-7-21 10:44
aikeyin 发表于 2025-7-21 00:12
感谢大佬回复与深刻指导。再问下您:对于“2、conv_thr_chi控制的是hp.x ...

hp.x会自动根据设定的conv_thr_chi来跳出迭代,你只需要关注是否达到这个收敛条件即可。
作者
Author:
aikeyin    时间: 2025-7-21 12:34
卡开发发 发表于 2025-7-21 10:44
hp.x会自动根据设定的conv_thr_chi来跳出迭代,你只需要关注是否达到这个收敛条件即可。

我明白了,非常感谢大佬耐心的指点,感谢您




欢迎光临 计算化学公社 (http://ccc.keinsci.com/) Powered by Discuz! X3.3