Skip to content

Repository files navigation

pyRUQT

Modular Python-based Code for Multiconfigurational Non-Equilibrium Green's Function Methodologies

Most recent changes: (8/2026): Main branch updated to debugged PyPI release version with integrated WBL libraries and major sie_negf fixes. Version 0.9 (beta) released on Github and PyPI.

(7/2026): WBL calculations are fully debugged and code restructured for PyPi distribution. Will replace the main branch with this version soon.

(4/2026): Initial 0.9 PyPi package released on TestPyPI. WBL calculations are still being debugged for this release and have been disabled. Use main branch and compile RUQT separately to use WBL calculations.

(1/2026): Preparing package for upload to PyPi and version 0.9 release.

(12/23/2025): Improved PBC calculator for NEGF-DFT calculations. New run_pyRUQT.py example script which can be used to access all pyRUQT calculations. All other examples are outdated and moved to Old_Examples. We recommend using the run_pyRUQT.py for all pyRUQT calculations. Check out our YouTube channel for tutorials on how to use pyRUQT for charge transport calculations: https://www.youtube.com/@hoyresearchgroup

This is the Python-based successor to the Rowan University Transport (RUQT) code. It is designed to provide a modular framework for calculating charge transport using non-equilibrium Green's functions built from multiconfigurational electronic structure methods. It can use both an optmized version of the orginial RUQT code (RUQT-Fortran) or the Atomic Simulation Engine (ASE) for transport calculations and is currently capable of performing NEGF-MCPDFT, NEGF- DFT (PySCF), and mixed method NEGF calculations (ex. MC-PDFT for extended molecule region and DFT for electrodes). Support for NEGF-RDM to come in future (NEGF-RDM will require the Maple Quantum Chemistry Toolbox).

Each currently supported NEGF engine types (ASE and RUQT-Fortran) offer a different approach to treating electrode-extended molecule interactions and coupling:

  1. ASE Transport Engine (sie_negf class): Semi-infinite leads determined with an efficient decimation technique to determine Fermi level, device/electrode interactions, and coupling (see Paper #2). Separate Hamiltonian and Overlap matrices for the extended molecule and repeating electrode blocks are used to construct the Green's functions unless using the supercell option.

  2. RUQT-Fortran Transport Engine (wbl_negf class): Metal wide band limit approximation with user provided Fermi level and coupling constants (Papers 1 & 3). Only 1 Hamiltonian and Overlap matrix is used to contruct the Green's Functions which are divided by program into the electrode and extended molecule regions based on number of electrode atoms specified by user.

This software runs the standard Landuaer current, conductance, and zero-bias transmission calculations found in RUQT-Fortran/ASE and adds additional calculation types and features not found in either program:

New Calculation Types:

  1. Differential Conductance (using both RUQT-Fortran and ASE engines)
  2. Supercell calculations with ASE (no separate electrode required)

New features:

  1. Automatically run MC-PDFT (Pyscf and Molcas) and DFT(PySCF) calculations (with or without periodic boundary conditions) from pyRUQT for transport calculations
  2. Full alignment of diagonal elements of electrode/extended molecule Hamiltonians for ASE calculations
  3. Options to include additional electrode-molecule coupling for ASE NEGF caculations
  4. Automatic plotting of transport results in PNG format
  5. Non-transport calculations using PySCF through es_calc class. Useful for optimizing the junction's electronic structure before running transport calculations (and you can use the chkfile/mo files from es_calc as guess files for sie_negf/wbl_negf calcualtions)

Required:

Python3 (pref 3.9+), Numpy, Scipy, and Matplotlib

MKL (RUQT-Fortran)

NEGF and ES Calculator Options and Required Supporting Libraries. Only 1 of the following is required but all three are recommended.

For sie_negf class: Atomic Simulation Environment from https://wiki.fysik.dtu.dk/ase/

For wbl_negf class: Compiled RUQT executable. For pip install will be included as a library in WBL_RUQT. 

For es_calc class: PySCF from https://pyscf.org/

Electronic Structure Calculator Options. Only 1 of the following are required but both recommended:

PySCF (enables NEGF-DFT/MC-PDFT transport calculations by pyRUQT) from https://pyscf.org/

OpenMolcas(sandx_fock branch) installation (best run as separate calculation but can be run by pyRUQT) from https://gitlab.com/Molcas/OpenMolcas/-/tree/sandx_fock

Quick Installation

For Linux, use pip install:

pip install pyruqt

Note that the pip version of the package is only tested with Linux.

If you use this code in your research please cite:

  1. Andrew M. Sand, Justin T. Malme, and Erik P. Hoy, “A multiconfigurational pair-density functional theory approach to molecular junctions”, J. Chem. Phys., 155(11), 114115 (2021). https://doi.org/10.1063/5.0063293

If you use the ASE transport engine also cite:

  1. Ask Hjorth Larsen et al. J. Phys.: Condens. Matter 29, 273002 (2017). https://doi.org/10.1088/1361-648X/aa680e

If you use the RUQT-Fortran transport engine also cite:

  1. Erik P. Hoy, David A. Mazziotti, and Tamar Seideman, “Development and application of a 2-electron reduced density matrix approach to electron transport via molecular junctions”, J. Chem. Phys. 147, 184110 (2017). https://doi.org/10.1063/1.4986804

Be sure to cite the relevent PySCF or MOLCAS papers depending on which electronic structure calculations you do.

About

Modular Python Code for Multiconfigurational Non-Equilibrium Green's Function Methodologies

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages