|
637. MAXWELL: Calculation of Electrostatic Interaction
Energies
by Mihaly Mezei, Department of Physiology and
Biophysics, Mount Sinai School of Medicine, CUNY, New
York, New York 10029 and Edwin S. Campbell, Department
of Chemistry, New York University, New York, New York
10003
The programs described herein can calculate the
interaction energies of either a finite set or a
crystal of polarizable molecules. They were written by
Mihaly Mezei in collaboration with Professor Edwin S.
Campbell at NYU on the CDC in 1975-76 and are based on
algorithms deleloped either jointly or earlier by
Professor Campbell. They have been converted to the
current FORTRAN 77 version from 1988 to 1992 at Hunter
College, CUNY, and at Mount Sinai School of Medicine,
CUNY. It now runs on the IBM, VAX/VMS, CRAY and on any
generic UNIX system.
The charge distribution at each lattice site is assumed
to be characterized by a multipole expansion about the
site in the formalism of Maxwell which computes the
interaction energy in the form of general directional
derivatives. Cooperativity is introduced through the
dipole polarizability tensor of each charge
distribution.
For a given charge distribution, the poles (scalar
mulipliers for each harmonic order) and characteristic
directions (used in the directional derivatives) are
obtained with the program CHARDIR. This algorithm
requires the Taylor series coefficients in the
multipole expansion for the charge distribution. These
coefficients can be computed for a one-determinant
wave-function expanded over a Gaussian basis set with
the program MOMENTS. The program MOMENTS can perform
the multipole expansion at the position of any of the
atoms or it can partition the electron density into
atomic contributions in a number of different ways and
thus perform the multipole expansion on each
separately.If necessary, the moments can be
translated and rotated by the program MOMTRNSF.
The program MULTIPOL computes three types of
contributions to the interaction energies between a
finite set of molecules. The permanent multipole
interaction energies are calculated with recursion
algorithms. The nonadditive induction energies are
calculated in the induced dipole approximation.
Pairwise additive interaction energies, which have the
form of a linear combination of inverse powers of the
distance between pairs of centers on each pair of
molecules, can be used to model dispersion and
repulsive contributions. These algorithms were used to
develop a cooperative potential function for water-
water interactions.
The same three types of contributions to the lattice
energy of a crystal of polarizable molecules can also
be computed. The permanent multipole contribution is
calculated with Campbell's generalization of the Ewald
method for ionic lattices to lattices of multipoles of
arbitrary order and an efficient algorithm for a
sequence of calculations on the same lattice but
different molecular orientations.The algorithm
proceeds in two steps. For each spherical harmonic
order a set of quantitites, called crystal constants
(completely determined by the geometry of the lattice
sites), is calculated. These crystal constants are
combined with characteristic directions and multipole
moments in a much shorter step to obtain the permanent
multipole interaction energy. The program CRYSCON
executes the "crystal constant" calculations, and the
program CRYSTAL calculates the permanent multipole
and, if desired, the induction contributions to the
lattice energy. The program CRYSPOT computes pairwise
additive contributions for each molecule in the unit
cell.It sums the interactions over all other
molecules in a crystallographic parallelepiped about
each molecule. The potential used has the form of
inverse powers of the distance between the interacting
centers.
The programs are written in FORTRAN 77 and are very
portable. The programs should run on any UNIX machine
as is.For non-UNIX systems, the CALL SYSTEM
statements have to be eliminated. Lines required by
IBM (MVS or VM) are given prefixed with CIBM and by
VAX/VMS with CVAX--these have to be blanked out, as
appropriate.The program MULTIPOL requires a
preprocessor (see Sec. E.6 of the documentation) to set
the dimensions as needed.
The current version uses single-precision arithmetic in
most places. This limited the precision of the
calculated moments to 4-5 significant figures for a
water molecule in a calculation with 32-bit arithmetic.
If increased precision is needed, the program should be
converted to double precision (by declaring all real
variables as REAL*8 with the IMPLICIT declaration and
changing the intrisic fuction calls to their REAL*8
counterpart). On the Convex the -p8 compiler option
automatically doubles the word sizes.
Lines of Code: 7251
FORTRAN 77
|