from pyscf import gto, scf, mcscf
from mokit.lib.fch2py import fch2py
from mokit.lib.py2fch import py2fch
from mokit.lib import py2orca
from shutil import copyfile
from pyscf import lib
from pyscf import __config__
print(lib.num_threads()) #显示确实是32线程
mol = gto.M()
mol.max_memory = 16384
# 28 atom(s)
mol.atom = '''
C1 -18.71419998 -7.81380000 15.80720000
S1 -17.42080002 -7.34854999 17.03330000
H1 -18.43912800 -7.44484897 14.84122399
......
# Remember to check the charge and spin
mol.charge = -2
mol.spin = 0
mol.verbose = 4
mol.build(parse_arg=False)
mf = scf.RHF(mol)
mf.max_memory = 16384
mf.max_cycle = 1
mf.init_guess = '1e'
mf.kernel()
# read MOs from .fch(k) file
hf_fch = 'SIa-S1-UHF-UNO-CAS88.fch'
nbf = mf.mo_coeff.shape[0]
nif = mf.mo_coeff.shape[1]
mf.mo_coeff = fch2py(hf_fch, nbf, nif, 'a')
# read done
mc = mcscf.CASSCF(mf, 8, 8)
mc.max_memory = 65536
mc.verbose = 5
mc.natorb = True
mc.kernel()
py2orca(mc, 'mc-S1.inp')
hebrewsnabla 发表于 2024-8-16 17:18
建议上传输出文件。
ZetaFunction 发表于 2024-8-16 18:27
把内存从64G加大到128G,问题解决了。PySCF这么吃内存的吗?28个原子CASSCF(8,8)/cc-pVDZ就要这么多内存 ...
hebrewsnabla 发表于 2024-8-16 18:35
正常情况不需要这么多内存。如果你的意思是加大内存就能明显算得很快,这恐怕不太正常。
ZetaFunction 发表于 2024-8-16 21:50
重新测试了一下,问题应该不在mcscf,而在于前面的mol.max_memory和mf.max_memory,把这两步的内存从16G ...
ZetaFunction 发表于 2024-8-16 18:27
把内存从64G加大到128G,问题解决了。PySCF这么吃内存的吗?28个原子CASSCF(8,8)/cc-pVDZ就要这么多内存 ...
hebrewsnabla 发表于 2024-8-16 17:18
建议上传输出文件。
| 欢迎光临 计算化学公社 (http://bbs.keinsci.com/) | Powered by Discuz! X3.3 |