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/ROHF | 210 | 5.0
|
MP3/ROHF | 210 | 6.7
|
MP4/ROHF | 1361 | 125.4
|
CCSD(T)/ROHF | 194 | 14.5
|
MP2/UHF | 210 | 4.9
|
MP3/UHF | 210 | 7.9
|
MP4/UHF | 768 | 26.4
|
CCSD(T)/UHF | 194 | 14.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.
|