Controlling the Long-Range Terms

AMMP uses several tricks to efficiently calculate long range terms.

The first of these is the use of amortization. In amortization algorithms the results of a single calculation are used over several calls of a function. AMMP amortizes the long range forces by using a local power series to update the distal terms of the force for small deviations in atomic positions. This is more accurate than a simple multiple cutoff algorithm The parameter mxdq, set with the command setf, defines the maximum any atom can shift before recalculation. Typical values are 0.5 to 0.75 A.

The second trick is the fast multipole algorithm. AMMP uses a cubic expansion without shuffle version of the FMM. This is as accurate as the 5th order expansion with the shuffle for the potential and the 7th order with the shuffle for the amortization. This is directly coupled to the local power series used for amortization. It is turned on by setting the parameter mmbox to a value greater than zero. Using 10 Angstroms is the optimal compromise between accuracy and speed. The FMM is not worth using unless the system is larger than 1000 atoms or greater in size than 30 Angstroms.

If you are really desperate you can set a cutoff radius by defining a cutoff radius greater than zero. This is done with the parameter cutoff (i.e. setf cutoff 8.;). AMMP is faster without cutoffs than with them. Cutoffs are also physically incorrect and should not be used except as a bad example.