Skip to main content

Utility to construct and operate on Hamiltonians from the Projections of DFT wfc on Atomic Orbital bases (PAO).

Project description

PAOFLOW

Documentation Wiki License PyPI


What is PAOFLOW?

PAOFLOW is an open-source Python framework for constructing and operating on ab initio tight-binding Hamiltonians built from the projection of DFT wavefunctions onto atomic orbital (PAO) bases. Starting from a converged DFT calculation (Quantum ESPRESSO or VASP), PAOFLOW delivers a compact, tight-binding-like Hamiltonian that serves as the engine for a broad range of materials-property calculations — without any empirical parameters.


Capabilities

Domain What PAOFLOW computes
Electronic structure Band structures, density of states (total & projected), Fermi surfaces
Optical & dielectric response Complex dielectric tensor ε(ω), optical conductivity, joint density of states; non-local velocity correction for norm-conserving pseudopotentials
Transport Electrical conductivity, Seebeck coefficient, electronic thermal conductivity (Boltzmann transport)
Topology Berry curvature, anomalous Hall conductivity, Z₂ invariants, topological surface states
Spin & magnetism Spin Hall conductivity, spin texture, non-collinear and fully-relativistic (SOC) Hamiltonians
Model Hamiltonians Slater–Koster tight-binding models, Kane–Mele, custom lattice models
ACBN0 Self-consistent Hubbard U and U+V via the extended ACBN0 functional
pyskeaf Fermi surface extremal orbit analysis (de Haas–van Alphen, Shubnikov–de Haas)
Landauer transport Quantum transport via Green's function/Landauer–Büttiker formalism
Interoperability Quantum ESPRESSO and VASP DFT code integration - other codes are in the development pipline (we welcome contributions from developers!)

Getting Started

pip install PAOFLOW

Full installation instructions (conda environment, MPI setup, optional dependencies) are in INSTALL.md.

A step-by-step tutorial and worked examples are available in:

Minimal workflow

from PAOFLOW import PAOFLOW

pf = PAOFLOW.PAOFLOW(savedir='Si.save')
pf.projectability()
pf.pao_hamiltonian()
pf.bands(fname='bands')
pf.gradient_and_momenta()
pf.adaptive_smearing(smearing='gauss')
pf.dos(do_dos=True, do_pdos=False)
pf.finish()

PAOFLOW ships two small, dependency-light command-line generators that automate the repetitive parts of setting up a study. They are installed with the package as console commands:

  1. paoflow-gen-qe — build a Quantum ESPRESSO scf input from an AFLOW database entry, with sensible defaults for smearing, magnetism, spin–orbit coupling, and the number of bands needed for PAOFLOW's extended-basis projections. Pseudopotentials from the Pseudo Dojo repository (https://www.pseudo-dojo.org/), are included in the distribution and should be used for the input generation.
  2. paoflow-gen — interactively generate a PAOFLOW driver script (main.py) from the output of a Quantum ESPRESSO run, and optionally a companion plotting script (plot.py) that visualizes exactly the properties you selected.

For Researchers

PAOFLOW has been used in high-throughput screening campaigns, topological materials discovery, optical/transport property databases, and quantum computing workflows, among others. It is an active platform for methodological development — recent additions include non-local velocity corrections for accurate optical spectra and Boltzmann transport beyond the constant relaxation-time approximation.

For Industry & HPC

PAOFLOW is MPI-parallel, NumPy/SciPy-based, and designed to plug into existing DFT workflows with minimal overhead. The PAO Hamiltonian is orders of magnitude cheaper to diagonalize than the full DFT problem, enabling dense k-point sampling and fine spectral resolution at low computational cost.


License & Citation

Copyright 2016–2026 — Marco Buongiorno Nardelli (mbn@unt.edu) and the PAOFLOW Development Team.

PAOFLOW is free software distributed under the GNU General Public License v3. See License for details.

If you use PAOFLOW in published work, please cite:

F.T. Cerasoli, A.R. Supka, A. Jayaraj, I. Siloi, M. Costa, J. Slawinska, S. Curtarolo, M. Fornari, D. Ceresoli, and M. Buongiorno Nardelli, Advanced modeling of materials with PAOFLOW 2.0: New features and software design, Comp. Mat. Sci. 200, 110828 (2021).

M. Buongiorno Nardelli, F.T. Cerasoli, M. Costa, S. Curtarolo, R. De Gennaro, M. Fornari, L. Liyanage, A. Supka and H. Wang, PAOFLOW: A utility to construct and operate on ab initio Hamiltonians from the Projections of electronic wavefunctions on Atomic Orbital bases, including characterization of topological materials, Comp. Mat. Sci. 143, 462 (2018).

L.A. Agapito, A. Ferretti, A. Calzolari, S. Curtarolo and M. Buongiorno Nardelli, Effective and accurate representation of extended Bloch states on finite Hilbert spaces, Phys. Rev. B 88, 165127 (2013).

L.A. Agapito, S. Ismail-Beigi, S. Curtarolo, M. Fornari and M. Buongiorno Nardelli, Accurate Tight-Binding Hamiltonian Matrices from Ab-Initio Calculations: Minimal Basis Sets, Phys. Rev. B 93, 035104 (2016).

L.A. Agapito, M. Fornari, D. Ceresoli, A. Ferretti, S. Curtarolo and M. Buongiorno Nardelli, Accurate Tight-Binding Hamiltonians for 2D and Layered Materials, Phys. Rev. B 93, 125137 (2016).

P. D'Amico, L. Agapito, A. Catellani, A. Ruini, S. Curtarolo, M. Fornari, M. Buongiorno Nardelli and A. Calzolari, Accurate ab initio tight-binding Hamiltonians: Effective tools for electronic transport and optical spectroscopy from first principles, Phys. Rev. B 94, 165166 (2016).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paoflow-2.9.3.tar.gz (524.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paoflow-2.9.3-py3-none-any.whl (594.1 kB view details)

Uploaded Python 3

File details

Details for the file paoflow-2.9.3.tar.gz.

File metadata

  • Download URL: paoflow-2.9.3.tar.gz
  • Upload date:
  • Size: 524.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for paoflow-2.9.3.tar.gz
Algorithm Hash digest
SHA256 0aaca025a3895fd3369cb9bd56d706c88c99f7dc6afaa259ff2c1e2dabea5723
MD5 8f76e3aeb2b169ae1f6ae0963bf1efc3
BLAKE2b-256 a3c426fcc5be1b112c0bb68548e6bc7d46664faf447768edafe19f88c77a93a8

See more details on using hashes here.

File details

Details for the file paoflow-2.9.3-py3-none-any.whl.

File metadata

  • Download URL: paoflow-2.9.3-py3-none-any.whl
  • Upload date:
  • Size: 594.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for paoflow-2.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 05f7444b5e6bf82fa66c1417b9f4d0074698ce50409be00db523f9a93d643fb9
MD5 a358e40ad220620a984937fdcf8b5ced
BLAKE2b-256 7e057e112ee383742505216220bdb7e8639352cc8598e8863921e87dabe9fe58

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page