The MOLCRUNCH PROJECT Nov 15, 2012
The MOLCRUNCH project provides the the CRUNCH atomic and molecular calculation
package. This has a number of standard features present in other such packages,
but its primary feature is a configuration interaction (CI) system with
exceptional control over its structure. This allows considerable flexibility
in carrying out computations to determine electron correlation energies in
atomic and molecular systems.
CRUNCH is a completely modular system with modules varying greatly in their
maturity. Some have been in use since the late 1960s and others are
relatively recent. The download package is in source code only, and the
current version requires only the gcc (or equivalent) C compiler.
Later planned Versions will optionally use built-in linear algebra libraries.
However, the current basic Version is completely self contained.
The compilation of these CRUNCH modules should be fairly easy.
The programs do not use resources from any obscure corners of
Simply unpack the file, crunch.DD.MMM.YYYY.tar.gz, in any convenient
directory (but usually $HOME ) with:
prompt> tar zxf crunch.DD.MMM.YYYY.tar.gz <enter>
This will create a subdirectory, crunch.DD.MMM.YYYY/. Then the following
sequence of operations should compile a local set of executables
and place them in the bin subdirectory of crunch.DD.MMM.YYYY/.
prompt> cd crunch.DD.MMM.YYYY/ <enter>
prompt> ./compcrunch >&! compcrunch.log <enter>
prompt> ./compcrunch |& tee compcrunch.log <enter>
The second alternative displays the output on the screen while it is being
stored in the log file. We strongly recommend sending all of the output to
the compcrunch.log file, as shown.
Depending upon the settings of the C compiler, you may receive a number of
warning about unused variables. We assure the user that these may be
ignored with any POSIX compiler. Such settings are quite paranoid, and we
are getting rid the offending code as fast as possible.
By putting the crunch.DD.MMM.YYYY/bin subdirectory at the start of the list
defining the path of the user's shell (in .tschrc or .profile or
whatever you use), these can be used directly.
If desired, and if sudo privileges can be obtained, the following
command should be executed (in the same directory as was used for
prompt> sudo ./instcrunch <enter>
Suitable adjustments to the order of the path variable allows
selection of systemwide or (perhaps different) local version(s)
Finally, to support configurations in which different architectures
are supported by a common user file system, or where binaries of
multiple compilers/libraries are to be used, the script executed
prompt> ./clearall <enter>
is provided to purge all the local binaries to insure a
"completely fresh compile" and avoid linking incompatible
libraries/binaries. In the case of using more than one complete
set of binaries, it is the user's responsibility to set names and
paths appropriately, and no scripted solution for this problem is
The manuals for using crunch are in the Docs/ directory in both
postscript and .pdf formats. See also the examples in the examples/
directory. (For a systemwide install, the docs are put in
/usr/share/doc/crunch and the examples are in a subdirectory under
There are example input files for a number of calculations in the
examples/ directory. There is also a copy of what we think the
concatenated output should look like for each case. This has the
suffix ".sve" attached.
The only portability problem we have ever had concerns the timing
functions consolidated in util.c. They have worked on LINUX, AIX,
IRIS, and HPUX, but not XENIX or SCO-UNIX. They may need to be
kludged for some unices.
These programs have never been tested in Bourne-shell-like environ-
ments, and have only been used with csh and tcsh.
If you have any questions or comments, please e-mail them to me.
P.S. Note on the source code: For ease of reading, the files have
been reformatted and standardized to 3-space tabs.
In emacs variants: Run the "set-variable" command and set
"tab-width" to 3. (If you go into the help facility and get
information on the "tab-width" variable, you can "customize" it
there and be given the opportunity to "permanently" change this
variable (actually, add commands to your .emacs file.)
In vi variants: Execute the command ":set ts-3"