Perturbo: A software package for ab initio electron–phonon interactions, charge transport and ultrafast dynamics☆,☆☆
Introduction
Understanding the dynamical processes involving electrons, lattice vibrations (phonons), atomic defects, and photons in the solid state is key to developing the next generation of materials and devices [1], [2]. Due to the increasing complexity of functional materials, there is a critical need for computational tools that can take into account the atomic and electronic structure of materials and make quantitative predictions of their physical properties. The vision behind Perturbo is to provide a unified platform and a validated code that can be applied broadly to compute the interactions, transport and ultrafast dynamics of electrons and excited states in materials [3]. The goal is to facilitate basic scientific discoveries in materials and devices by advancing microscopic understanding of carrier dynamics, while creating a sustainable software element able to address the demands of the computational physics community.
Perturbo builds on established first-principles methods. It uses density functional theory (DFT) and density functional perturbation theory (DFPT) [4] as a starting point for computing electron dynamics. It reads the output of DFT and DFPT calculations, for now from the Quantum Espresso (QE) code [5], [6],and uses this data to compute electron interactions, charge transport and ultrafast dynamics. The current distribution focuses on electron–phonon (–ph) interactions and the related phonon-limited transport properties [7], including the electrical conductivity, mobility and the Seebeck coefficient. It can also simulate the ultrafast nonequilibrium electron dynamics in the presence of –ph interactions. The developer branch, which is not publicly available yet, also includes routines for computing spin [8], electron-defect [9], [10], and electron–photon interactions [11], as well as advanced methods to compute the ultrafast dynamics of electrons and phonons in the presence of electric and magnetic fields. These additional features will be made available in future releases.
The transport module of Perturbo enables accurate calculations of charge transport in a wide range of functional materials. In its most basic workflow, Perturbo computes the conductivity and mobility as a function of temperature and carrier concentration, either within the relaxation time approximation (RTA) or with an iterative solution of the linearized Boltzmann transport equation (BTE) [12], [13]. The ultrafast dynamics module explicitly evolves in time the electron BTE (while keeping the phonon occupations fixed), enabling investigations of the ultrafast electron dynamics starting from a given initial electron distribution [14]. Our routines can carry out these calculations in metals, semiconductors, insulators, and 2D materials. An efficient implementation of long-range –ph interactions is employed for polar bulk and 2D materials. Materials with spin–orbit coupling (SOC) are treated using fully relativistic pseudopotentials [8], [13]. Both norm-conserving and ultrasoft pseudopotentials are supported. Quantities related to –ph interactions can be easily obtained, stored and analyzed.
Perturbo is implemented in modern Fortran with a modular code design. All calculations employ intuitive workflows. The code is highly efficient thanks to its hybrid MPI (Message Passing Interface) and OpenMP (Open Multi-Processing) parallelization. It can run on record-large unit cells with up to at least 50 atoms [15], and its performance scales up to thousands of CPU cores. It conveniently writes files using the HDF5 format, and is suitable for both high-performance supercomputers and smaller computer clusters.
Target users include both experts in first-principles calculations and materials theory as well as experimental researchers and teams in academic or national laboratories investigating charge transport, ultrafast spectroscopy, advanced functional materials, and semiconductor or solid-state devices. Perturbo will equip these users with an efficient quantitative tool to investigate electron interactions and dynamics in broad families of materials, filling a major void in the current software ecosystem.
The paper is organized as follows: Section 2 discusses the theory and numerical methods implemented in the code; Section 3 describes the code capabilities and workflows; Section 4 delves deeper into selected technical aspects; Section 5 shows several example calculations provided as tutorials in the code; Section 6 discusses the parallelization strategy and the scaling of the code on high performance supercomputers. We conclude in Section 7 by summarizing the main features and planned future development of Perturbo.
Section snippets
Boltzmann transport equation
The current release of Perturbo can compute charge transport and ultrafast dynamics in the framework of the semiclassical BTE. The BTE describes the flow of the electron occupations in the phase-space variables of relevance in a periodic system, the crystal momentum and spatial coordinate : where is the band index and are band velocities. The time evolution of the electron occupations is governed by the so-called drift term due
Code organization and capabilities
Perturbo contains two executables: a core program perturbo.x and the program qe2pert.x, which interfaces the QE code and perturbo.x, as shown in Fig. 1. The current release supports DFT and DFPT calculations with norm-conserving or ultrasoft pseudopotentials, with or without SOC; it also supports the Coulomb truncation for 2D materials [41]. The current features include calculations of:
- 1.
Band structure, phonon dispersion, and –ph matrix elements on arbitrary BZ grids or paths.
- 2.
The –ph scattering
–ph matrix elements on coarse grids
As discussed in Section 2.2.3, we compute directly the –ph matrix elements in Eq. (26) using the DFT states on a coarse -point grid and the perturbation potentials on a coarse -point grid. It is convenient to rewrite Eq. (26) in terms of lattice-periodic quantities, where is the lattice periodic part of the Bloch wavefunction and is the lattice-periodic perturbation potential. Since we compute only on the coarse grid of
Examples
In this section, we demonstrate the capabilities of the Perturbo code with a few representative examples, including calculations on a polar bulk material (GaAs), a 2D material with SOC (monolayer MoS2), and an organic crystal (naphthalene) with a relatively large unit cell with 36 atoms.
The ground state and band structure are computed using DFT with a plane-wave basis with the QE code; this is a preliminary step for all Perturbo calculations, as discussed above. For GaAs, we use the same
Parallelization and performance
Transport calculations and ultrafast dynamics simulations on large systems can be computationally demanding and require a large amount of memory. Efficient parallelization is critical to run these calculations on high-performance computing (HPC) systems. To fully take advantage of the typical HPC architecture, we implement a hybrid MPI and OpenMP parallelization, which combines distributed memory parallelization among different nodes using MPI and on-node shared memory parallelization using
Conclusions and outlook
In conclusion, we present our software, Perturbo, for first-principles calculations of charge transport properties and simulation of ultrafast carrier dynamics in bulk and 2D materials. The software contains an interface program to read results from DFT and DFPT calculations from the QE code. The core program of Perturbo performs various computational tasks, such as computing –ph scattering rates, electron mean free paths, electrical conductivity, mobility, and the Seebeck coefficient. The
Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Acknowledgments
We thank V.A. Jhalani and B.K. Chang for fruitful discussions. This work was supported by the National Science Foundation, United States under Grants No. ACI-1642443 for code development and DMR-1750613 for theory development. J.-J.Z. acknowledges support by the Joint Center for Artificial Photosynthesis, a DOE Energy Innovation Hub, supported through the Office of Science of the U.S. Department of Energy, United States under Award No. DE-SC0004993. J.P. acknowledges support by the Korea
References (61)
- et al.
Comput. Phys. Comm.
(2006) - et al.
Comput. Phys. Comm.
(2014) - et al.
Comput. Phys. Comm.
(2014) - et al.
Comput. Phys. Comm.
(2016) - et al.
Comput. Phys. Comm.
(2018) - et al.
J. Comput. Phys.
(2017) - et al.
Solid-State Electron.
(1980) - et al.
Rev. Modern Phys.
(2002) - et al.
Rev. Modern Phys.
(2011) - et al.
Adv. Mater.
(2018)
Rev. Modern Phys.
J. Phys.: Condens. Matter
J. Phys.: Condens. Matter
Electrons and Phonons: The Theory of Transport Phenomena in Solids
Phys. Rev. B
Phys. Rev. Mater.
npj Comput. Mater.
Phys. Rev. B
Phys. Rev. B
Phys. Rev. Lett.
Nano Lett.
Phys. Rev. B
Eur. Phys. J. B
Phys. Rev. Lett.
Many-Particle Physics
Phys. Rev. B
Phys. Rev. B
Phys. Rev. B
Rev. Modern Phys.
J. Phys.: Condens. Matter
Cited by (160)
Degradation of the ZT thermoelectric figure of merit in silicon when nanostructuring: From bulk to nanowires
2024, International Journal of Heat and Mass TransferElectron-phonon coupling from GW perturbation theory: Practical workflow combining BerkeleyGW, ABINIT, and EPW
2024, Computer Physics CommunicationsEPIq: An open-source software for the calculation of electron-phonon interaction related properties
2024, Computer Physics CommunicationsPhonon scattering channel and electrical transport of graphene induced by the anharmonic phonon renormalization
2024, Physica E: Low-Dimensional Systems and Nanostructures
- ☆
The review of this paper was arranged by Prof. D.P. Landau.
- ☆☆
This paper and its associated computer program are available via the Computer Physics Communication homepage on ScienceDirect (http://www.sciencedirect.com/science/journal/00104655)