Apparent bug in MP3 portion of MP4 calculation


Click here for full thread
Gets Around
echo

start molecule

title "CN"
charge 0

geometry units angstroms print xyz
 symmetry c1
 C  -0.61234453     0.00000000    -0.00000000
 N   0.52670530     0.00000000    -0.00000000
end

basis spherical
 * library cc-pVTZ
end

scf
 #uhf
 doublet
end

tce
 freeze atomic
 #mp2
 #mp3
 mp4
 #ccsd(t)
end

task tce energy


Rather to my surprise, the mp4 choice here is by far the costliest in RAM and CPU time. All tests ran with 2 CPU cores on a machine with 16 GB physical memory.

Method
GA max memory, megabytes
Wall clock time, seconds
MP2/ROHF2105.0
MP3/ROHF2106.7
MP4/ROHF1361125.4
CCSD(T)/ROHF19414.5
MP2/UHF2104.9
MP3/UHF2107.9
MP4/UHF76826.4
CCSD(T)/UHF19414.6


It is not too surprising that the more frequently used CCSD(T) method appears to be better optimized. It is surprising just how much RAM, especially, the MP4 method takes. It makes it challenging to do even 3 heavy atoms at the triple zeta level on a workstation. Why run MP4 at all when CCSD(T) is more accurate and better optimized? I need it for reproducing others' work, and to implement composite thermochemical methods that incorporate MP4 steps.

EDIT: is there a bug in the MP3 portion of the MP4 calculation? If I run MP3 by itself, the MP3 iterations are much faster than the MP3 portion of an MP4 calculation. Also the initial residuum starts out considerably higher. These excerpts are from the log of the triple zeta ROHF calculation, single-CPU run.

MP2 and MP3 steps of MP3 calculation:
 MBPT(2) iterations
 --------------------------------------------------------
 Iter          Residuum       Correlation     Cpu    Wall
 --------------------------------------------------------
    1   0.0689206701564  -0.3204021136745     0.0     0.0
    2   0.0378756234900  -0.3104112192009     0.0     0.0
    3   0.0316630900929  -0.3143286709281     0.0     0.0
    4   0.0289327875332  -0.3120686928720     0.0     0.0
    5   0.0270555227660  -0.3137666102899     0.0     0.0
 MICROCYCLE DIIS UPDATE:                    5                    5
    6   0.0000649608831  -0.3129966718043     0.0     0.0
    7   0.0000282990332  -0.3130017756141     0.0     0.0
    8   0.0000192080241  -0.3130016111436     0.0     0.0
    9   0.0000138044951  -0.3130017293396     0.0     0.0
   10   0.0000102865536  -0.3130016631116     0.0     0.0
 MICROCYCLE DIIS UPDATE:                   10                    5
   11   0.0000001100377  -0.3130016902778     0.0     0.0
   12   0.0000000500976  -0.3130016841266     0.0     0.0
 --------------------------------------------------------
 Iterations converged
 MBPT(2) correlation energy / hartree =        -0.313001684126637
 MBPT(2) total energy / hartree       =       -92.534571481517744

 MBPT(3) iterations
 --------------------------------------------------------
 Iter          Residuum       Correlation     Cpu    Wall
 --------------------------------------------------------
    1   0.1886264605800   0.0000000000000     0.1     0.1
    2   0.0330324992094   0.0023896036508     0.1     0.1
    3   0.0286129350116   0.0038524264758     0.1     0.1
    4   0.0326935969874   0.0025105584886     0.1     0.1
    5   0.0383018337784   0.0037702129485     0.1     0.1
 MICROCYCLE DIIS UPDATE:                    5                    5
    6   0.0002619247770   0.0031556789756     0.1     0.1
    7   0.0001527083672   0.0031643922847     0.1     0.1
    8   0.0001326724482   0.0031585938569     0.1     0.1
    9   0.0001224034744   0.0031637762660     0.1     0.1
   10   0.0001149708289   0.0031588265427     0.1     0.1
 MICROCYCLE DIIS UPDATE:                   10                    5
   11   0.0000004758086   0.0031612687709     0.1     0.1
   12   0.0000002241956   0.0031612568480     0.1     0.1
   13   0.0000002603418   0.0031612656238     0.1     0.1
   14   0.0000003050224   0.0031612580448     0.1     0.1
   15   0.0000003573232   0.0031612649036     0.1     0.1
 MICROCYCLE DIIS UPDATE:                   15                    5
   16   0.0000000018320   0.0031612615990     0.1     0.1
 --------------------------------------------------------
 Iterations converged
 MBPT(3) correlation energy / hartree =         0.003161261598981
 MBPT(3) total energy / hartree       =       -92.531410219918769


