前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PySCF程序包平均场计算的一些收敛技巧

PySCF程序包平均场计算的一些收敛技巧

作者头像
用户7592569
发布于 2020-07-27 06:57:43
发布于 2020-07-27 06:57:43
2.1K00
代码可运行
举报
文章被收录于专栏:量子化学量子化学
运行总次数:0
代码可运行

PySCF程序包平均场计算的一些收敛技巧

平均场计算是 PySCF 程序包里优化得比较并全面的模块之一。在平均场模块里,PySCF支持 RHF, UHF, ROHF, GHF, RKS, UKS, ROKS, GKS 等一系列方法来研究闭壳层体系、开壳层体系、复数哈密顿量体系、相对论效应、溶剂化效应。同时 PySCF 提供了大量的辅助功能来帮助平均场计算收敛。以下我们通过一些例子来演示在 PySCF 里收敛平均场计算的技巧。

以下的例子在 PySCF-1.5 以上发行版均可使用。

首先我们使用 PySCF 程序包实现一个最简单的平均场计算。在编辑器里创建以下 Python 代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
benzene = '''
C  4.673795     6.280948   0.
C  5.901190     5.572311   0.
C  5.901190     4.155037   0.
C  4.673795     3.446400   0.
C  3.446400     4.155037   0.
C  3.446400     5.572311   0.
H  4.673795     7.376888   0.
H  6.850301     6.120281   0.
H  6.850301     3.607068   0.
H  4.673795     2.350461   0.
H  2.497289     3.607068   0.
H  2.497289     6.120281   0.
'''

from pyscf import gto, scf
# Create an molecule object
mol = gto.M(atom=benzene, basis='ccpvdz', verbose=4)
# Create an mean-field object
mf = scf.RHF(mol)
# Solve the SCF problem
mf.run()

然后在命令行里执行这个 Python 脚本就可以做一个最简单的平均场计算

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python example.py

PySCF 默认的收敛判别标准非常严格,判别标准是能量收敛到 1e-10 Eh,能量梯度的 norm 收敛到 1e-5 。收敛参数可以通过设定平均场对象的 .conv_tol, .conv_tol_grad 来调整。大多数时候,设定

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mf.conv_tol = 1e-6

的收敛标准已经足够化学问题的研究了。

DIIS 方法

DIIS 迭代方法是 PySCF 里默认的平均场收敛算法。在上面的例子里,DIIS 算法进行了 7 轮迭代得到了收敛结果。

当体系比较复杂时,DIIS 算法的默认参数不一定能得到收敛的平均场结果。此时,有一些常规的参数可以帮助 DIIS 算法收敛,比如

1. 我们可以增加迭代步数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mf.max_cycle = 200

来等待 DIIS 的结果慢慢移动到收敛的结果上。

2. 我们可以调整 level shift 的大小来改变体系 HOMO-LUMO gap。较大的 HOMO-LUMO gap 一般能避免收敛过程的震荡。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mf.level_shift = 0.1

level shift 的单位是 hartree 。这个值一般不用特别大,0.2 左右对大多数体系应该就够用了。当体系的基组有较大的线性相关时,过大的 level shift 不利于数值稳定性。

3. 我们可以调整 DIIS 空间的大小来给予 DIIS 算法更大的自由度来搜索解,比如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mf.diis_space = 12

DIIS 的收敛还可以被一系列别的参数影响,更多的设定可以参考帮助文档 http://pyscf.org/pyscf/scf.html#hartree-fock

初始猜测

在平均场计算中,很多困难体系对初始猜测十分敏感,合适的初始猜测可以有效地帮助平均场收敛。PySCF 的平均场默认的初始猜测是基于 ANO-RCC 基组构造的原子密度矩阵的叠加。这个初始猜测对平衡结构,或较复杂的问题(如开壳层,非平衡结构,带有少量电荷的体系)都有不错的表现。除了 ANO 作为初始猜测以外,PySCF 还提供了一系列方法对平均场计算的初始猜测进行调整。

有一些体系需要特殊的初始猜测才能收敛到正确的态上,比如铁磁或反铁磁的初始猜测。此时,就需要对 PySCF 的初始猜测进行调整。PySCF 支持构造好一个密度矩阵,然后传给平均场对象作为初始猜测进行计算。例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
from pyscf import gto, scf
mol = gto.M(atom='''
H 0 0   0  ; H 0 0   0.5;
H 0 0.5 0.5; H 0 0.5 0  ''', basis='sto3g')
print('Default initial guess:')
mf = scf.UHF(mol)
mf.kernel()
mf.analyze()

