Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



Critic2 is a program for the manipulation and analysis of structural and chemical information in molecules and periodic solids. Critic2 can be used to:

  • Read, transform, and create molecular and crystal structures.

  • Carry out crystallographic computations (environments, coordination numbers, structural comparison,...).

  • Read, analyze, manipulate, combine, and create scalar fields such as the electron density or the ELF.

  • Carry out calculations using Bader's atoms in molecules theory (finding critical points, integrating atomic basins, plotting gradient path manifolds,...).

  • Make non-covalent interaction (NCI) and other similar plots.

Critic2 is provides an abstraction layer on top of the underlying quantum chemical calculation. Critic2 interfaces with many electronic structure programs: WIEN2k, elk, PI, Quantum ESPRESSO, abinit, VASP, DFTB+, Gaussian, psi4, siesta, and more.

Compilation and installation

Critic2 can be compiled on Linux and macOS. For this, you will need a Fortran and a C compiler, and a build system (either autotools or cmake, and make). Detailed installation instructions can be found in the manual. Critic2 uses some fairly modern Fortran features, which may not be implemented on all current Fortran compilers. Please, check out the relevant section of the manual to see if your compiler is listed.

Critic2 is parallelized for shared-memory architectures (unless specifically deactivated during the build process). You change the number of parallel threads by setting the OMP_NUM_THREADS environment variable.

The environment variable CRITIC_HOME is necessary if critic2 was not installed with make install. It must point to the root directory of the distribution:

export CRITIC_HOME=/home/alberto/programs/critic2dir

This variable is necessary for critic2 to find the atomic densities, the cif dictionary and the library data. These should be in ${CRITIC_HOME}/dat/.

Lastly, a number of external libraries can be used to extend critic2's capabilities, including readline (shell-like features in the critic2 command line), Libxc (exchange-correlation energies and potentials), and Libcint (molecular integrals).

Using critic2

All of critic2's features are documented in the reference manual. For a text version of the manual, please clone the repository. Some examples are provided in the examples section of the documentation.

References and citation

The basic references for critic2 are:

The output and the manual may contain additional references pertaining to methods employed by particular keywords.


Critic2 is made available under the GNU/GPL v3 license. See the LICENSE file in the root of the critic2 distribution for more details.


Analysis of quantum chemical interactions in molecules and solids.







No packages published