计算化学公社

标题: 有关在NWChem中使用XYG3泛函的问题 [打印本页]

作者
Author:
Hilbrac    时间: 2024-6-3 17:31
标题: 有关在NWChem中使用XYG3泛函的问题
本帖最后由 Hilbrac 于 2024-6-4 00:22 编辑

这段时间准备试试XYG3泛函,看过了徐昕老师发表这个泛函的原文章,发现可以在NWChem上使用(原文用的是NWChem 6.1.1版本,我现在用的是NWChem 7.0.2,所以版本方面应该是没问题的)。
但是NWChem中貌似并没有内置这个泛函,所以我只能通过自定义的方式使用XYG3。
另外,这个网站也讲了一下关于XYG3的使用:10. XYG3 型密度泛函 — Py_xDH 文档 (py-xdh.readthedocs.io)
所以,参照原文定义:
(, 下载次数 Times of downloads: 12)

以及上述网站中对于XYG3泛函的用法:
(, 下载次数 Times of downloads: 10)

我目前在NWChem里泛函部分的关键词是这么写的:xc HFexch 0.8033 becke88 0.2107 lyp 0.6789 mp2 0.3211 。
距离网站中的使用形式,看得出来还缺少一点LDA的交换部分,虽然系数只有0.014,但我想也不能就这么简单的忽略了。然而我在NWChem的官方手册中并没有找到任何LDA的交换形式写法,所以特此来请教,希望能得到各位的指教。
先行谢过!

作者
Author:
zjxitcc    时间: 2024-6-3 17:36
本帖最后由 zjxitcc 于 2024-6-3 17:38 编辑

不推荐使用NWCHEM做此计算。建议阅读
XYG3泛函在常见软件中的使用方法(一)
XYG3型泛函在ORCA中的使用
XYG3型泛函的计算:xDH4Gau程序的使用简介



作者
Author:
hebrewsnabla    时间: 2024-6-3 17:39
XYG3是需要两步计算的,不是简单自定义就可以的。
作者
Author:
LittlePupil    时间: 2024-6-3 23:27
Correct Prof. Xu's name, pls
作者
Author:
Hilbrac    时间: 2024-6-6 01:10
zjxitcc 发表于 2024-6-3 17:36
不推荐使用NWCHEM做此计算。建议阅读
《XYG3泛函在常见软件中的使用方法(一)》
《XYG3型泛函在ORCA中的 ...

感谢大佬提醒,我目前也只是学着在NWChem中用一下自定义函数,所以才有了这个问题。
不过方便问一下为什么不推荐在NWChem中用XYG3吗?
作者
Author:
Hilbrac    时间: 2024-6-6 01:12
hebrewsnabla 发表于 2024-6-3 17:39
XYG3是需要两步计算的,不是简单自定义就可以的。

嗯,我看徐教授自己测试XYG3的文献里貌似都是用B3LYP优化后,再用XYG3做的单点?
不过XYG3本身作为双杂化泛函,直接用作优化的话,除了计算量过高外还有什么明显缺陷吗?
作者
Author:
root    时间: 2024-6-6 02:23
dft
mult 1
xc hfexch 0.2 slater 0.8 becke88 nonlocal 0.720 lyp 0.810 vwn_1_rpa 0.190
grid xfine
convergence energy 1d-10
iterations 200
print low convergence multipole parameters "intermdiate energy info"
end
task dft energy

dft
mult 1
xc hfexch 0.8033 slater -0.0140 becke88 0.2107 lyp 0.6789 mp2 0.3211
dftmp2 semidirect
noscf
grid xfine
convergence energy 1d-10
iterations 200
print low convergence multipole parameters intermdiate energy info
end
mp2
freeze atomic
scs
fss 1.0
fos 1.0
end
task dft energy

作者
Author:
niobium    时间: 2024-6-6 11:44
Hilbrac 发表于 2024-6-6 01:12
嗯,我看徐教授自己测试XYG3的文献里貌似都是用B3LYP优化后,再用XYG3做的单点?
不过XYG3本身作为双杂 ...

结构优化没有必要用双杂化
作者
Author:
hebrewsnabla    时间: 2024-6-6 15:43
本帖最后由 hebrewsnabla 于 2024-6-6 15:56 编辑
Hilbrac 发表于 2024-6-6 01:12
嗯,我看徐教授自己测试XYG3的文献里貌似都是用B3LYP优化后,再用XYG3做的单点?
不过XYG3本身作为双杂 ...

通过两步自定义方式做的话(如7L),本来就没法算梯度。算梯度需要写额外的代码。当然,如8L所说,结构优化本来没什么必要用双杂化。

关于5L的问题,因为我们自己已经不用nwchem了,有问题也没人给你解决。如果你要理解原理,pyscf是首选;如果只是要算出一个结果,2L提供的方法都可以。
作者
Author:
Hilbrac    时间: 2024-6-6 16:31
root 发表于 2024-6-6 02:23
dft
mult 1
xc hfexch 0.2 slater 0.8 becke88 nonlocal 0.720 lyp 0.810 vwn_1_rpa 0.190