print('\nAnti-ferromamagnetic initial guess:')
dm = np.zeros((2,4,4))
dm[0,0,0] = dm[0,2,2] = 1
dm[1,1,1] = dm[1,3,3] = 1
mf.kernel(dm)
mf.analyze()

可以看到默认的初始猜测收敛到了能量较高的态上,而反铁磁的初始猜测收敛到能量较低的态上。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Default initial guess:
converged SCF energy = -0.521792378127812<S^2> = 4.6629367e-152S+1= 1
**** MO energy ****
                             alpha | beta                alpha | beta
MO #1   energy= -1.19356543325823  | -1.19356543325823  occ= 1 | 1
MO #2   energy= -0.0986706198268508 | -0.09867061982685  occ= 1 | 1
MO #3   energy= 0.416828469148984  | 0.416828469148984  occ= 0 | 0
MO #4   energy= 2.37630222058633   | 2.37630222058633   occ= 0 | 0
** Mulliken pop alpha/beta on meta-lowdin orthogonal AOs**
** Mulliken atomic charges   ( Nelec_alpha| Nelec_beta) **
charge of  0H=      0.00000(     0.500000.50000)
charge of  1H=     -0.00000(     0.500000.50000)
charge of  2H=      0.00000(     0.500000.50000)
charge of  3H=     -0.00000(     0.500000.50000)
Dipole moment(X, Y, Z, Debye):  0.00000,  0.00000,  0.00000

Anti-ferromamagnetic initial guess:
converged SCF energy = -0.615622616250374<S^2> = 1.0086432S+1= 2.2437852
**** MO energy ****
                             alpha | beta                alpha | beta
MO #1   energy= -1.19996932121733  | -1.19996932121733  occ= 1 | 1
MO #2   energy= -0.192312470583276 | -0.192312470583277 occ= 1 | 1
MO #3   energy= 0.510790949191351  | 0.510790949191353  occ= 0 | 0
MO #4   energy= 2.38286361752655   | 2.38286361752655   occ= 0 | 0
** Mulliken pop alpha/beta on meta-lowdin orthogonal AOs**
** Mulliken atomic charges   ( Nelec_alpha| Nelec_beta) **
charge of  0H=     -0.00000(     0.773240.22676)
charge of  1H=     -0.00000(     0.226760.77324)
charge of  2H=     -0.00000(     0.773240.22676)
charge of  3H=      0.00000(     0.226760.77324)
Dipole moment(X, Y, Z, Debye):  0.00000,  0.00000, -0.00000

尽管构造密度矩阵初始猜测看起来比较麻烦,但这给平均场初始猜测的构造提供了最大的自由度。比如有一些计算中,我们希望对调 HOMO LUMO 轨道,这时可以很容易地通过修改轨道占据数 (mf.mo_occ) 或轨道系数 (mf.mo_coeff) 后计算密度矩阵实现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyscf import gto, scf
mol = gto.M(atom='''
H 0 0   0  ; H 0 0   0.5;
H 0 0.5 0.5; H 0 0.5 0  ''', basis='sto3g')
mf = scf.UHF(mol)
mf.kernel()

# Exchange the occupancies of alpha HOMO and alpha LUMO
mf.mo_occ[0,1] = 0
mf.mo_occ[0,2] = 1
dm = mf.make_rdm1(mf.mo_coeff, mf.mo_occ)
mf.kernel(dm)

此外,PySCF 支持从 checkpoint 文件读取平均场计算的信息,然后根据当前计算的特征构造一个密度矩阵初始猜测。比如在一个先导的平均场计算里把平均场的信息保存在 checkpoint 文件里,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyscf import gto, scf
mol = gto.M(atom='H 0 0 0; F 0 0 2.5', basis='ccpvdz')
mf = scf.HF(mol)
mf.chkfile = 'hf.chk'
mf.mac_cycle = 2
mf.kernel()

然后在另一个计算中读取 checkpoint 文件获得前面的平均场的信息并构造密度矩阵作为初始猜测

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyscf import gto, scf
mol = gto.M(atom='H 0 0 0; F 0 0 2.5', basis='ccpvdz')
mf = scf.HF(mol)
dm = mf.from_chk('hf.chk')
mf.kernel(dm)

