Thermal conductivity
Short description
Calculates the lattice thermal conductivity in the mode-coupling formalism, including collective and off-diagonal contributions up to fourth-order interactions.
Command line options:
Optional switches:
-
--readiso
default value .false.
Read the isotope distribution frominfile.isotopes
. The format is specified here. -
--qpoint_grid value#1 value#2 value#3
,-qg value#1 value#2 value#3
default value 26 26 26
Density of q-point mesh for Brillouin zone integrations. -
--qpoint_grid3ph value#1 value#2 value#3
,-qg3ph value#1 value#2 value#3
default value -1 -1 -1 Dimension of the grid for the threephonon integration. -
--qpoint_grid4ph value#1 value#2 value#3
,-qg4ph value#1 value#2 value#3
default value -1 -1 -1 Dimension of the grid for the fourphonon integration. -
--integrationtype value
,-it value
, value in:1,2
default value 2
Type of integration for the phonon DOS. 1 is Gaussian, 2 adaptive Gaussian. -
--sigma value
default value 1.0
Global scaling factor for Gaussian/adaptive Gaussian smearing. The default is determined procedurally, and scaled by this number. -
--readqmesh
default value .false.
Read the q-point mesh from file. To generate a q-mesh file, see the genkpoints utility. -
--fourthorder
default value .false. Consider four-phonon contributions to the scattering. -
--classical
default value .false. Use the classical limit for phonon occupation and heat capacity. -
--temperature value
default value 300 Evaluate thermal conductivity at a single temperature. -
--max_mfp value
default value -1
Add a limit on the mean free path as an approximation of domain size (in m). -
--noisotope
default value .false.
Do not consider isotope scattering. -
--iterative_tolerance
default value 1e-5 Tolerance for the iterative solution. -
--iterative_maxsteps
default value 200 Max number of iterations for the iterative solution. -
--seed
default value -1 Positive integer to seed the random number generator for the Monte-Carlo grids. -
--mfppts
default value 1000 Number of mean free paths points for the cumulative thermal conductivity -
--freqpts
default value 1000 Number of frequency points for the spectral thermal conductivity -
--dosintegrationtype
default value 3 Type of integration for the phonon spectral thermal conductivity. 1 is Gaussian, 2 adaptive Gaussian, 3 is tetrahedron -
--dossigma
default value 1.0 Scaling factor for the spectral thermal conductivity wth Gaussian integration. The default is determined procedurally, and scaled by this number. -
--help
,-h
Print this help message -
--version
,-v
Print version
Examples
mpirun thermal_conductivity --temperature 300
mpirun thermal_conductivity -qg 30 30 30 --temperature 300 -qg3ph 15 15 15
mpirun thermal_conductivity -qg 30 30 30 --fourthorder -qg4ph 4 4 4
Longer summary
The thermal conductivity tensor can be computed from the Green-Kubo formula
where \(J_{\alpha}\) is the heat current operator. In a crystal, the heat current operator can be approximated as
which can be projected on phonons to give
In this equation, \(A_\lambda\) and \(B_\lambda\) are respectively the displacements and momentum phonon operators and \(v_{\lambda\lambda'}^{\alpha}\) is the generalized off-diagonal phonon group-velocity 13, written
and whose diagonal contributions are equal to the usual phonon group velocities \(\mathbf{v}_{\lambda\lambda} = \mathbf{v}_{\lambda}\). Now, the heat current can be separated in a diagonal and a non diagonal contribution as
Here, we will only provide a sketch of the derivation. For more informations, we refer reader to the article describing the implementation 1 and the references at the bottom of the page.
Scattering rates
Before handling the thermal conductivity tensor, we will discuss the scattering rates of the phonons. Due to interaction with other phonons or quasiparticles, isotopic disorder, boundaries, ..., the phonons scatters. This scattering is encoded in the self-energy (or memory kernel).
Here, we will make the approximation that these interactions are weak enough so that we can work in the Markovian approximation (or equivalently apply Fermi's golden rule). In this case, the self-energy can be simplified to a single number \(\Gamma_\lambda\), which allows to define the phonon lifetime
Within this approximation, the phonon spectral function \(\chi''(\Omega)\) reduces to a Lorentzian centered on \(\omega_\lambda\) with a width of \(\Gamma_\lambda\).
The contribution to \(\Gamma_\lambda\) given by third order interaction is written
with \(n_\lambda = (e^{\hbar\omega_\lambda / k_{\mathrm{B}}T} - 1)^{-1}\) the Bose-Einstein distribution of phonon \(\lambda\). In this equation, the sum is over momentum conserving processes, \(\mathbf{q} + \mathbf{q}' + \mathbf{q}'' = \mathbf{G}\) and the three-phonon matrix elements are given by
At the fourth-order, the contribution is
where the sum is also over momentum conserving processes, \(\mathbf{q} + \mathbf{q}' + \mathbf{q}'' + \mathbf{q}''' = \mathbf{G}\) and the four-phonon matrix elements are given by
The contribution to the scattering rate by isotopic disorder can be computed to Tamura's model4, written
where the mass variance parameter \(g\) is written
In this equation, \(\bar{m_i}\) is the average isotopic mass( \(\bar{m_i}=\sum_j c_i^j m_i^j\) ), \(m^j_i\) is the mass of isotope \(j\) of atom \(i\) and \(c^j_i\) is its concentration.
Finally, scattering by domain boundaries is implemented as
where \(L\) is a characteristic domain size.
The diagonal contribution
The diagonal contribution to the heat current is written
Injecting it into the Green-Kubo formula, we obtain that the thermal conductivity tensor is proportional to a four-point correlation
Solving the integral of this four-point correlation is a cumbersome task, and we refer the reader to references 10,1 for the detailed derivation. In a nutshell, an equation of motion is formulated for the four-point correlation. This equation of motion is then solved using a Laplace transform and injected in the thermal conductivity tensor to give
with \(c_\lambda = n_\lambda (n_\lambda + 1) \omega_\lambda^2 / k_{\mathrm{B}}T^2\) and where the vector \(F_{\lambda}^{\beta}\), defined as
is simply introduced to ease the computation of the thermal conductivity tensor.
In the previous equation, \(\Xi\) is called the scattering matrix. The diagonal component of this matrix is equal to the scattering rates \(\Gamma_\lambda\) of phonons while the off-diagonal part describes the coupling between modes, which introduce collective phonon contributions to heat transport.
Using the Neumann series for matrix inversion, \(F_{\lambda}^{\alpha}\) can be computed self-consistently 6,5 as
where the starting point is given by
If the off-diagonal part of the scattering matrix are neglected, one obtain the single mode approximation, written
This approximation consists in neglecting the collective phonon contribution to the thermal conductivity tensor and can also be obtain by decoupling the four-point correlation in product of two-point correlation functions12,1.
It is important to note that while starting from differents considerations, this formulation and the Boltzmann equation 2,3,7,8 are strictly equivalent 10.
The off-diagonal contribution
The off diagonal heat tensor is written
where \(\sum'\) indicates that \(\lambda = \lambda'\) is excluded from the sum. Injecting this contribution into the Green-Kubo formula also ends up in something proportional to a four-point correlation function
For this contribution, we will directly neglect the collective part (this is called the dressed-bubble approximation12,10) and decouple the four-point correlation in product of two-point correlations
Performing some Fourier transform, we can now express the integral in term of spectral function \(\chi_{\lambda}''(\Omega)\)
Recalling that we are working in the Markovian approximation, we can approximate these spectral functions as Lorentzian, and we can make the approximation that these will act as Dirac deltas centered on the harmonic frequencies. This allows to perform the integral analytically, and we finally obtain the off diagonal contribution to the thermal conductivity tensor as
with
This off-diagonal contribution, describing wavelike-interference between phonons of similar frequencies, becomes important for system with complex unitcell. While the derivation sketched here is based on the Hardy current9, it can also be obtain from a Wigner description of heat transport 11, with very similar results12.
Monte-Carlo integration for the scattering rates
To reach the thermodynamic limit, the thermal conductivity has to be computed on a large grid of q-points, which can make the computation quite expensive. This cost comes almost entirely from the computation of the scattering.
However, one can observe that the computation of \(\kappa\) actually requires two kind of integrations. The first is the sum of the contribution of each q-point to the thermal conductivity, while the second one correspond to the computation of the scattering.
Fortunately for us, these two integrations converges at different rates. In particular, the expensive scattering integration converges more quickly than the thermal conductivity integration.
Thus, to improve the computational cost, the code offers the possibility to disassociate these two integrations by using a Monte-Carlo integration of the scattering. For this, we generate a full grid, on which the thermal conductivity will be integrated. A subset of this full grid can then be selected to perform the scattering integration. In order to improve the convergence, these point are not selected entirely at random but using a stratified approached in order to sample more uniformly the Brillouin zone.
This is schematically represented in the following picture, where each dot represents a point on a \(8\times8\) grid, with the red dot corresponding to point selected for a Monte-Carlo integration equivalent to a \(4\times4\) grid and the bar representing the way the grid is stratified.

The code allows to use different Monte-Carlo grids for third and fourth order, using the variables --qpoint_grid3ph
and --qpoint_grid4ph
.
It is important to note that this method of integration is not deterministic, so that several runs will give different results However, the noise reduces as the density of the Monte-Carlo grids increases, to finally vanish if the Monte-Carlo and full grid density are the same (which is the default). Similarly to the full grid on which the thermal conductivity is computed, the Monte-Carlo grid densities are parameters to be carefully converged.
Converging the grids is an important step to ensure accurate results. Since the convergence of the Monte-Carlo grids are not related to the convergence of the full grid, their determination can be done independently. To reduce the computational cost of the convergence, an approach is to fix the full grid to a moderately large density, and first converge the third order grid and then the fourth-order one. Once the Monte-Carlo grid densities are known, then the full grid density can be determined.
Input files
These files are necesarry:
and these are optional:
- infile.isotopes (for non-natural isotope distribution)
- infile.forceconstant_fourthorder
Output files
outfile.thermal_conductivity
This file contains the thermal conductivity tensor, with the decomposition from all contributions, in a format that can be parsed with tools such as numpy. It looks like this
# Unit: W/m/K
# Temperature: 0.300000000000E+03
# Single mode approximation
# kxx kyy kzz kxy kxz kyz
0.708649123335E+02 0.708649123335E+02 0.708649123335E+02 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00
# Collective contribution
# kxx kyy kzz kxy kxz kyz
0.475409189194E+01 0.475409189194E+01 0.475409189194E+01 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00
# Off diagonal (coherence) contribution
# kxx kyy kzz kxy kxz kyz
0.854567548533E-03 0.854567548533E-03 0.854567548533E-03 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00
# Total thermal conductivity
# kxx kyy kzz kxy kxz kyz
0.756198587929E+02 0.756198587929E+02 0.756198587929E+02 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00
outfile.thermal_conductivity_grid.hdf5
This file contains nearly all quantities on the full q-grid. Below is a matlab snippet that plots a subset:
% file to read from
fn='outfile.grid_thermal_conductivity.hdf5';
% convert units to THz from Hz?
toTHz=1/1E12/2/pi;
figure(1); clf; hold on;
subplot(1,3,1); hold on; box on;
x=h5read(fn,'/frequencies');
y=h5read(fn,'/linewidths');
for i=1:size(x,1)
plot(x(i,:)*toTHz,y(i,:)*toTHz,'marker','.','linestyle','none','markersize',8)
end
set(gca,'xminortick','on','yminortick','on')
xlabel('Frequency (THz)')
ylabel('Linewidth (THz)')
subplot(1,3,2); hold on; box on;
x=h5read(fn,'/frequencies');
y=h5read(fn,'/lifetimes');
for i=1:size(x,1)
plot(x(i,:)*toTHz,y(i,:),'marker','.','linestyle','none','markersize',8)
end
set(gca,'yscale','log','xminortick','on')
xlabel('Frequency (THz)')
ylabel('Lifetime (s)')
subplot(1,3,3); hold on; box on;
x=h5read(fn,'/frequencies');
y=h5read(fn,'/mean_free_paths');
for i=1:size(x,1)
plot(x(i,:)*toTHz,y(i,:),'marker','.','linestyle','none','markersize',8)
end
set(gca,'yscale','log','xminortick','on')
xlabel('Frequency (THz)')
ylabel('Mean free paths (m)')
outfile.cumulative_thermal_conductivity.hdf5
This file contains the cumulative thermal conductivity with respect to the mean free paths, as well as the frequency resolved thermal conductivity tensor and an estimation of the thermal conductivity limited by boundary scattering for a range of boundary lengths. For this last quantity, the limitation due to boundary scattering is estimated using Matthiessen's rule and might be inappropriate for cases when collective contributions are important. Note that all quantities in this file do not include the off-diagonal coherence contribution.
-
Castellano, A & Batista, J. P. & Verstraete, M. J. (2025). Mode-coupling theory of heat transport in anharmonic materials. Physical Review B, 111, 094306 ↩↩↩
-
Peierls, R. E. (1929). Annalen der Physik, 3, 1055 ↩
-
Peierls, R. E. (1955). Quantum Theory of Solids. Clarendon Press. ↩
-
Tamura, S. (1983). Isotope scattering of dispersive phonons in Ge. Physical Review B, 27(2), 858–866. ↩
-
Omini, M., & Sparavigna, A. (1996). Beyond the isotropic-model approximation in the theory of thermal conductivity. Physical Review B, 53(14), 9064–9073. ↩
-
Omini, M., & Sparavigna, A. (1997). Heat transport in dielectric solids with diamond structure. Nuovo Cimento Della Societa Italiana Di Fisica D, 19D, 1537–63. ↩
-
Broido, D. A., Malorny, M., Birner, G., Mingo, N., & Stewart, D. A. (2007). Intrinsic lattice thermal conductivity of semiconductors from first principles. Applied Physics Letters, 91(23), 231922. ↩
-
Broido, D. A., Ward, A., & Mingo, N. (2005). Lattice thermal conductivity of silicon from empirical interatomic potentials. Physical Review B, 72(1), 1–8. ↩
-
Isaeva, L & Barbalinardo, G. & Donadio, D. & Baroni, S. (2019). Modeling heat transport in crystals and glasses from a unified lattice-dynamical approach. Nature Communications 10 3853 ↩
-
Fiorentino, A. & Baroni, S (2023). From Green-Kubo to the full Boltzmann kinetic approach to heat transport in crystals and glasses. Physical Review B, 107, 054311 ↩↩↩
-
Simoncelli, M. & Marzari, N. & Mauri, F. (2019). Unified theory of thermal transport in crystals and glasses. Nature physics 15 803-819 ↩
-
Caldarelli, G. & Simoncelli, M. & Marzari, N. & Mauri, F. & Benfatto, L. (2022). Many-body Green's function approach to lattice thermal transport. Physical Review B 106 024312 ↩↩↩
-
Dangić, Đ. & Hellman, O. & Fahy, S. and Savić, I. (2021) The origin of the lattice thermal conductivity enhancement at the ferroelectric phase transition in GeTe. Nature Computational Materials 7, 57 ↩