Skip to main content

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
Self-consistent Hubbard correction he ACBN0 and eACBN0 pseudohybrid density functionals for calculations of U and V parameters in the DFT+U and DFT+U+V methods
Spin & magnetism Spin texture, non-collinear and fully-relativistic (SOC) Hamiltonians
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)
Kubo-formula response anomalous Hall, spin Hall, and orbital Hall conductivities based on Berry curvature integration
Lattice dynamics & phonons Phonon dispersions, DOS and thermal properties (phonopy finite-displacement); Born effective charges, ε∞ and LO–TO splitting; infrared (IR), non-resonant (Placzek) and resonant (Albrecht) Raman spectra; vibrational (ionic) dielectric ε(ω) and reststrahlen emissivity; quasi-harmonic approximation (thermal expansion, V(T), bulk modulus, C_p, thermodynamic and mode Grüneisen dispersion)
Electron-phonon coupling from pseudo-atomic-orbitals interpolation electron-phonon coupling, Eliashberg function, superconducting transition temperature
Topology Berry curvature, Z₂ invariants, topological surface states
Model Hamiltonians Kane–Mele and custom lattice models
Environment-dependent tight-binding models Slater-Koster parameterization with structural transferability
Quantum oscillation analysis de Haas-van Alphen and Shubnikov-de Haas frequencies and effective masses via Fermi surface extreme orbit finder, including fermi-plotter, a CLI for display Fermi surfaces and B vector(s) for easier interpretation
Landauer-Büttiker quantum transport Transmission functions, conductance, and current-voltage characteristics for nanoscale conductor/lead geometries
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 online materials database entry, with sensible defaults for smearing, magnetism, spin–orbit coupling, and the number of bands needed for PAOFLOW's extended-basis projections. Two databases are supported and auto-detected from the identifier (or selected with --source): AFLOW for bulk (3D) crystals and C2DB for two-dimensional materials, where the input is set up with vacuum padding, an in-plane k-grid, and assume_isolated='2D'. When a database provides no k-mesh, dimension- and metallicity-aware defaults are used and a caveat reminds you to check k-point convergence. 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 from the output of a Quantum ESPRESSO run. It offers three workflows:
    • regular — a property-run driver (main.py) that computes the properties you select (bands, DOS/PDOS, transport, optical, topology, …), with a 2D-aware band path, plus an optional companion plotting script (plot.py) that visualizes exactly those properties.
    • acbn0 — a self-consistent Hubbard U (ACBN0) / on-site U + intersite V (eACBN0) driver (main.acbn0.py), paired with a plot.acbn0.py that overlays the band structures of the converged cases (DFT+U and, for eACBN0, DFT+U+V) for direct comparison.
    • phonon — a three-phase lattice-dynamics driver (main.phonon.py) that writes the displaced-supercell pw.x inputs, harvests the forces and assembles the phonon dispersion, DOS, thermal properties and (with Born charges) the LO–TO splitting. Optionally it also emits a companion Raman workflow (main.raman.py) for the non-resonant (Placzek) Raman spectrum, plus matching plot.phonon.py / plot.raman.py scripts.
    • elphon - sets up a driver for the interpolation of electron-phonon matrix elements from a DFPT calculation (AHC).

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.

An optional Rust backend (rust/) further accelerates the heaviest numerical kernels — the ACBN0/eACBN0 four-centre Coulomb integrals (ERIs) and the dielectric/JDOS response loops. It is fully optional and imported opportunistically: when the compiled paoflow_rs module is unavailable, PAOFLOW falls back to its pure-Python/NumPy implementation with numerically identical results (parity < 1e-12). See the Rust backend guide for build and usage instructions.


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).

Metadata

Release files for PAOFLOW 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PAOFLOW 3.0.0
File Size Uploaded Provenance Actions
paoflow-3.0.0.tar.gz 833.8 kB Without provenance Details for paoflow-3.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for PAOFLOW 3.0.0
File Interpreter ABI Platform Actions
paoflow-3.0.0-py3-none-any.whl Python 3 none any Details for paoflow-3.0.0-py3-none-any.whl

Total release size: 1.8 MB

Release files / paoflow-3.0.0.tar.gz

Download URL paoflow-3.0.0.tar.gz
Size 833.8 kB
Tags Source
SHA-256 checksum
How to use checksums
43f1e6e7d8d3fdda09eb90abaa15de298ef2a8e1d6ed03936f9d13c0ad1ccce9
BLAKE2b-256 checksum
How to use checksums
f718cb6cb78c6c2791836cff3b815fd886715c64e9cbcc84ade9d093e13e6f54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / paoflow-3.0.0-py3-none-any.whl

Download URL paoflow-3.0.0-py3-none-any.whl
Size 945.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
27e4dbc1ae4528c769be8f0cb868d632ff525246e87e2c0a53522ccc184add8e
BLAKE2b-256 checksum
How to use checksums
e53a695d06b228b097680dfe89420f06ec61f3c21127a8438539f7b96d054316
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Security for PAOFLOW 3.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page