Compute Canada

How do I run Crystal?


Before you gain access to Crystal, you have to read the existing license agreement and sign a statement that you have done so (see last section ). Crystal is run in two or three steps by redirecting standard input to an input file, and standard output to a log file. It produces a series of additional output in files that correspond to Fortran units (ie, by default they are named fort.*. Caution needs to be exercised when submitting more than one Crystal job at the same time: the jobs have to be started in different directories to avoid that the output of one job overwrites the output of another. A Crystal run typically consists of three steps:

  1. Calculation of the necessary integrals: integrals < test.12 > test.out
  2. Self-consistent field calculation: scf >> test.out
  3. Properties calculation: properties < test.3 >> test.out

Two separate input files (in our example), test.12 and test.3 are required. The first specifies the system, symmetry and method to be used. The second lists the properties requested. The first two program calls to integrals and scf) may be replaced by a single call to scfdir:

scfdir < test.12 > test.out

This program calculates all required matrix elements on the fly whenever needed, and should be used if one is low on disk space and/or memory. However, this option will, of course, lead to considerably longer execution times.

It is important to remember to rename those fort.* files that are needed (for example, to calculate further properties using the wave function), and to delete the others. Failure to do so wastes disk space (some of those files are rather large), or leads to loss of results when the next calculation overwrites the files of the previous one.

As with other software on HPCVL machines, you are not allowed to run production jobs interactively. Rather, you have to submit them to a load-balancing software called GridEngine. For general information about this software, please refer to our GridEngine FAQ. The process of submission is very simple. You produce a small script file (let's call it "") that includes the above program calls and submit it with the following command:


The GridEngine will put your job into a queue and submit it when the required resources become available. In the script file, you will to give the name of the input and output, as well as the email address to which notification has to be sent. The script file should reside in the same directory as the input and output files, and it should be submitted from that directory to avoid problems.