Science 版 (精华区)

发信人: zjliu (秋天的萝卜), 信区: Science
标  题: MOLPRO2002.03使用入门(11)
发信站: 哈工大紫丁香 (Fri May  2 13:12:35 2003) , 转信

十三. MOLPRO的高级特性
在以下部分,给出MOLPRO一些特殊功能的例子。说明并不详细,更完整的信息请参阅参考

册。

13.1 内存控制
MOLPRO把所有的内部数据存储到一个很大的工作区中,它在计算的开始动态分配。内存量

molpro.rc文件中用-m选项指定,默认8 MW (64 Mb)。大的计算需要更多内存,默认值可以

用memory指令修改。这应当是输入文件在*** title卡之后的第一个指令,如果出现的话,

如下面的例子所
示:
***,title
memory,16,m            ! 分配16 MW内存
geometry={...}         ! 定义核坐标
basis=vdz              ! 选择基组
hf                     ! 执行HF计算
ccsd(t)                ! 执行CCSD(T)计算
内存的需要量依赖于基组,分子对称性,以及所用的方法,因此很难提前预测。大多数计

使用16 MW或更少,但是低对称性可能需要大内存。保险的选择是指定64 MW,但是这需要

算机有足够的内存(这种情况下大于512 MB)。内存也可以在molpro的命令行用-m选项给

,见第三章。
如果给出了memory卡,它优先于命令行选项。

13.2 重新开始计算
到目前为止,在所有给出的例子中,默认用草稿文件存储MOLPRO所需的中间数据,而用户

常看不到这些文件。不过也可以把计算的轨道和能量数据保存到命名的(固定)文件中,

于在以后重新开始计算。MOLPRO使用许多不同的文件,但只有其中的一两个对重新计算是

需的。文件1保
存单、双电子积分和相关信息,文件2存储了波函信息,如轨道,轨道能量,以及可选的C
I
矢量。因此文件2对重新计算是必需的,而文件1中的积分可以重新开始,或重新计算。
使用命名的文件可以用file指令,它必须在memory命令(如果出现的话)之后立即给出,

如,
***,title
memory,16,m            ! 分配16 MW内存
file,1,filename.int    ! 指定固定的积分文件
file,2,filename.wfu    ! 指定固定的波函(dump)文件
geometry={...}         ! 定义核坐标
basis=vdz              ! 选择基组
hf                     ! 执行HF计算
ccsd(t)                ! 执行CCSD(T)计算
如果相同的文件名用于随后的计算,MOLPRO将把所有保存的数据自动恢复到给定文件中。

如,如果下面的输入用在前一个例子之后,那么积分和轨道将重新开始,用于随后的CASS
CF
和MRCI计算:
***,title
memory,16,m            ! 分配16 MW内存
file,1,filename.int    ! 指定固定的积分文件
file,2,filename.wfu    ! 指定固定的波函(dump)文件
casscf                 ! CASSCF,用前面的SCF轨道作为初始猜测
mrci                   ! 使用CASSCF参考波函的MRCI
如果输入文件只定义了文件2,如在下面例子所示,将自动重新计算积分。
***,title
memory,16,m            ! 分配16 MW内存
file,2,filename.wfu    ! 指定固定的波函(dump)文件
casscf                 ! CASSCF,用HF轨道作为初始猜测
mrci                   ! 使用CASSCF参考波函的MRCI
自动重新开始的功能可以在文件名之后指定new来禁止,例如,
***,title
memory,16,m                ! 分配16 MW内存
file,2,filename.wfu,new    ! 指定固定的波函(dump)文件。如果文件存在则覆盖
hf                         ! 执行Hartree-Fock计算
casscf                     ! CASSCF,用HF轨道作为初始猜测

13.3 Punch文件
最重要的结果,像结构,能量,偶极矩,和梯度,通过使用punch指令,都被写入一个叫做
p
unch的文件中永久保存。
punch,filename

13.4 打印选项
MOLPRO对各种方法有许多打印选项,详细说明在参考手册中,但实际上只需要其中的一些

一般有两种打印选项:全局选项,用gprint指令定义,用于所有方法;局部选项,用prin
t
指令定义,只能用于一个任务步骤。局部打印命令是某一特定方法输入的一部分,因此必

