Next: 26.3.3 Intermolecular interactions Up: 26.3 Doing it right Previous: 26.3.1 Always...

26.3.2 Linear scaling MP2

Linear scaling of the CPU time as well as memory and disk requirements with molecular size (for a fixed basis set) can be achieved for very extended systems if the calculation is performed in integral-direct manner (i.e., the 2-electron integrals are never stored on disk) [3]. This requires the DIRECT module. In order to achieve low-order scaling the MULTP directive must be used. Normally, the program uses appropriate defaults and no further options must be set. Thus, the typical input structure looks as follows:

memory,64,m     !specify enough memory if you try a very large calculation
file,2,name.wfu !save orbitals and other info for later restart
gdirect         !enable integral-direct mode
basis={...}     !basis specification
geometry={nosym;noorient;...}  !geometry specification
hf              !scf calculation (this often takes most of the time, since at
                !present this is not linearly scaling)
locali,pipek    !Orbital localization (this card is optional). If not given
                !Pipek-Mezey localization is done automatically within the LMP2 program
mp2;multp       !Local MP2 with multipole approximation for distant pairs.

Notice that for small systems a local MP2 with these default options might take more time than a conventional MP2. There are two reasons for this: firstly, the default options in the LMP2 case are chosen so that the memory and disk requirements are minimized. This requires the evaluation of each unique integral twice in the transformation. Secondly, the LMP2 equations have to be solved iteratively, which takes some additional time. It is possible to speed up local MP2 calculations for small or medium size molecules using the following option on the GDIRECT card:

GDIRECT,PAGE=1

In this case each unique integral is computed only once, but intermediate storage of the half transformed integrals on disk is required. The disk requirements scale cubically in this case, and therefore this option cannot be used for very large cases.

The CPU-time depends sensitively on the prescreening thresholds used in the transformation. Their choice, in turn, depends on the required accuracy. The default thresholds (1.d-7) normally ensure that absolute numerical errors in the energy are around 1 $\mu$H. For many applications, lower accuracy is sufficient, and a change of the default values can achieved be requesting a less accurate energy:

GTHRESH,ENERGY=1.d-5

This card must be given before the MP2 directive and will then increase the prescreening thresholds to 1.d-6 (note that it might also influence the accuracy of the SCF if given before the HF card!). On the other hand, requesting a more accurate energy will tighten the thresholds. Tighter thresholds will also be chosen automatically if the AO overlap matrix has very small eigenvalues, which can happen for large and diffuse basis sets.

The prescreening thresholds for LMP2 can also be changed using the specific options
THRAO_LMP2, THRQ1_LMP2, and THRQ2_LMP2 on the DIRECT card (see section 8), but this is only recommended for experienced users.



Next: 26.3.3 Intermolecular interactions Up: 26.3 Doing it right Previous: 26.3.1 Always...

P.J. Knowles and H.-J. Werner
molpro@tc.bham.ac.uk
Jan 15, 2002