Friday, April 23, 2010

MP2 calculation goes wrong without direct SCF

Linux *.*.*.* 2.6.25-14.fc9.x86_64 #1 SMP Thu May 1 06:06:21 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
ifort v11
mkl v10
$GMS_COMM = sockets

The following MP2 calculation went wrong if dirscf is turned off.
It does not always happen though.

$contrl maxit=200 mult=1 scftyp=rhf runtyp=optimize coord=unique $end
$contrl mplevl=2 $end
$basis gbasis=n31 ngauss=6 ndfunc=1 $end
$system timlim=1000000 mwords=20 memddi=800 $end
$scf dirscf=.t. $end
$data
no comments
CNV 2

O 8.0 0.0000000000 0.0000000000 0.1360314251
H 1.0 0.7641065796 0.0000000000 0.7319842875
$end

diff test4.inp test5.inp
5c5
< $scf dirscf=.t. $end
---
> $scf dirscf=.f. $end

test4.log: E(MP2)= -76.1968470946
test4.log: MAXIMUM GRADIENT = 0.0004494 RMS GRADIENT = 0.0002158
test4.log: E(MP2)= -76.1968468130
test4.log: MAXIMUM GRADIENT = 0.0006107 RMS GRADIENT = 0.0002556
test4.log: E(MP2)= -76.1968477564
test4.log: MAXIMUM GRADIENT = 0.0001911 RMS GRADIENT = 0.0000941
test4.log: E(MP2)= -76.1968477898
test4.log: MAXIMUM GRADIENT = 0.0000469 RMS GRADIENT = 0.0000289
test5.log: E(MP2)= -76.1968470945
test5.log: MAXIMUM GRADIENT = 0.0004494 RMS GRADIENT = 0.0002158
test5.log: E(MP2)= -126.2224701040
test5.log: MAXIMUM GRADIENT = 1.3400855 RMS GRADIENT = 0.6443406
test5.log: E(MP2)= -126.2208660397
test5.log: MAXIMUM GRADIENT = 1.4001881 RMS GRADIENT = 0.6625852
test5.log: E(MP2)= -126.2703390929
test5.log: MAXIMUM GRADIENT = 1.5046911 RMS GRADIENT = 0.7201698
test5.log: E(MP2)= -126.3443479269
test5.log: MAXIMUM GRADIENT = 1.6611566 RMS GRADIENT = 0.8095194
test5.log: E(MP2)= -126.4231825510
test5.log: MAXIMUM GRADIENT = 1.8277026 RMS GRADIENT = 0.9085332
test5.log: E(MP2)= -126.5069942193
test5.log: MAXIMUM GRADIENT = 1.9991214 RMS GRADIENT = 1.0159385
test5.log: E(MP2)= -126.5957592381
test5.log: MAXIMUM GRADIENT = 2.1666212 RMS GRADIENT = 1.1290437
test5.log: E(MP2)= -2190.7996648700
test5.log: MAXIMUM GRADIENT = ********** RMS GRADIENT =**********