直接接在相应的
命令之后。另一方面,全局打印选项对后面的所有方法起作用。例如,
gprint,orbitals          ! 全局打印选项:打印HF和CASSCF轨道
hf
casscf
hf
print,orbitals           ! 局部打印选项:打印HF轨道

casscf                   ! CASSCF轨道不打印
为了避免混淆和意外的结果,我们推荐只使用全局打印选项,除非是用于特殊的调试目的

最重要的全局打印选项是
gprint,basis             ! 打印基组信息
gprint,orbitals          ! 打印占据轨道
gprint,orbitals=2        ! 打印每个对称性的占据轨道和两个最低的虚轨道
gprint,civector          ! 打印组态因子
注意,默认只打印大于0.05的CI因子。修改这个阈值见13.5节。
对一个gprint指令可以给出几个打印选项,例如,
gprint,basis,orbitals=1,civector

13.5 收敛阈值
如果打印选项有全局和局部阈值,分别用gthresh和thresh指令定义。我们这里只涉及一些

有用的全局阈值(及其默认值)。
gthresh,energy=1.d-6     ! 能量的收敛阈值。这影响所有的迭代方法
gthresh,orbital=1.d-5    ! 轨道的收敛阈值。这只影响SCF
gthresh,step=1.d-2       ! 轨道旋转的收敛阈值。这只影响MCSCF
gthresh,civec=1.d-5      ! CI和CCSD的CI因子收敛阈值
gthresh,optgrad=1.d-4    ! 几何优化梯度的阈值
gthresh,optenerg=1.d-6   ! 几何优化能量的阈值
gthresh,twoint=1.d-11    ! 忽略小双电子积分的阈值
gthresh,compress=1.d-11  ! 积分压缩的精度
gthresh,printci=0.05     ! 打印所有大于0.05的CI因子
gthresh,punchci=0.05     ! 把所有大于0.05的CI因子写入punch文件中
注意能量阈值也影响有些其它阈值的默认值,例如orbital,step,和civec,因此如果是

精度计算的话,通常把能量阈值减小到足够的数值。
一个gthresh指令可以定义任意数量的阈值,例如,
gthresh,energy=1.d-8,printci=0.03

13.6 变量
结果和其它值可以存储到变量中,用于后面的计算。变量可以在输入中简单地设置为:
name=值
变量也可以是一维数组,格式是
name=[值1, 值2, 值3,...]
当前数组的维数是#name。
MOLPRO把某些结果存储到预先定义了名称的变量中。最重要的变量有
ORBITAL 存储最后计算轨道的纪录
ENERGR(istate)  在MRCI和CCSD中,态istate的参考能量
ENERGY(istate)  对态istate最后计算的总能量
ENERGC  除了微扰三重修正之外的总能量(只在CCSD/QCI程序中设置)
ENERGD(istate)  包含Davidson修正的态istate的总能量(只在CI程序中设置)
ENERGP(istate)  包含Pople修正的态istate的总能量(只在CI程序中设置)
ENERGT(1)   包含微扰三重修正(T)的总能量(只在CCSD(T)/QCI(T)程序中设置)
ENERGT(2)   包含微扰三重修正[T]的总能量(只在CCSD(T)/QCI(T)程序中设置)
ENERGT(3)   包含微扰三重修正-t的总能量(只在CCSD(T)/QCI(T)程序中设置)
EMP2    在MPn,CCSD,BCCD,或QCISD计算中保存MP2能量,在MRPT2 (CASPT2)中保存RS2


EMP3    在MP3和MP4计算中保存MP3能量,在MRPT3 (CASPT3)中保存RS3能量
EMP4    在MP4计算中保存MP4(SDQ)能量。MP4(SDTQ)能量存储到ENERGY变量中
STATUS  最后一步的状态(1=无错误;-1=出错或不收敛)
更多的变量见参考手册。

13.7 用do循环,if块和goto命令控制程序
MOLPRO还可以写简单的输入程序,用于检查条件或对输入的某个部分执行循环。IF块和DO

环具有和Fortran类似的形式。
一行IF:
IF (条件) 命令
如果有多个依赖于条件的命令,可以使用IF块:
IF (条件) THEN
   命令
END IF
or
IF (条件) THEN
   命令