感谢分享,不过我还想请教一下,这里的 noscf 是指非自洽能量计算对吧?那这个非自洽能量计算和单点能计算有什么区别呢?
作者
Author:
Hilbrac    时间: 2024-6-6 16:32
niobium 发表于 2024-6-6 11:44
结构优化没有必要用双杂化

感谢指教!
不过这么说的理由是什么呢?计算量太大还是?
作者
Author:
niobium    时间: 2024-6-6 17:01
Hilbrac 发表于 2024-6-6 16:32
感谢指教!
不过这么说的理由是什么呢?计算量太大还是?

效果不比普通泛函好多少,但计算量大不少
作者
Author:
Hilbrac    时间: 2024-6-7 11:09
niobium 发表于 2024-6-6 17:01
效果不比普通泛函好多少,但计算量大不少

好的谢谢!
那请问大佬是否知道XYG3泛函的适用范围之类的呢?比如是适合过渡金属还是主族元素?抑或是只能充当b3lyp的上位替代,算点碳氢体系呢?
作者
Author:
root    时间: 2024-6-7 11:11
Hilbrac 发表于 2024-6-6 16:31
感谢分享,不过我还想请教一下,这里的 noscf 是指非自洽能量计算对吧?那这个非自洽能量计算和单点能计 ...

第二步的noscf指不再做自洽迭代优化波函数,直接拿上一步的SCF波函数来做PT2.
作者
Author:
Hilbrac    时间: 2024-6-7 11:24
hebrewsnabla 发表于 2024-6-6 15:43
通过两步自定义方式做的话(如7L),本来就没法算梯度。算梯度需要写额外的代码。当然,如8L所说,结构优 ...

说的真的很清楚了,感谢大佬指教!
但我还有一点点问题,为什么说7L的方法没法算梯度呢?设定完 xc 模块后,直接用 dft optimize 关键词不能算梯度吗?需要写额外的代码是什么意思?
作者
Author:
Hilbrac    时间: 2024-6-7 14:29
root 发表于 2024-6-7 11:11
第二步的noscf指不再做自洽迭代优化波函数,直接拿上一步的SCF波函数来做PT2.

感谢老师的进一步解释!
如果是这样的话,为什么没看到有 vectors output/input 这种关键词呢?
以及,如果只是读取上一步B3LYP的波函数来做PT2的话,那定义XYG3泛函的意义又在哪里呢?
作者
Author:
hebrewsnabla    时间: 2024-6-7 14:29
Hilbrac 发表于 2024-6-7 11:24
说的真的很清楚了,感谢大佬指教!
但我还有一点点问题,为什么说7L的方法没法算梯度呢?设定完 xc 模块 ...

非自洽泛函的梯度公式和自洽泛函的不一样。所以只实现了自洽泛函的梯度的程序,如果用来算非自洽泛函的梯度,也许也能跑但是结果是错的。所以需要改代码实现非自洽泛函的梯度。
作者
Author:
hebrewsnabla    时间: 2024-6-7 14:34
Hilbrac 发表于 2024-6-7 14:29
感谢老师的进一步解释!
如果是这样的话,为什么没看到有 vectors output/input 这种关键词呢?
以及, ...

应该会自动读上一步b3lyp的。

如果只是读取上一步B3LYP的波函数来做PT2的话,那定义XYG3泛函的意义又在哪里呢?


xyg3的定义就是这样的(先做一个自洽计算,再做一个包含PT2的非自洽计算),你有什么具体的疑问吗
作者
Author:
Hilbrac    时间: 2024-6-7 18:55
hebrewsnabla 发表于 2024-6-7 14:34
应该会自动读上一步b3lyp的。

感谢耐心指教!
①所以您的意思是说,依照XYG3的定义,其作为非自洽泛函,需要依赖B3LYP先自洽迭代出单电子波函数,才能通过某些非SCF迭代的方式(例如微扰修正法)去对波函数稍作优化,并进一步算出能量,对吗?
②如果①的说法正确,那这就是XYG3无法被直接单独用于结构优化的原因?
③关于自洽密度泛函和非自洽密度泛函这一块,我此前从未了解过,请问有什么地方能够系统学习这一块知识吗?
作者
Author:
hebrewsnabla    时间: 2024-6-7 19:49
Hilbrac 发表于 2024-6-7 18:55
感谢耐心指教!
①所以您的意思是说,依照XYG3的定义,其作为非自洽泛函,需要依赖B3LYP先自洽迭代出单 ...

1. 并不是“稍作优化”,可能你想表达的意思是作一个能量修正,那也没有错。对于任意一个泛函表达式,比如你在1L写的那些东西,都可以做自洽计算或非自洽计算,非自洽计算就相当于SCF的最大圈数是0. 至于微扰修正,这个在其他双杂化里面通常也是不参与轨道优化的,xyg3没有修改这一项的地位。
2. 3. 你已经知道pyxdh文档了,全部通读一遍就行了。非自洽计算这个概念本来是广泛存在的,比如DC-DFT也用到了.
作者
Author:
Hilbrac    时间: 2024-6-11 10:21
hebrewsnabla 发表于 2024-6-7 19:49
1. 并不是“稍作优化”,可能你想表达的意思是作一个能量修正,那也没有错。对于任意一个泛函表达式,比 ...

如果说,不论自洽泛函还是非自洽泛函,原则上都可用于做自洽计算的话,那这二者的区别在哪里?
梯度公式的形式不同只能算是二者的外在区别,我想知道二者的本质区别(比如是否体现在泛函的数学形式上?)。
作者
Author:
hebrewsnabla    时间: 2024-6-11 15:18
本帖最后由 hebrewsnabla 于 2024-6-11 16:49 编辑
Hilbrac 发表于 2024-6-11 10:21
如果说,不论自洽泛函还是非自洽泛函,原则上都可用于做自洽计算的话,那这二者的区别在哪里?
梯度公式 ...

“可用于做自洽计算”你是不是想说可用于做单点计算?就做单点计算来说没什么区别。或许你想问的是为什么要发明非自洽形式的双杂化,它有什么好处?

本质区别已经在前面讨论的泛函定义中说明了。我不知道你有什么疑问。“数学形式”一般是指GGA/mGGA这种数学形式?如果是问这个的话,由于自洽/非自洽泛函都是一类泛函,,所以没法回答这个问题。如果想理解得更清楚,不妨思考一下为什么二者的梯度公式是不同的。
作者
Author:
Hilbrac    时间: 2024-6-12 09:51
hebrewsnabla 发表于 2024-6-11 15:18
“可用于做自洽计算”你是不是想说可用于做单点计算?就做单点计算来说没什么区别。或许你想问的是为什么 ...

或许换个问法会好些:自洽泛函和非自洽泛函,这所谓的“自洽”和“非自洽”,是依据什么进行划分的呢?
不过“为什么要发明非自洽形式的双杂化,它有什么好处?”,这个我此前确实未曾想过,我现在对此也很好奇了。
作者
Author:
hebrewsnabla    时间: 2024-6-12 15:13
Hilbrac 发表于 2024-6-12 09:51
或许换个问法会好些:自洽泛函和非自洽泛函,这所谓的“自洽”和“非自洽”,是依据什么进行划分的呢?
...

划分就是最终能量(除PT2以外的部分)是需要用非自洽步骤算出来的就算非自洽泛函。

原先的B2PLYP类型的泛函有个问题是,假如它的总能量表达式是足够精确的,但它只能使用自洽部分(即除PT2以外的部分)来做自洽计算(提供密度),那这个部分(相对于足够精确的总能量表达式)就缺了一块。这会导致密度不够好以及自洽不容易收敛。而非自洽双杂化利用的是另一个完整的泛函来做提供密度,自己的能量表达式只是算一个能量,这样提供密度的泛函和提供能量的泛函都是完整的。当然这个问题有另一个更贵的解决方式就是把PT2也加入自洽,即OO-DH。
作者
Author:
Hilbrac    时间: 2024-6-13 11:07
hebrewsnabla 发表于 2024-6-12 15:13
划分就是最终能量(除PT2以外的部分)是需要用非自洽步骤算出来的就算非自洽泛函。

原先的B2PLYP类型 ...

这里说的OO-DH,如果真要用的话,可以直接用B2PLYP或者XYG3的泛函形式吗?
如果可以,那是否可以这么说,所谓“自洽/非自洽泛函”的划分,是依照用法进行的:以XYG3为例,因为我们现在只是用非自洽步骤,简单代入密度算个能量,所以我们就说它是非自洽泛函。但如果我们用了OO-DH这种方法,用XYG3结合自洽步骤算密度和能量,那XYG3是否又可以被称之为是自洽泛函了?
作者
Author:
hebrewsnabla    时间: 2024-6-13 15:15
本帖最后由 hebrewsnabla 于 2024-6-13 15:17 编辑
Hilbrac 发表于 2024-6-13 11:07
这里说的OO-DH,如果真要用的话,可以直接用B2PLYP或者XYG3的泛函形式吗?
如果可以,那是否可以这么说 ...

原则上可以,最早MHG做OO-PBE0-DH的时候用的应该就是PBE0-DH的参数。

一般来说我们认为OO-DH是“除PT2外自洽的双杂化”和非自洽之外的第三类,对于双杂化是这样的。如果是杂化/纯泛函的话OO和自洽是一回事。一定要分两类,说OO-DH也属于自洽也没什么毛病。

但如果我们用了OO-DH这种方法,用XYG3结合自洽步骤算密度和能量,那XYG3是否又可以被称之为是自洽泛函了?

那也得是把OO-XYG3称为自洽泛函。不加前缀的话,本身有明确的定义是非自洽或自洽的。
作者
Author:
Hilbrac    时间: 2024-6-13 20:01
hebrewsnabla 发表于 2024-6-13 15:15
原则上可以,最早MHG做OO-PBE0-DH的时候用的应该就是PBE0-DH的参数。

一般来说我们认为OO-DH是“除PT2 ...

现在能大致理解了,多谢耐心教导!




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