openmaterials.ai / codes / ShengBTE
A Fortran and MPI solver that takes second- and third-order force constants and iterates the linearized phonon BTE to convergence with adaptive broadening and no free parameters.
Starting from the relaxation time approximation, each iteration feeds the deviation of every mode back into the scattering sum until the conductivity converges. Si needs 5 steps and gains about 4% over RTA (Li 2014).
Energy deltas become Gaussians whose width is set per process from group velocities and grid spacing, scaled by scalebroad. The default 1.0 needs no tuning (Li 2014).
CONTROL (namelists &allocations, &crystal, ¶meters, &flags), FORCE_CONSTANTS_2ND from Phonopy or espresso.ifc2, and FORCE_CONSTANTS_3RD from thirdorder.py (Li 2014).
A Python script that builds the minimal set of displaced supercells for the anharmonic constants from point group and permutation symmetry, within a cutoff (Li 2014).
Isotope scattering from natural abundances, non-analytical correction from Born charges and dielectric tensor, and nanowires with diffusive boundaries (Li 2014).
BTE.omega, BTE.v, BTE.cv, BTE.w_anharmonic, BTE.w_isotopic, BTE.P3, BTE.kappa_tensor and BTE.cumulative_kappa_* against mean free path (Li 2014).
Inelastic neutron scattering plus ShengBTE on 3x5x5 supercells of 600 atoms show kappa converges only when third-order constants past 6 A include the anharmonic Sn-Se-Se triplets (Li 2015). Li 2015
ShengBTE, on force constants from moment tensor potentials, gives iterative lattice conductivities of 440 W/m/K for MoSi2N4 and 500 W/m/K for WSi2N4 monolayers (Mortazavi 2021). Mortazavi 2021
Phonopy gives FORCE_CONSTANTS_2ND (or Quantum ESPRESSO espresso.ifc2), with Born charges.
thirdorder.py turns DFT forces on displaced supercells into FORCE_CONSTANTS_3RD.
Set natoms, ngrid, lattvec, positions, scell, T and flags such as isotopes or nanowires.
Launch under MPI in the directory with the three files. No command-line arguments.
BTE.KappaTensorVsT_CONV, scattering rates, BTE.cumulative_kappa_tensor.