ELSE
   命令
END IF
同样地,DO循环的结构也类似于Fortran:
DO ivar=istart,iend,[increment]
   命令
ENDDO
ivar是循环的下标变量,istart,iend,和increment是数值或者变量。默认的increment

1。
例子:
几个结构的循环(HCl的势能曲线):
***,HCl
geometry          ! Z-矩阵结构输入
h
cl,h,r
end

r=1.5             ! 键长的初始变量
hf                ! Hartree-Fock用于初始结构

do i=1,10         ! 对键长做循环

casscf;           ! 执行CASSCF
ecas(i)=energy    ! 把CASSCF能量保存到数组ecas中
mrci              ! 执行MRCI
rhcl(i)=r         ! 把键长保存到数组rhcl中
emrci(i)=energy   ! 把MRCI能量保存到数组emrci中
emrda(i)=energd   ! 把Davidson校正能量保存到数组emrda中

r=r+0.2           !增加r
end do
也可以预先设定一些键长:
***,HCl

rhcl=[1.6,1.8,2.0,2.2,2.3,2.4,2.5,2.7,3.0,3.5,4.0,5.0,6.0,7.0]

geometry          ! Z-矩阵结构输入
h
cl,h,r
end

do i=1,#rhcl      ! 对键长做循环
r=rhcl(i)         ! 把r设定为当前的键长

if(i.eq.1) then   ! 对第一个计算执行Hartree-Fock
  hf              ! Hartree-Fock用于初始结构
end if

casscf;           ! 执行CASSCF
ecas(i)=energy    ! 把CASSCF能量保存到数组ecas中
mrci              ! 执行MRCI
rhcl(i)=r         ! 把键长保存到数组rhcl中
emrci(i)=energy   ! 把MRCI能量保存到数组emrci中
emrda(i)=energd   ! 把Davidson校正能量保存到数组emrda中
end do
也可以用GOTO跳到输入文件后面的一些命令。例如,
if(orbital.ne.0) goto casscf   ! 如果轨道记录存在,跳到CASSCF
hf                             !Hartree-Fock
casscf;                        !CASSCF

13.8 制表与绘图
前面的计算结果可以用表格的形式打印,并用免费的绘图程序xmgrace画图。在前面的输入

中加入:
table,rhcl,ecas,emrci,emrda   ! 打印表格
plot,file='hcl.plot'          ! 产生xmgrace图表文件
Title,Results for HCl         ! 表格的标题
就会打印以下表格:
Results for HCl

   RHCL        ECAS           EMRCI          EMRDA
    1.6   -459.8049671   -459.9476516   -459.9549021
    1.8   -459.9690821   -460.1118784   -460.1192275
    2.0   -460.0545599   -460.1972494   -460.2046870
    2.2   -460.0940081   -460.2362450   -460.2437423
    2.3   -460.1028655   -460.2447475   -460.2522596
    2.4   -460.1067696   -460.2482178   -460.2557336
    2.5   -460.1069614   -460.2479059   -460.2554148
    2.7   -460.0998440   -460.2396165   -460.2470838
    3.0   -460.0793517   -460.2171250   -460.2244794
    3.5   -460.0401054   -460.1744682   -460.1815696
    4.0   -460.0085291   -460.1399223   -460.1467670
    5.0   -459.9768057   -460.1047967   -460.1113263
    6.0   -459.9685139   -460.0955779   -460.1020174
    7.0   -459.9668469   -460.0937046   -460.1001220
随后执行:
xmgrace hcl.plot
产生下面的图:


13.9 到MOLDEN的接口
用PUT指令可以保存结构和轨道,用于MOLDEN的显示。在频率计算中还保存简正模式。例子

如下:
***,H2O
geometry                ! H2O的Z-矩阵输入
angstrom                ! 键长用埃的单位
o
h,o,roh
h,o,roh,h,theta
end

roh=1.0                 ! 键长
theta=104.0             ! 键角

hf                      ! 进行Hartree-Fock计算
optg                    ! HF级别的几何优化
frequencies             ! 计算谐振频率
put,molden,h2o.molden;  ! 把结果保存到h2o.molden文件中
h2o.molden文件可以直接用作MOLDEN的输入。



--

※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.229.86]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:204.483毫秒