CRUSH: the "Rigid Unit Mode" program

Martin Dove, Kenton Hammonds

    CRUSH is a program written to calculate the Rigid Unit Mode spectrum for any given framework crystal structure. The method and implementation are described in the following papers:

    A P Giddy, M T Dove, G S Pawley and V Heine. "The determination of rigid unit modes as potential soft modes for displacive phase transitions in framework crystal structures". Acta Crystallographica A49, 697­703, 1993

    K D Hammonds, M T Dove, A P Giddy and V Heine. "CRUSH: A FORTRAN program for the analysis of the rigid unit mode spectrum of a framework structure". American Mineralogist 79, 1207­1209, 1994

    These articles are now a little out of date since the program has been improved in many ways but they are still worth reading in order to understand the ideas being used.

      What are Rigid Unit Modes?

      The theory of Rigid Unit Modes (called RUMs for short) provides a way of quantifying the flexibility of a crystal structure that resembles a framework of linked atomic polyehdra (e.g. SiO4 tetrahedra). The RUMs are the set of lattice vibrations that involve translations and rotations of the polyhedra without them distorting, i.e. they move as rigid units. With no other forces present, the RUMs will have zero frequency. In practice there are always forces between polyhedra, but these are always lower than the forces involved in distorting the polyhedra, so in a real material the RUMs will have low frequencies compared to the other phonons.

        How does CRUSH work?

        Crush works by representing the polyhedra as perfectly rigid units, and representing the finite stiffness of the polyhedra by splitting every atom shared by the vertices of two polyhedra as two atoms, one on each polyhedron. Then we invent a spring force between the two split atoms that acts to keep the two together. The spring constant is calibrated against the phonon spectra of a typical silicate.

        The advantage of this representation is that the model can be analysed using the standard theory of molecular lattice dynamics, and this is how CRUSH solves the equations of motion. The RUMs are the phonons that are calculated to have zero frequency ­ all other phonons have a non-zero value for the frequency that is determine by how much the polyhedra need to be distorted.


          CRUSH was initially developed by Andrew Giddy and Martin Dove, and further developed by Kenton Hammonds. Initially the code was developed under the VMS operating system, but the code is easily ported to UNIX machines. The code is optimised for operation on a vector processor (particularly for large systems ­ for some vector architectures, the speed-up gains only kick in when large systems are being used), and a version also exists for operation on a parallel computer using MPI. This version spreads the calculations for a large number of wave vector across the different processors, and is ideal for calculations of phonon density of states and diffuse scattering.

          The CRUSH package also contains a number of useful additional programs. The program IDEALISER is for setting up calculations, and one important facility is the ability to idealise a structure to make the polyehedra as regular as possible (which frequently means perfectly regular). Other programs are designed to analyse the results of a CRUSH calculation.

            1. Silicate minerals

            We have used the CRUSH code to calculate RUMs in a wide range of silicate minerals, particularly to investgate the role of RUMs in displacive phase transitions in these systems. We have found that RUMs act as soft modes for all the phase transitions we have investigated.

            A second aspect of this work has been to investigate the nature of high-temperature phases. For example, we found that in cristobalite there are enough RUMs to allow the tetrahedra to be orientationally disordered in the high-temperature phase.

            Low-temperature (left, tetragonal) and high-temperature (right, cubic) phases of cristobalite. The phase transition involves a double-degenerate RUM in the cubic phase with wave vector (1,0,0).

              2. Zeolites

              We have shown that zeolites have a large number of RUMs, as well as phonons that almost act as RUMs (we call such modes Quasi-RUMs). Some zeolites have one or more RUMs for each wave vector. These RUMs can be added together with appropriate phase factors to create local deformations in which the tetrahedra do not need to distort. One application of this approach has been to identify the mechanisms by which cations such as Ni can be held within zeolite structures.

                Availability of codes

                Our objective is to allow the codes (CRUSH and additional programs such as IDEALISER and GROUP) for the RUM analysis to be freely available. Moreover, we are quite happy to offer help to potential users.

                The programs can be obtained by downloading our compressed archive file rums. software.tar.gz. This archive file includes manuals and example input and output files, as well as the Fortran source codes.

                Once you have the file you have to type gunzip to uncompress it. Then, to unpack the archive, move it into an empty directory and type tar -xvf Then all the files are unpacked and you will find that each of the Fortran programs has a manual that will tell you what to do next. If you don't have access to a system that supports the gunzip or tar commands then help in accessing the codes can be obtained by emailing Martin Dove ( or Kenton Hammonds (

                Another route for access to the codes is via anonymous ftp to, and to then look into the directory pub/minp/crush inorder to get the file

                We are interested to know how people use the codes, and so we would appreciate feedback and information.