Phonopy: First-Principles Phonon Calculations for Thermal and Mechanical Properties of Materials
Phonopy is an open-source Python package for calculating phonon properties of crystalline materials using the force-constant method. Developed by Atsushi Togo and widely adopted in the computational materials science community, Phonopy interfaces seamlessly with major DFT codes—including VASP, Quantum ESPRESSO, ABINIT, and CP2K—to extract lattice dynamics information that is inaccessible from static total-energy calculations alone. This article covers Phonopy's core workflow, key analysis capabilities, and practical considerations for production-quality phonon simulations.
Why Phonon Calculations Matter
Phonons—quantized lattice vibrations—govern a material's thermodynamic stability, heat capacity, thermal conductivity, and electron-phonon coupling. A material that is statically stable (negative formation energy) may still be dynamically unstable if its phonon dispersion contains imaginary frequencies, signaling a structural phase transition or a soft mode. Phonopy makes these assessments routine, enabling researchers to:
- Confirm or rule out dynamical stability before synthesizing a new compound
- Compute zero-point energy and finite-temperature free energies via the quasi-harmonic approximation (QHA)
- Predict Debye temperatures, heat capacities (C_v and C_p), and thermal expansion coefficients
- Identify Raman- and IR-active modes for comparison with experimental spectra
- Feed phonon density of states (PDOS) into electron-phonon coupling codes such as EPW or ShengBTE for thermal transport
Core Workflow: Finite Displacement Method

Phonopy's default approach is the finite displacement method (also called the direct method or supercell method). The workflow proceeds in four stages:
1. Supercell Generation
Starting from a relaxed primitive cell (e.g., a POSCAR for VASP), Phonopy generates a set of symmetry-inequivalent displaced supercells:
phonopy --vasp -d --dim="4 4 4" -c POSCAR
The --dim flag controls the supercell size. A 4×4×4 expansion of a two-atom FCC cell yields 128 atoms. Phonopy exploits crystal symmetry to minimize the number of required displacements—often just 1–3 for high-symmetry structures.
2. Force Calculations
Each displaced supercell is submitted to the DFT engine as a single-point force calculation. For VASP, this means setting IBRION = -1 and NSW = 0 with tight convergence (EDIFF = 1E-8). The resulting vasprun.xml files are collected and parsed:
phonopy --vasp -f disp-001/vasprun.xml disp-002/vasprun.xml ...
This step produces FORCE_SETS, the central data file encoding all interatomic force constants.
3. Post-Processing and Band Structure
With FORCE_SETS in hand, Phonopy computes the dynamical matrix and diagonalizes it along a user-specified q-point path:
# phonopy.conf
ATOM_NAME = Si
DIM = 4 4 4
BAND = 0 0 0 0.5 0 0.5 0.625 0.25 0.625 0.375 0.375 0.75 0 0 0 0.5 0.5 0.5
BAND_POINTS = 101
phonopy -p phonopy.conf
The resulting band structure plot immediately reveals whether imaginary (negative) frequencies exist at any q-point.
4. Thermodynamic Properties
Phonopy integrates the phonon DOS over a Monkhorst-Pack mesh to yield temperature-dependent thermodynamic quantities:
MP = 20 20 20
TPROP = .TRUE.
TMIN = 0
TMAX = 1000
TSTEP = 10
Output includes Helmholtz free energy, entropy, heat capacity at constant volume, and zero-point energy—all as functions of temperature.
Quasi-Harmonic Approximation for Thermal Expansion

The harmonic approximation treats force constants as volume-independent. The quasi-harmonic approximation (QHA) lifts this restriction by computing phonon dispersions at several volumes and minimizing the Gibbs free energy G(T, P) = E(V) + F_vib(T, V) + PV. Phonopy-QHA automates this:
phonopy-qha -p e-v.dat thermal_properties.yaml-{00..10}
where e-v.dat contains DFT total energies at each volume and the YAML files hold the corresponding thermal properties. The output includes the equilibrium volume as a function of temperature, the volumetric thermal expansion coefficient α(T), and the bulk modulus B(T)—quantities directly comparable to dilatometry and ultrasonic measurements.
Practical Tips for Reliable Results

Supercell size convergence: Phonon frequencies, especially acoustic branches near the zone center, converge slowly with supercell size. Always test at least two supercell dimensions (e.g., 3×3×3 and 4×4×4) and compare dispersions before production runs.
Force convergence: Tight electronic convergence (EDIFF ≤ 1E-8 eV) is essential. Residual forces from incomplete SCF cycles introduce noise in the force constants that manifests as spurious imaginary modes or non-analytic behavior near Γ.
Non-analytic correction (NAC): For polar materials (e.g., GaN, BaTiO₃), the long-range dipole-dipole interaction splits LO and TO modes at the Γ point. Phonopy supports NAC via Born effective charges and the dielectric tensor, which VASP provides in OUTCAR when LEPSILON = .TRUE. is set.
Symmetry tolerance: If the DFT relaxation slightly breaks symmetry, Phonopy may generate more displacements than necessary. Use --symmetry-tolerance to adjust the tolerance, or re-symmetrize the structure with tools like spglib before running Phonopy.
Integration with the Materials Ecosystem
Phonopy outputs are consumed by several downstream codes:
- ShengBTE / phono3py: Anharmonic force constants for lattice thermal conductivity (κ_L)
- EPW: Electron-phonon coupling matrix elements for superconducting T_c and carrier mobility
- VESTA: Visualization of phonon eigenvectors as animated displacement patterns
- pymatgen: Automated high-throughput phonon workflows via the
PhononWorkflowin Atomate2 - AiiDA-phonopy: Provenance-tracked phonon calculations in the AiiDA workflow engine
Further Resources
- Phonopy documentation — comprehensive user guide and API reference
- Phonopy GitHub repository — source code and issue tracker
- Togo & Tanaka, Scr. Mater. 108, 1 (2015) — the primary citation for Phonopy
- phono3py — companion code for third-order force constants and thermal conductivity
- Atomate2 phonon workflow — automated high-throughput phonon calculations
Phonopy has become a cornerstone of the computational materials science toolkit precisely because it abstracts the complexity of lattice dynamics into a clean, scriptable Python interface while remaining flexible enough to interface with virtually any DFT backend. For any study involving thermodynamic stability, thermal properties, or vibrational spectroscopy, Phonopy should be the first tool reached for.