Crystal

quantum mechanical calculations

Quantum-mechanical calculation software for periodic systems CRYSTAL 14 runs on the DIRAC cluster.

CRYSTAL is a general-purpose program for the study of crystalline solids using quantum-mechanical calculations. The software is both powerful and rather easy to handle.

The CRYSTAL program computes the electronic structure of periodic systems within Hartree Fock, density functional or various hybrid approximations (global, range-separated and double-hybrids). The Bloch functions of the periodic systems are expanded as linear combinations of atom centred Gaussian functions. Powerful screening techniques are used to exploit real space locality.

Restricted (Closed Shell) and Unrestricted (Spin-polarized) calculations can be performed with all-electron and valence-only basis sets with effective core pseudo-potentials.

The program can automatically handle space symmetry (230 space groups, 80 two-sided plane groups, 99 rod groups, 45 point groups are available ). Point symmetries compatible with translation symmetry are provided for molecules. Helical symmetry is now available (up to order 48).


Input tools allow the generation of a slab (2D system), or a cluster (0D system), from a 3D crystalline structure, or the creation of a supercell with a defect, or nanotubes (1D system) from a single-layer slab model (2D system).

The code may be used to perform consistent studies of the physical and chemical properties of molecules, polymers, nanotubes, surfaces and crystalline solids:

  • Structural features
  • Vibrational properties
  • Electronic structure
  • Magnetic properties
  • Dielectric properties (linear and non-linear electric susceptibilities up to forth-order)
  • Elastic, piezoelectric and photoelastic properties

Running CRYSTAL14 on DIRAC:

  • Starting the job:   "qsub -q magny@node25 job.sh"
  • CRYSTAL14 should run on a single node. This allows up to 48 parallel processes on magny nodes, up to 64 on inter nodes. For best performance, select a node with enough free cores to run all parallel processes. Use a command like "qstat -F {load_short}" to find a suitable node.
  • The job file "job.sh" (any name is possible) looks like this:
    #!/bin/bash
    #$ -S /bin/bash
    #$ -cwd
    #$ -l vf=4G       
    /opt/crystal14/utils/runmpi 32  filename filename2
  • In this, "32" is the number of parallel processes, "filename" ist the name of the input file "filename.d12", and "filename2" is the name under which data for reuse in subsequent runs are stored ("filename2" can be the same as "filename")