先导计算里的分子结构和基组不必要和后续计算一样,PySCF 程序能自动识别结构和基组的差异,正确地把先导计算的结果投影到当前的计算里。通过这个特性,我们可以先对体系做一个小基组的计算来获得初始猜测,然后把初始猜测投影给大基组,从而减少大基组下计算的时间和不确定性。

更多初始猜测的例子参见 PySCF 源代码提供的例子 https://github.com/pyscf/pyscf/blob/master/examples/scf/14-restart.py 和 https://github.com/pyscf/pyscf/blob/master/examples/scf/15-initial_guess.py

二阶收敛方法

PySCF 提供了二阶收敛方法。在处理 DIIS 方法难以收敛的开壳层体系,非平衡结构体系时表现稳定,能够高效地收敛到与初始猜测非常接近的体系局域极小点。

相对 DIIS 方法,PySCF 二阶算法有如下优点:

1. DIIS 迭代方法容易卡在鞍点。二阶算法计算了能量的二阶导,有效地避免了鞍点问题。

2. 二阶算法直接优化能量梯度,不受 aufbau principle 的限制,对开壳层体系容易找到能量更低的态,即便这个态对应的轨道能违反了 aufbau principle。

3. 二阶算法连续地从初始态变换到终态,不会出现占据态和空态翻转引起体系波函数的剧烈变化,容易通过初试猜测来控制收敛的结果。

实际经验显示,碰到 DIIS 较难收敛的过渡金属化合物时,PySCF 二阶算法表现良好,相对 DIIS 算法经常能找到能量更低的态。当体系比较简单,比如平衡结构的闭壳层计算,DIIS 方法一般收敛迅速,二阶算法与 DIIS 表现相近,没有明显的优势。

PySCF 二阶算法可以通过 .newton() 方法调用。例如下面这个计算,使用 DIIS 算法很难收敛这个体系

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyscf import gto, scf, dft
mol = gto.M(atom='''
Fe  -3.301 -0.904  0.
N   -3.078  0.552  0.
N   -2.377  0.160  0.
''', basis='ccpvdz', verbose=4)
mf = dft.RKS(mol)
mf.xc = 'pbe'
mf.conv_tol = 1e-6
mf.level_shift = .2
mf.max_cycle = 200
mf.run()

一些常规的设置,比如调整 level shift,DIIS space,或增加迭代的步数等都无法将体系的能量收敛到 1e-6 的精度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...
  HOMO = -0.128165038749955  LUMO = 0.0413831518440274
cycle= 198 E= -1371.88589574082  delta_E= 0.000406|g|= 0.123|ddm|= 0.0396
  HOMO = -0.127982085807919  LUMO = 0.0414632150014509
cycle= 199 E= -1371.88540959507  delta_E= 0.000486|g|= 0.133|ddm|= 0.0422
  HOMO = -0.127905703677111  LUMO = 0.0417282896132888
cycle= 200 E= -1371.88480160486  delta_E= 0.000608|g|= 0.144|ddm|= 0.0465
SCF not converged.

当切换至二阶算法后

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyscf import gto, scf, dft
mol = gto.M(atom='''
Fe  -3.301 -0.904  0.
N   -3.078  0.552  0.
N   -2.377  0.160  0.
''', basis='ccpvdz', verbose=4)
mf = dft.RKS(mol)
mf.xc = 'pbe'
mf = mf.newton()
mf.run()

程序很快就收敛到一个解,能量比上面未收敛的 DIIS 的解更低

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...
macro= 2  E= -1371.88681267525  delta_E= -0.0754391|g|= 0.1776653 KF 13 JK
macro= 3  E= -1371.88884629902  delta_E= -0.00203362|g|= 0.001372923 KF 13 JK
macro= 4  E= -1371.88884629986  delta_E= -8.43329e-10|g|= 0.0002635921 KF 2 JK
Canonicalize SCF orbitals
macro X = 5  E=-1371.88884629986|g|= 0.000263592  total 14 KF 65 JK
converged SCF energy = -1371.88884629986

