openmaterials.ai / codes / phono3py
phono3py: phonon lifetimes and thermal conductivity from third-order force constants
A supercell code that fits third-order force constants to DFT forces, computes three-phonon linewidths on symmetry-reduced grids and solves the linearized Boltzmann equation.
What it is and how it works
Linewidths across the Brillouin zone
The imaginary part of the phonon self energy, from the three-phonon interaction strength and the tetrahedron method, is mapped over the zone for nine zincblende compounds among the 33 studied (Togo 2015).
Supercell finite displacements
Single and pair displacements of 0.03 A in supercells, reduced by site symmetry, recovered by crystal symmetry. Forces come from an external code like VASP (Togo 2015).
Symmetry-reduced q grids
Gamma-centred regular grids, point group, time reversal and permutation symmetry cut the q, q' pairs. Lifetimes at irreducible points spread over many nodes (Togo 2023).
Linear tetrahedron method
Energy conservation in the self energy and joint density of states is integrated analytically over 24 tetrahedra per grid point by a module returning weights (Togo 2023).
RTA or direct LBTE solution
Kappa from mode heat capacity, group velocity and lifetime in single-mode RTA, or from the direct solution of the linearized Boltzmann equation, and isotopes (Togo 2015).
Finite temperature displacements
Random supercell displacements drawn from harmonic oscillators at a given temperature, valid when all commensurate modes are stable, for averaged properties (Togo 2023).
What people do with it
- 33zincblende and wurtzite compounds, RTA and LBTETogo 2015
- 0.03 Aatomic displacement for second and third orderTogo 2015
- 7.26e2W/m/K, cubic BN at 300 K with isotopes, LBTETogo 2015
CsPbBr3, particle and wave heat flow
The Wigner conductivity, run in phono3py, gives at 300 K about 1/3 of kappa_xx from populations and 2/3 from coherences, closer to experiment. At 50 K populations give 3/4 (Simoncelli 2022). Simoncelli 2022
Janus MoSSe monolayer
Phono3py with VASP in the RTA gives a room temperature kappa of 13.90 W/m/K for MoSSe, between 23.15 for MoS2 and 11.54 for MoSe2, at one thickness of 24.64 A (Guo 2018). Guo 2018
How it is used
Displace supercells
Generate symmetry-reduced displacements of 0.03 A in supercells for fc2 and fc3.
Compute forces
Run the DFT code on every displaced supercell and collect the forces.
Fit force constants
Build fc2 and fc3 from the forces. Add the non-analytical correction from Born charges.
Linewidths on a mesh
Interaction strengths and imaginary self energies on a q mesh with the tetrahedron method.
Conductivity
Kappa by RTA or LBTE, mode lifetimes and cumulative kappa from kappa-mXXXXXX.hdf5.
What phono3py is
phono3py computes phonon-phonon interaction strengths from third-order force constants, obtained by finite displacements with an external force calculator. From them it evaluates phonon lifetimes and the lattice thermal conductivity, by the relaxation-time approximation or by solving the linearized Boltzmann equation. On the map it serves the third-order force constants, the lifetimes and the conductivities.
WebsiteOn the mapAll codesLicense: BSD-3-Clause
In more detail
Force constants from supercells
Second and third order force constants come from the supercell approach with finite atomic displacements of 0.03 A. The crystal symmetry selects the first displaced atom and the site symmetry left after the first selects the second. Applying the symmetry operations to the computed elements recovers the full tensors. In the 2015 study the harmonic constants used 4x4x4 supercells of the conventional cell (512 atoms) for zincblende and 5x5x3 (300 atoms) for wurtzite, and the cubic constants 2x2x2 (64 atoms) and 3x3x2 (72 atoms). The non-analytical term correction adds the long-range Coulomb part from Born charges and the dielectric tensor (Togo 2015).
Linewidths, grids and the tetrahedron method
The phonon lifetime is the reciprocal of twice the imaginary part of the self energy, computed from the phonon-phonon interaction strength by Fermi's golden rule. Lifetimes were sampled on 96x96x96 and 80x80x48 meshes for the band structures and 19x19x19 and 19x19x15 meshes for the conductivities (Togo 2015). phono3py uses a Gamma-centred regular grid so that q and q' pairs map onto the grid, and reduces them by the crystallographic point group, time reversal and permutation symmetry. It integrates the energy-conserving deltas with the linear tetrahedron method, implemented as a module that returns weights per grid point (Togo 2023).
RTA and the direct solution
Under the single-mode relaxation time approximation kappa is a sum over irreducible q points of heat capacity times the outer product of group velocities times lifetime, weighted by the number of branches in the star of q (Togo 2023). The direct solution of the linearized Boltzmann equation follows Chaput's method. For the 33 compounds it gives values close to the RTA. The exceptions at 300 K with isotope scattering include BAs, 1.23e3 by RTA versus 2.94e3 W/m/K, and GaN, 1.54e2 versus 1.81e2 (Togo 2015). Isotope scattering enters as a separate rate from the mass variance of each element (Togo 2015).
Validation
Table IV of the 2015 paper compares LBTE values with isotopes to room temperature experiments: BN 7.26e2 against 7.6e2, BP 4.20e2 against 3.5e2, GaP 1.04e2 against 1.00e2, InP 85.2 against 93, GaAs 32.1 against 45 W/m/K. Zincblende and wurtzite polytypes of the same composition give similar conductivities, densities of states and linewidth distributions (Togo 2015). The random displacement scheme in the 2023 paper is valid only when every commensurate mode is dynamically stable, and for strongly anharmonic phases the authors recommend renormalized frequencies from self-consistent phonon calculations (Togo 2023).
What it computes on the map
31 quantities, drawn by tier with the data flow between them. Dashed boxes are intermediate quantities. Select one for its formula and the other codes that compute it.
Embed this submap
<iframe src="https://openmaterials.ai/m/c56731602651/fffc0ffef6?embed=1" title="phono3py on the OpenMaterials map" width="100%" height="480" loading="lazy" style="border:1px solid #EBEBEB;border-radius:6px"></iframe>
Each quantity with the interface the representation records.
- BareDynamicalMatrixDynamicalMatrix.get_dynamical_matrix() with NAC disabled
- BornChargesPhono3py.nac_params['born']dimensionless
- CumulativeKappa[wrt=mfp]phono3py-kaccum --mfp kappa-mXXXXXX.hdf5W_per_m_per_K
- CumulativeKappa[wrt=omega]phono3py-kaccum kappa-mXXXXXX.hdf5W_per_m_per_K
- DielectricTensorPhono3py.nac_params['dielectric']dimensionless
- DynamicalMatrixPhono3py.dynamical_matrix
- Eigenvectorsthermal_conductivity.get_eigenvectors()
- ForceConstants[order=2]Phono3py.fc2
- ForceConstants[order=3]Phono3py.fc3eV_per_A3
- Frequencythermal_conductivity.frequencieslinear_THz
- GroupVelocitythermal_conductivity.group_velocitiesangstrom_linear_THz
- GruneisenPhono3py.run_phonon_gruneisen_parameters()
- HeatCapacitythermal_conductivity.mode_heat_capacitieseV_per_K
- IsotopeAbundancesPhono3pyIsotope(mass_variances=...)dimensionless
- Linewidth[channel=anharmonic_3ph]thermal_conductivity.gammalinear_THz
- Linewidth[channel=boundary]thermal_conductivity._gamma_boundary (via compute_bulk_boundary_scattering)linear_THz
- Linewidth[channel=isotope]thermal_conductivity.gamma_isotopelinear_THz
- Linewidth[channel=total]phono3py.conductivity.grid_point_data.compute_effective_gammalinear_THz
- MeanFreeDisplacement[bte_solver=direct_inverse]thermal_conductivity.f_vectors
- MeanFreeDisplacement[bte_solver=rta]thermal_conductivity.mean_free_paths
- MolarHeatCapacityN_A * np.sum(thermal_conductivity.mode_heat_capacities) / n_q
- PhaseSpace3PhononPhono3py.run_phonon_phase_space()
- PhononDOSPhonopy.get_total_DOS()
- PotentialPhono3py(...) + ASE calculator or DFT force sets
- TemperaturePhono3py.temperatures
- ThermalConductivity[bte_solver=direct_inverse]run_thermal_conductivity(is_LBTE=True).kappaW_per_m_per_K
- ThermalConductivity[bte_solver=rta]run_thermal_conductivity(is_LBTE=False).kappaW_per_m_per_K
- ThermalConductivity[transport_model=wigner]thermal_conductivity.kappa_TOT_RTAW_per_m_per_K
- ThermalConductivity[transport_model=wigner_coherences]thermal_conductivity.kappa_CW_per_m_per_K
- ThermalConductivity[transport_model=wigner_populations]thermal_conductivity.kappa_P_RTAW_per_m_per_K
- VolumetricHeatCapacitynp.sum(thermal_conductivity.mode_heat_capacities) / (V_cell * n_q)
Releases on record
Versions on record for this code, with the license read from the release itself.
| Version | Released | License |
|---|---|---|
| 4.4.0 | 2026-07-18 | BSD-3-Clause |
References
The code
The papers that describe the code; cite them when you use it.
- A. Togo, L. Chaput, I. Tanaka, Distributions of phonon lifetimes in Brillouin zones, Physical Review B, 2015. doi.org/10.1103/PhysRevB.91.094306
- A. Togo, L. Chaput, T. Tadano et al., Implementation strategies in phonopy and phono3py, Journal of Physics: Condensed Matter, 2023. doi.org/10.1088/1361-648X/acd831
Methods and inputs it builds on
The methods the code implements and the inputs it relies on, as published.
- L. Chaput, Direct Solution to the Linearized Phonon Boltzmann Equation, Physical Review Letters, 2013. doi.org/10.1103/PhysRevLett.110.265506
Applications
Highly cited studies that cite the code, with a few picked by hand.
- S. D. Guo, Phonon transport in Janus monolayer MoSSe: a first-principles study, Physical Chemistry Chemical Physics, 2018. doi.org/10.1039/c8cp00350e
- M. Simoncelli, N. Marzari, F. Mauri, Wigner Formulation of Thermal Transport in Solids, Physical Review X, 2022. doi.org/10.1103/PhysRevX.12.041011
How to cite
A. Togo, L. Chaput, I. Tanaka, Distributions of phonon lifetimes in Brillouin zones, Phys. Rev. B 91, 094306 (2015)