Page tree
Skip to end of metadata
Go to start of metadata

Phonopy is an open source package for phonon calculations at harmonic and quasi-harmonic levels. It can be used to study for example the phonon dispersion relations, phonon group velocities, and thermal properties of materials. The theory and implementation of Phonopy are described in more detail in a paper by Togo and Tanaka.

Phonopy is mainly written in Python and is interfaced with a number of computational materials science codes such as CRYSTAL. Phonopy can create supercells with finite displacements, for which the forces are then evaluated by CRYSTAL. Phonopy then reads the resulting forces and determines the phonon properties.  

This Wiki does not cover all the functionalities of Phonopy, but gives a practical overview on how to operate it within the computational clusters at Aalto CMAT. These instructions are for Phonopy version 2.1.3. and newer.


The workflow with Phonopy is as follows:

  1. The geometry of the studied material is optimized with CRYSTAL.
  2. Phonopy analyzes the optimized crystal structure of the material and produces a number of phonon supercells in which some atoms are displaced from their equilibrium position.
  3. Forces acting on the atoms are calculated for each supercell using CRYSTAL.
  4. Phonopy reads in the forces resulting from the displacement of atoms, and calculates the second order force constants.
  5. The second order force constants are used to calculate the various phonon properties of interest.

Practical examples

The following subchapters include step-by-step instructions for CRYSTAL+Phonopy, using Cu2O as an example.

  1. Phonon dispersion relations
  2. Non-analytical correction for phonon dispersion relations
  3. Phonon density of states
  4. Thermal properties

Important note

Phonopy commands are relatively fast to execute interactively, at least when the symmetry is high and the primitive unit cell is small (less than 10 atoms). For larger systems, the Phonopy commands need to be submitted to queue using 

jsub cmd phonopy ...

(more advice to come)

  • No labels