Source-linked AI summary
BoltzTraP2, a program for interpolating band structures and calculating semi-classical transport coefficients
Georg K. H. Madsen, Jesús Carrete, Matthieu J. Verstraete
TL;DR
BoltzTraP2 addresses limitations of energy-only interpolation and inconvenient treatment of state-dependent relaxation times in transport calculations. It combines band energies with momentum matrix elements in a smoothed Fourier interpolation framework and provides modular Python-based transport tools. The package reproduces transport behavior for parabolic bands, silicon, and lithium, including a positive lithium Seebeck coefficient beyond the constant relaxation time approximation.
Problem
Energy-only interpolation can produce false derivatives near silicon zone-boundary crossings, while treating state-dependent relaxation times is inconvenient in the original BoltzTraP.
Method
BoltzTraP2 extends smoothed Fourier interpolation to use quasi-particle energies, derivatives from momentum matrix elements, and band-, momentum-, and temperature-dependent scattering information.
Results
BoltzTraP2 evaluates Onsager transport coefficients for parabolic bands, silicon, and lithium, reproducing lithium’s positive Seebeck coefficient beyond the constant relaxation time approximation.
Takeaways & Limitations
The package provides command-line and Python-module access to interpolation and transport calculations, with interpolation usable for general periodic functions.
Takeaways & Limitations
Silicon’s non-symmorphic zone-boundary crossings can require a very fine k-mesh because purely Fourier-based interpolation may give false derivatives.
Abstract
from arXiv · showhide
BoltzTraP2 is a software package for calculating a smoothed Fourier expression of periodic functions and the Onsager transport coefficients for extended systems using the linearized Boltzmann transport equation. It uses only the band and $k$-dependent quasi-particle energies, as well as the intra-band optical matrix elements and scattering rates, as input. The code can be used via a command-line interface and/or as a Python module. It is tested and illustrated on a simple parabolic band example as well as silicon. The positive Seebeck coefficient of lithium is reproduced in an example of going beyond the constant relaxation time approximation.
PROGRAM SUMMARY
BoltzTraP2 is a Python and C++11 program for calculating transport coefficients with the linearized Boltzmann transport equation within the relaxation time approximation.
- BoltzTraP2 calculates transport coefficients using the linearized Boltzmann transport equation within the relaxation time approximation.The program is written in Python and C++11 and typically uses one to four processors.
1. Introduction
BoltzTraP2 extends BoltzTraP interpolation with momentum matrix elements, supports state-dependent relaxation times, and provides a modular Python 3 implementation for periodic-function interpolation and transport calculations.
- BoltzTraP2 addresses cases where fine-mesh Kohn-Sham eigenvalues are less advantageous, including beyond-KS approaches requiring alternative interpolation inputs.The motivation includes hybrid-functionals and GW calculations, where calculating momentum matrix elements or using alternative interpolation methods can be advantageous.
- The method combines eigenvalues and momentum matrix elements so interpolated manifolds reproduce both values and derivatives at calculated points.This extends the original BoltzTraP interpolation advantages with derivative information from intra-band momentum matrix elements.
- BoltzTraP2 makes it more straightforward to avoid the constant relaxation time approximation and handle temperature-dependent transport distributions from electron-phonon coupling.The original code could handle some variable relaxation times, but its structure made this inconvenient and functionally limited.
- The rewritten code uses Python 3 and provides both a command-line interface and a Python-module interface for further developments.Its underlying interpolation algorithm is intended to apply generally to periodic functions, not only transport coefficients.
2. Background
BoltzTraP2 represents periodic band energies and derivatives with smoothed Fourier sums, then uses the linearized Boltzmann transport equation to obtain transport coefficients from interpolated band information.
- 2.1. Band interpolation: The interpolation method expresses quasi-particle energies and their derivatives for each band as Fourier sums over symmetry-equivalent lattice-vector stars.The coefficients are obtained by minimizing a roughness function while exactly reproducing calculated quasi-particle energies.
- 2.1. Band interpolation: BoltzTraP2 extends the Shankland algorithm so Fourier coefficients exactly reproduce both quasi-particle energies and their derivatives.Derivative constraints are enforced through additional Lagrange multipliers for the three Cartesian directions.
- 2.2. Boltzmann transport equation: The rigid-band approximation assumes that changing temperature or doping does not change the band structure, allowing carrier concentration to be obtained from the density of states.Charge neutrality determines the chemical potential, with shifts into conduction or valence bands representing n-type or p-type materials.
- 2.2. Boltzmann transport equation: The linearized Boltzmann transport equation under the relaxation time approximation uses a transport distribution function to calculate moments that give charge and heat currents.These moments yield electrical conductivity, the Peltier coefficient, the Seebeck coefficient, and the electronic thermal conductivity.
- 2.2. Boltzmann transport equation: The procedure obtains group velocities directly from k-space derivatives of quasi-particle energies, supporting efficient transport-coefficient evaluation.Under the constant relaxation time approximation, Seebeck and Hall coefficients are independent of the scattering rate, whereas this independence can fail in specific cases.
- 2.2. Boltzmann transport equation: The constant relaxation time approximation limits conductivity and electronic thermal conductivity to results dependent on τ and can fail qualitatively for Seebeck and Hall coefficients.BoltzTraP2 makes temperature-, momentum-, and band-dependent relaxation times more straightforward to use.
3. Implementation and interface
BoltzTraP2 combines Python-based numerical infrastructure with C++ and optimized libraries for efficient band interpolation and transport calculations. Its command-line interface supports a workflow from DFT results through interpolation, integration, visualization, and reusable outputs, while advanced users can access the Python module directly.
- General implementation aspects: BoltzTraP2 is implemented in Python 3, with NumPy and SciPy for array-based numerical data handling and Matplotlib for plotting.
- General implementation aspects: Vectorized NumPy operations, C++11 symmetry routines, optimized FFT libraries, and multiprocessing help the implementation achieve speeds comparable to the original BoltzTraP.
- Data formats: The program stores interpolation and transport results in human-readable JSON formats, while plain-text column outputs remain compatible with existing post-processing scripts.
- Command-line interface: The btp2 command-line workflow starts from dense-grid DFT results, interpolates bands to a denser grid, and then integrates thermoelectric coefficients over selected conditions.
- Command-line interface: Additional command-line modes visualize Fermi surfaces, band paths, and thermoelectric coefficients, while the Python API supports automated workflows and custom scattering-rate parameterizations.
4. Examples
The examples validate BoltzTraP2 against an analytic parabolic-band model, demonstrate improved silicon interpolation when momentum matrix elements are included, and apply state-dependent relaxation times to lithium transport.
- 4.1. Isotropic parabolic band model: The numerical parabolic-band calculation is indistinguishable from the analytic transport coefficients.A 25 × 25 × 25 k-mesh was interpolated onto a mesh containing five times as many points.
- 4.2. Inclusion of momentum matrix elements. Silicon.: Silicon’s conduction-band minimum along Γ−X is challenging because Fourier interpolation can produce false derivatives near zone-boundary crossings.The pocket dominates transport in n-doped silicon, and a very fine k-mesh may be needed for convergence.
- 4.2. Inclusion of momentum matrix elements. Silicon.: Including momentum matrix elements reproduces both the positions and derivatives of the silicon conduction-band pocket from a coarse 9 × 9 × 9 mesh.The eigenvalue-only fit is too coarse at the degenerate X point, whereas the modified Lagrangian enforces exact derivatives at calculated points.
- 4.2. Inclusion of momentum matrix elements. Silicon.: The modified interpolation reaches convergence for silicon’s Seebeck coefficient and power factor with about half as many k-points as the eigenvalue-only fit.The comparison uses the Seebeck coefficient and S^2σ/τ near the conduction-band minimum under the constant relaxation time approximation.
- 4.3. State dependent relaxation time in Lithium.: Interpolating band- and momentum-dependent electron-phonon relaxation times changes lithium’s transport-distribution slope and yields a positive Seebeck coefficient.The calculated value is S = +4 µV/K at 300 K, compared with −2 µV/K under CRTA and +13 µV/K in the Lowest Order Variational Approximation.
- 4.3. State dependent relaxation time in Lithium.: The interpolated lithium transport distribution agrees well with a conventional calculation using a denser 58 × 58 × 58 grid.The conventional calculation interpolates energies onto a grid containing four times as many k-points, supporting interpolation of the scattering rates.
5. Conclusion
BoltzTraP2 is a Python 3 software package for interpolating periodic functions and evaluating Onsager transport coefficients with the linearized Boltzmann transport equation.
- BoltzTraP2 uses band and k-dependent quasi-particle energies, intra-band optical matrix elements, and scattering rates as inputs.
- The package evaluates Onsager transport coefficients for periodic bands, silicon, and lithium.
- BoltzTraP2 is available through both a command-line interface and a Python module.