Biomedical Engineering Reference
In-Depth Information
etc. etc.
C
6.224 1.487 -1.290
H
7.262 1.551 -1.617
Calculations at this level of theory are iterative and resource intensive. The first statement
sets up a checkpoint file that is used to store information about the calculation in hand,
together with the results of the calculation. Calculations can be restarted from checkpoint
files.
Next comes the 'route' through the package. I have chosen a closed-shell HF-LCAO
calculation using the standard STO/6-311G** basis set. The major part of resource con-
sumption for a HF-LCAO calculation is concerned with calculating and manipulating the
two-electron integrals of which there a maximum of (about) n 4 /8, where n is the number
of basis functions. A number of strategies have been developed for dealing with them in
an efficient manner. In the early days it was usual to calculate all the integrals once, before
the HF iterations began, and store them on magnetic tape or exchangeable disk storage
(EDS). At each iteration, the integrals were read back into computer memory, the HF mat-
rix constructed and diagonalized. Matrix diagonalization is 'only' an n 2 process and even
the old-fashioned Jacobi or Householder algorithms are still found in modern modelling
packages.
It usually happens that many of the two-electron integrals are negligibly small, and
it is possible to estimate whether an integral will fall into this category before actually
calculating it. Only the significant ones then have to be calculated and stored. It is usual
to store the two-electron basis function label i , j , k , l packed as bytes into a 32-bit word,
together with the value of the integral (often multiplied by an appropriate factor of 10 and
stored as an integer).
The maximum number of basis functions determines the amount of storage needed for
the label; using one byte for each index limits us to 2 8
255 basis functions. Raffenetti
(1973) proposed an alternative way of storing the indices and the integral to make the
generation of the HF-LCAO matrix easier.
For molecules with any substantial amount of symmetry, many of the integrals turn out
to be plus or minus each other and many can be shown to be identically zero by symmetry
arguments, without even having to calculate them. Early packages such as POLYATOM
made extensive use of this symmetry feature, although it must be said that most organic
molecules have no symmetry to speak of.
Such old-fashioned HF-LCAO calculations where the integrals are calculated once and
then stored are usually input-output bound because of the finite time taken for disk or
magnetic tape transfers compared to the time needed to set up the HF matrix; ideally one
would like to calculate the integrals just once and hold them in RAM rather than store
them externally, but early computers had very limited RAM. Technology has moved on,
and many packages have a so-called incore option, where the integrals are calculated once
at the start of the HF optimizations, and held in memory. In Gaussian 03 we would put
SCF = Incore in the route (usage of the word 'core' is historical, and dates from the
time when computer memory was made of magnetized ferrite rings and so people spoke
about computer cores). Again, processor speed has also increased beyond belief, and it was
eventually realized that a cost-effective alternative to calculation of the integrals once and
1
=
Search WWH ::




Custom Search