如果一个体系 DIIS 迭代不收敛,很多时候我们可以把 DIIS 未收敛的结果作为初始猜测输入到二阶算法来获得一个解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyscf import gto, scf, dft
mol = gto.M(atom='''
Fe   3.301 -0.904  0.
N    3.078  0.552  0.
N    2.377  0.160  0.
''',
basis='ccpvdz', verbose=4, spin=0)
mf = dft.RKS(mol)
mf.xc = 'pbe'
mf.conv_tol = 1e-6
mf.level_shift = .2
# Save the DIIS results in the specified checkpoint file.
mf.chkfile = 'diis-iter.chk'
mf.run()


# Create a new DFT calculation
mf = dft.RKS(mol)
mf.xc = 'pbe'
mf.conv_tol = 1e-6
# Load the previous DIIS results into the new DFT calculation.
mf.__dict__.update(scf.chkfile.load('diis-iter.chk', 'scf'))
mf = mf.newton()
mf.run()

在这个例子里,我们需要把第一步的 DIIS 结果保存到一个 checkpoint 文件里以供另一个计算加载。在第二步使用二阶算法时,我们通过 scf.chkfile.load 这个函数读取 checkpoint 文件里的平均场结果,并通过 .__dict__.update() 这个方法把平均场结果载入到二阶方法的对象里。然后这个平均场结果会被用作后续二阶算法的初始猜测。