MP2 and MP3 steps of MP4 calculation, same system:
 MBPT(2) iterations
 --------------------------------------------------------
 Iter          Residuum       Correlation     Cpu    Wall
 --------------------------------------------------------
    1   0.0689206701564  -0.3204021136745     0.0     0.0
    2   0.0378756234900  -0.3104112192009     0.0     0.0
    3   0.0316630900929  -0.3143286709281     0.0     0.0
    4   0.0289327875332  -0.3120686928720     0.0     0.0
    5   0.0270555227660  -0.3137666102899     0.0     0.0
 MICROCYCLE DIIS UPDATE:                    5                    5
    6   0.0000649608831  -0.3129966718043     0.0     0.0
    7   0.0000282990332  -0.3130017756141     0.0     0.0
    8   0.0000192080241  -0.3130016111436     0.0     0.0
    9   0.0000138044951  -0.3130017293396     0.0     0.0
   10   0.0000102865536  -0.3130016631116     0.0     0.0
 MICROCYCLE DIIS UPDATE:                   10                    5
   11   0.0000001100377  -0.3130016902778     0.0     0.0
   12   0.0000000500976  -0.3130016841266     0.0     0.0
 --------------------------------------------------------
 Iterations converged
 MBPT(2) correlation energy / hartree =        -0.313001684126637
 MBPT(2) total energy / hartree       =       -92.534571481517744

 MBPT(3) iterations
 --------------------------------------------------------
 Iter          Residuum       Correlation     Cpu    Wall
 --------------------------------------------------------
    1   0.8387396286641   0.0000000000000     7.7     7.8
    2   0.0378480408875   0.0023896036265     7.7     7.8
    3   0.0278027039909   0.0037728361587     7.7     7.8
    4   0.0323941245749   0.0024673134418     7.7     7.7
    5   0.0377463575074   0.0036942361183     7.7     7.7
 MICROCYCLE DIIS UPDATE:                    5                    5
    6   0.0004768057635   0.0030932877697     7.7     7.7
    7   0.0002341277283   0.0031081837819     7.7     7.7
    8   0.0002188813889   0.0030970036896     7.7     7.7
    9   0.0002076640543   0.0031072000626     7.7     7.7
   10   0.0001976053509   0.0030976477284     7.7     7.7
 MICROCYCLE DIIS UPDATE:                   10                    5
   11   0.0000009204401   0.0031022871190     7.7     7.7
   12   0.0000002259750   0.0031022873689     7.7     7.7
   13   0.0000001624172   0.0031022948900     7.7     7.7
   14   0.0000001545262   0.0031022880045     7.7     7.7
   15   0.0000001799059   0.0031022943861     7.7     7.7
 MICROCYCLE DIIS UPDATE:                   15                    5
   16   0.0000000019473   0.0031022912791     7.7     7.7
 --------------------------------------------------------
 Iterations converged
 MBPT(3) correlation energy / hartree =         0.003102291279072
 MBPT(3) total energy / hartree       =       -92.531469190122465


In the second excerpt from the MP4 job, note that the MP3 iterations take ~70 times as long as in the stand-alone MP3 job. In fact, the MP3 iterations of the MP4 job are each considerably slower than the MP4 iterations. That can't be right.