Perturbo: A software package for ab initio electron–phonon interactions, charge transport and ultrafast dynamics,☆☆

https://doi.org/10.1016/j.cpc.2021.107970Get rights and content

Abstract

Perturbo is a software package for first-principles calculations of charge transport and ultrafast carrier dynamics in materials. The current version focuses on electron–phonon interactions and can compute phonon-limited transport properties such as the conductivity, carrier mobility and Seebeck coefficient. It can also simulate the ultrafast nonequilibrium electron dynamics in the presence of electron–phonon scattering. Perturbo uses results from density functional theory and density functional perturbation theory calculations as input, and employs Wannier interpolation to reduce the computational cost. It supports norm-conserving and ultrasoft pseudopotentials, spin–orbit coupling, and polar electron–phonon interactions for bulk and 2D materials. Hybrid MPI plus OpenMP parallelization is implemented to enable efficient calculations on large systems (up to at least 50 atoms) using high-performance computing. Taken together, Perturbo provides efficient and broadly applicable ab initio tools to investigate electron–phonon interactions and carrier dynamics quantitatively in metals, semiconductors, insulators, and 2D materials.

Program summary

Program Title: Perturbo

CPC Library link to program files: https://doi.org/10.17632/34m2p6v79t.1

Developer’s repository link: https://perturbo-code.github.io

Licensing provisions: GNU General Public Licence 3.0

Programming language: Fortran, Python

External routines/libraries: LAPACK, HDF5, MPI, OpenMP, FFTW, Quantum-ESPRESSO, Wannier90

Nature of problem: Computing transport properties from first-principles in materials, including the electrical conductivity, carrier mobility and Seebeck coefficient; Simulating ultrafast nonequilibrium electron dynamics, such as the relaxation of excited carriers via interactions with phonons.

Solution method: We implement the first-principles Boltzmann transport equation, which employs materials properties such as the electronic structure, lattice dynamics, and electron–phonon collision terms computed with density functional theory and density functional perturbation theory. The Boltzmann transport equation is solved numerically to compute charge transport and simulate ultrafast carrier dynamics. Wannier interpolation is employed to reduce the computational cost.

Additional comments: Hybrid MPI plus OpenMP parallelization is implemented to run large calculations and take advantage of high-performance computing. Most results are output to HDF5 file format, which is portable and convenient for post-processing using high-level languages such as Python and Julia.

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 (e–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 e–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 e–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 e–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 fnk(r,t) in the phase-space variables of relevance in a periodic system, the crystal momentum k and spatial coordinate r: fnk(r,t)t=rfnk(r,t)vnk+ħ1kfnk(r,t)F+Ifnk,where n is the band index and vnk 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 e–ph matrix elements on arbitrary BZ grids or paths.

  • 2.

    The e–ph scattering

e–ph matrix elements on coarse grids

As discussed in Section 2.2.3, we compute directly the e–ph matrix elements in Eq. (26) using the DFT states on a coarse kc-point grid and the perturbation potentials on a coarse qc-point grid. It is convenient to rewrite Eq. (26) in terms of lattice-periodic quantities, g̃mnκαkc,qc=umkc+qc|qc,καv|unkc,where |unkc is the lattice periodic part of the Bloch wavefunction and qc,καv=eiqcrqc,καV is the lattice-periodic perturbation potential. Since we compute only |unkc 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 e–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)

  • MadsenG.K.H. et al.

    Comput. Phys. Comm.

    (2006)
  • PizziG. et al.

    Comput. Phys. Comm.

    (2014)
  • MostofiA.A. et al.

    Comput. Phys. Comm.

    (2014)
  • PoncéS. et al.

    Comput. Phys. Comm.

    (2016)
  • van SettenM.J. et al.

    Comput. Phys. Comm.

    (2018)
  • DamleA. et al.

    J. Comput. Phys.

    (2017)
  • NicholsK.H. et al.

    Solid-State Electron.

    (1980)
  • RossiF. et al.

    Rev. Modern Phys.

    (2002)
  • UlbrichtR. et al.

    Rev. Modern Phys.

    (2011)
  • EggerD.A. et al.

    Adv. Mater.

    (2018)
  • BaroniS. et al.

    Rev. Modern Phys.

    (2001)
  • GiannozziP. et al.

    J. Phys.: Condens. Matter

    (2009)
  • GiannozziP. et al.

    J. Phys.: Condens. Matter

    (2017)
  • ZimanJ.M.

    Electrons and Phonons: The Theory of Transport Phenomena in Solids

    (2007)
  • ParkJ. et al.

    Phys. Rev. B

    (2020)
  • LuI.-T. et al.

    Phys. Rev. Mater.

    (2019)
  • LuI.-T. et al.

    npj Comput. Mater.

    (2020)
  • ChenH.-Y. et al.

    Phys. Rev. B

    (2019)
  • ZhouJ.-J. et al.

    Phys. Rev. B

    (2016)
  • ZhouJ.-J. et al.

    Phys. Rev. Lett.

    (2018)
  • JhalaniV.A. et al.

    Nano Lett.

    (2017)
  • LeeN.-E. et al.

    Phys. Rev. B

    (2018)
  • BernardiM.

    Eur. Phys. J. B

    (2016)
  • BernardiM. et al.

    Phys. Rev. Lett.

    (2014)
  • MahanG.D.

    Many-Particle Physics

    (2000)
  • LiW.

    Phys. Rev. B

    (2015)
  • FiorentiniM. et al.

    Phys. Rev. B

    (2016)
  • BlöchlP.E. et al.

    Phys. Rev. B

    (1994)
  • MarzariN. et al.

    Rev. Modern Phys.

    (2012)
  • PizziG. et al.

    J. Phys.: Condens. Matter

    (2020)
  • Cited by (160)

    View all citing articles on Scopus

    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)

    View full text