PySCF 二阶算法有很多参数可以调整。合适的参数设置可以有效地提高计算效率。如果一个计算对初始猜测没有特殊要求的话,PySCF 程序包提供了一种可能的配置,综合利用了各种优化技术,对很多体系都可以实现相对默认二阶方法 3 - 5 倍的速度提升。这个优化的配置可以通过函数 scf.fast_newton 来调用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyscf import gto, scf, dft
mol = gto.M(atom='''
Fe  -3.301 -0.904  0.
N   -3.078  0.552  0.
N   -2.377  0.160  0.
''', basis='ccpvdz', verbose=4)
mf = dft.RKS(mol)
mf.xc = 'pbe'
mf.conv_tol = 1e-6
scf.fast_newton(mf)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子化学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spin-flip方法中RODFT难收敛解决办法
最常见的Spin-flip方法为SF-CIS和SF-TDDFT,它们一般以高自旋三重态为参考态波函数,将一个alpha电子翻转为beta电子,产生满足<
用户7592569
2024/05/03
3870
Spin-flip方法中RODFT难收敛解决办法
利用常见的程序做轨道局域化
本文主要介绍一下如何利用常见的程序做轨道局域化(也称定域化),为后续多参考态计算系列篇做点铺垫。轨道局域化的简介可参看《局域分子轨道简介》一文。至于如何自己写轨道局域化的代码,这又是另一个话题,以后再介绍。
用户7592569
2020/07/27
3K0
利用常见的程序做轨道局域化
利用MOKIT从PySCF向其他量化程序传轨道
MOKIT是免费、开源的轨道转换和接口程序,提供各种小程序和模块,能够在常见量子化学软件间传递分子轨道。其中的automr程序可以进行多参考态方法的自动化、黑箱式计算,详细介绍见《自动做多参考态计算的程序MOKIT》。近期笔者和另一开发者wsr在MOKIT程序中加入了fchk(),py2molpro,py2molcas,py2qchem等模块,可用于从PySCF程序向其他量子化学程序传递分子轨道。尤其是通过fchk()产生.fch文件,可方便地用于轨道可视化、波函数分析。
用户7592569
2022/12/07
1.4K0
XYG3泛函在常见软件中的使用方法(一)
XYG3型泛函是一类重要的双杂化泛函,包括XYG3, XYGJ-OS, XYG7等。其中XYG3泛函由张颖、徐昕和W. A. Goddard III于2009年在PNAS杂志上发表。由于这类泛函使用了不同泛函来计算密度和能量(即能量泛函是非自洽的),使得用户往往不能简单地在常见程序中使用。目前,通过内置或非内置的形式可以做XYG3型泛函计算的程序包括但不限于:Q-Chem, Gaussian, PySCF, FHI-aims, ORCA, ...
用户7592569
2021/06/16
1.7K0
Amesp中SCF不收敛的解决办法(修订版)
在使用量子化学软件时基本上都需要进行自洽场(SCF)迭代计算,一些时候会遇到SCF不收敛的情况,在这里将详细介绍Amesp软件中解决SCF不收敛时的办法,其中大多数关键词都是在“>scf”模块中设置。
用户7592569
2023/09/03
2980
Amesp中SCF不收敛的解决办法(修订版)
离线安装PySCF-1.7.6
由于PySCF程序更新较为频繁,不少小伙伴反映按照本公众号之前发过的离线安装教程《离线安装PySCF程序(1.5及更高版本)》经常会出现编译无法通过等问题,因此再次更新一下安装教程。作为一款量子化学软件,PySCF现在十分强大,支持的功能非常多,此处随意列举几个:
用户7592569
2021/05/11
1.7K0
Amesp中SCF不收敛的解决办法
在使用量子化学软件时基本上都需要进行自洽场(SCF)迭代计算,一些时候会遇到SCF不收敛的情况,在这里将详细介绍Amesp软件中解决SCF不收敛时的办法,其中大多数关键词都是在“>scf”模块中设置。
用户7592569
2023/09/03
4450
Amesp中SCF不收敛的解决办法
从密度矩阵产生自然轨道_实战篇(上)
本公众号之前发过自然轨道的原理介绍,详见《从密度矩阵产生自然轨道-理论篇》和《S^(1/2)的一些性质》。对其中原理和公式熟悉的读者,可以自己编写代码从密度矩阵产生自然轨道,无需阅读本文。笔者也写过这部分代码,可以提供一个参考
用户7592569
2020/11/06
3.1K0
从密度矩阵产生自然轨道_实战篇(上)
量子化学软件Amesp简介
Atomic and molecular electronic structure program (Amesp)是由张英峰独立开发的一款GTO框架的闭源免费的量子化学软件,软件由Fortran语言编写,软件网址为www.amesp.xyz。Amesp软件支持多种WFT方法和DFT方法及其一阶和二阶解析导数,可进行几何结构优化以及振动分析,支持激发态计算,并可以考虑溶剂化以及相对论效应。同时可以使用RI和COSX等近似方法加快能量和能量导数的计算。SCF采用多种方法提高收敛的稳定性和速度,具体的功能介绍如下:
用户7592569
2023/09/03
6090
量子化学软件Amesp简介
使用pyWannier90计算局域化Wannier函数
Wannier函数是周期性体系里和分子轨道对应的概念。很多固体物理教材都详细介绍了Wannier函数,如南京大学教材《固体理论》[1]的第八章。Wannier函数定义为Bloch函数的一个傅立叶变换:
用户7592569
2023/09/03
1.4K0
使用pyWannier90计算局域化Wannier函数
CASSCF初始轨道高效构建(一):局域轨道
本公众号前期发过两篇CASSCF方法计算的入门教程《用Gaussian做CASSCF计算》和《激发态计算之如何选取特定的分子轨道作为活性空间》。若有读者从未接触过CASSCF计算,建议先看上述两篇介绍。一个较为顺利的CASSCF计算强烈依赖于以下两个因素,缺一不可:
用户7592569
2021/04/07
4.7K0
离线安装PySCF程序(1.5及更高版本)
本公众号之前已发过《离线安装PySCF程序》一文,可在“文章分类->软件教程->PySCF”中查看。当时的安装教程适用于PySCF 1.5之前的版本,而在1.5及之后,由于需要版本更高的xcfun库,若仍按前文安装会出现XC_PARTIAL_DERIVATIVES变量未定义等问题。现更新适用于PySCF 1.5及之后版本的安装教程。
用户7592569
2020/07/27
1.6K0
GKS-EDA计算简介
GKS-EDA是一种常见的能量分解方法,用于将结合能分解为各个组分,便于比较类似体系间各能量组分分别有多大影响。由于是在DFT水平下做计算,可计算的体系颇大(相比于PSI4里的SAPT2+/aug-cc-pVDZ和SAPT2+(3)δMP2/aug-cc-pVTZ而言)。有不少同学询问笔者如何使用及经常碰到SCF不收敛问题,因此写一篇介绍一下。笔者不是GKS-EDA开发人员,不能保证该文安装过程与将来官方发布的一致。若以后官方更新程序或更新安装方式,不保证此文步骤仍适用。有不妥之处还请各位EDA老司机指正。
用户7592569
2022/05/17
1.8K0
离线安装PySCF-2.x
PySCF联网在线安装只需pip install pyscf一行命令即可,能联网的建议通过联网安装。本文介绍的是离线安装步骤,适合不允许联网或很难联网的内部节点。读者在开始编译前需确认自己机子上有gcc和g++编译器,有MKL数学库,以及cmake软件。运行如下命令可查看自己机子上是否存在
用户7592569
2022/12/07
1.3K0
用Gaussian做CASSCF计算
完全活性空间自洽场(complete active space self-consistent field, CASSCF)是一种组态相互作用(configuration interaction, CI)方法。以下我们用尽可能简单的语言阐述CI方法的核心原理,不涉及复杂的数学公式。在处理氢分子时,如果基态组态σ1s2和一定量的激发组态σ*1s2混合,会使体系能量降低,也就意味着改进了基态波函数,这种方法称为CI方法。在CI中,可以有多个激发组态参加。full CI就是在所选基组范围内,考虑所有可能的激发组态。一般情况下,full CI是不现实的,需要对组态进行截断,如只考虑单激发组态则称为CIS方法,再加入双激发组态则为CISD方法。此类CI方法中,只将各组态的组合系数进行变分优化。若在计算时,同时优化组态系数和各组态基函数的系数(也即分子轨道系数),则称为多组态自洽场(multi-configuration self-consistent field, MCSCF)方法。在MCSCF方法中,自然也是考虑越多的组态则结果越精确,但同时计算量也越大。CASSCF就是其中一种方法,将分子轨道分为三组。能量低的占据轨道和能量高的虚轨道不参与CI计算,剩下的为活性空间,通常由HF计算得到的若干前线轨道或在所研究问题中变化显著的轨道组成。参加CI计算的组态包括电子在活性空间中全部可能的组态。合理地选择活性轨道空间是CASSCF计算中的关键。CASSCF活性空间选取实例见《激发态计算之如何选取特定的分子轨道作为活性空间》一文。
用户7592569
2020/09/01
10.5K1
用Gaussian做CASSCF计算
XYG3型泛函在ORCA中的使用
本篇文章中我们讨论XYG3型泛函在ORCA中的使用方法。关于XYG3型泛函的介绍可见上期链接。
用户7592569
2022/03/31
1.5K0
NBO程序安装及运行示例
自然键轨道(natural bond orbital, NBO)理论是由Wisconsin大学的Frank Weinhold教授等人提出的一种分析分子体系电子结构的方法。目前的量子化学计算大多基于分子轨道理论,得到的分子轨道往往是离域在整个分子上,与传统的化学键、孤对电子等概念无法对应。NBO方法使用标准量子化学计算得到的密度矩阵,通过一系列转化,得到自然原子轨道(natural atomic orbital, NAO)、自然杂化轨道(natural hybrid orbital, NHO)、自然键轨道(NBO)和自然局域分子轨道(natural localized molecular orbital, NLMO)等,并使用这些轨道进行自然布居分析(natural population analysis, NPA)、NBO能量分析以及其他波函数分析。本文我们简单介绍NBO7.0程序在Linux服务器上的安装配置并通过一个示例来展示最基本的NBO分析。
用户7592569
2022/03/31
3.3K1
NBO程序安装及运行示例
MOKIT已支持Turbomole轨道的传入传出
MOKIT从v1.2.6rc23版本起已支持量子化学软件Turbomole产生的分子轨道文件的传入和传出,涉及的主要小程序名称为fch2tm和molden2fch。fch2tm有以下功能:
用户7592569
2024/03/02
2890
MOKIT已支持Turbomole轨道的传入传出
自动做多参考态计算的程序MOKIT
本公众号之前发过几篇多组态(multi-configurational)方法的介绍:
用户7592569
2021/01/04
2.5K0
自动做多参考态计算的程序MOKIT
谈谈Gaussian软件中的guess=mix
笔者经常碰到小伙伴在用Gaussian软件计算涉及自由基的反应时,不清楚何时该加关键词guess=mix,何时不该加;也可能会有师兄/老师这样告诉新手:碰到自由基一律用guess(mix,always)。前者可能量化基础不扎实,碰到这类问题不懂;后者则可能缺乏实际计算经验。趁假期有空,正好写上一篇,详细解释一下。当然,笔者写的绝对不是标准答案,只能力求合理性和正确性,仅供对这个问题不清楚的小伙伴们参考。
用户7592569
2020/07/27
3.8K0
谈谈Gaussian软件中的guess=mix
相关推荐
Spin-flip方法中RODFT难收敛解决办法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验