|
|
ORCA的maxcore和它的子模块配合得不是很好,尤其是后HF计算中常常数倍地超量使用内存,这是个常见问题。
在ORCA 5.0.3的手册9.23节,741页,列举%autoci代码块的指令的地方提到
...
# Algorithm details
maxcore 2000 # Maximum memory limit in MB
printlevel 3 # Amount of printing
...
看起来似乎有那么一个写在%autoci代码块里、专门限制autoci模块内存使用的maxcore选项;
然而把这个选项写进输入文件,ORCA就会报错:
...
[file orca_tools/Tool-Scanner/qcscan1.cpp, line 102]:
Unknown identifier in AUTOCI block line 13 :
Last token : MAXCORE
...
似乎ORCA的输入文件解释器不认为存在这么一个选项。
那么ORCA到底有没有功能类似的、用于限制autoci模块内存使用的选项?或者,在使用通用的%maxcore选项限制FIC-MRCC计算任务的内存使用时,设置的大小和实际使用的大小大致是什么关系?目前为止测试的结果是,%maxcore设置为20000~60000时,使用下述输入的任务都会使用约60GB内存——其中orca_autoci约10GB,autoci_fic_mrcc在40GB-50GB间波动,峰值超过53GB并导致内存溢出,被系统杀掉。暂时没有找到限制方法。
======
另外的问题是,%autoci中的useoldints选项似乎并不会让ORCA读取旧有的积分:
当我不修改输入文件名时,ORCA会直接输出
...
WARNING: Old DensityContainer found on disk!
Will remove this file -
If you want to keep old densities, please start your calculation with a different basename.
...
并删掉旧积分;
当修改了输入文件名时,ORCA不会有任何相关输出并重新计算DC1~5等依赖项,会耗不少时间。
======
使用的完整输入文件:
! cc-pVTZ miniprint nopop moread
%moinp "CAS_g.gbw"
%maxcore 20000
%casscf
nel 8
norb 8
mult 1
end
%autoci
citype ficmrcc
keepints 1
useoldints 1
density unrelaxed
end
* xyz 0 1
C 0.00000000 0.00000000 0.59902500
H 0.00000000 0.00000000 5.59902500
C 0.00000000 0.00000000 -0.59902500
H 0.00000000 0.00000000 -5.59902500
*
|
|