10BC0 GitHub - AleksBL/Zandpack: Provides tools for carrying out time-dependent transport calculations within the framework of nonequilibrium Greens function theory. Usecases are nanoelectronic device simulation during strong-field excitation. The paper can be found here: https://doi.org/10.1016/j.cpc.2026.110087 · GitHub
[go: up one dir, main page]

Skip to content

AleksBL/Zandpack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zandpack (version 1.0)

License: MPL 2.0

Introduction

Zandpack is an open-source Python package for performing time-dependent quantum transport calculations using the Auxiliary Mode Expansion (AME) method. Built on Non-Equilibrium Green’s Function (NEGF) theory, Zandpack enables simulations of open quantum systems (e.g., devices coupled to electrodes) evolving under time-dependent biases and fields. The code is designed to interface with regular tight-binding models, SIESTA, DFTB+ or any LCAO-based DFT code, allowing for dynamic electronic effects in the device region. The code propagates the driven Heisenberg equation for the density matrix

$i\hbar\frac{\mathrm{d}\sigma}{\mathrm{d}t} = [H(t), \sigma(t)] + i\sum_\alpha\left[\Pi_\alpha(t) + \Pi_\alpha^\dagger(t) \right]$.

and allows for numerically exact open-system dynamics at the mean-field level. You have access to the reduced density matrix throughout the calculation and you can build your own density dependence into the time-dependent Hamiltonian. See the publication for the full details or read the Ph.D thesis.

Features

  • Easy handling of the steady-state TranSIESTA and TBtrans calculations using the siesta_python code
  • Auxiliary Mode Expansion (AME): Uses a level-width function expanded in Lorentzian functions, with algorithms ensuring positive semidefinite fits.
  • Command line tools for determininng both steady-state steady state and the system evolving under external fields:
    • The SCF tool for obtaining the steady-state density matrix.
    • The psinought tool for obtaining the steady state auxiliary mode wave-vectors.
    • The zand code to propagate the full initial state under timedependent bias and fields. This part is implemented using mpi4py and can scale to many compute nodes.
  • Extensible: Supports custom interfaces for other LCAO-based DFT codes.

Installation (see dependencies also)

Untested way

You may be able to download the code directly like this

    pip install git+https://github.com/AleksBL/Zandpack.git

But this is untested for the moment.

Tested way

To install Zandpack, download the code as a zip file, unpack it and navigate to the Zandpack folder containing the setup.py file in a terminal. Now execute

    python3 -m pip install -e .

and you will have an editable install of the code.

Add to PATH

Additionally, add the these two folders to your PATH environment variable:

   export PATH="/YOUR/PATH/TO/Zandpack/Zandpack/cmdtools:$PATH"
   export PATH="/YOUR/PATH/TO/Zandpack/Zandpack/mpi:$PATH"

Dependencies

Zandpack depends on the following packages:

  • numpy
  • numba
  • scipy
  • sisl
  • psutil
  • joblib
  • matplotlib
  • siesta_python
  • Block_matrices
  • Gf_Module

The Block matrices, Gf_Module and siesta_python codes can be found on GitHub https://github.com/AleksBL and are installed analogously to this code (download and pip install...).

Documentation

A html file can be found (after you build it) in the docs/_build/html directory. This containes additional information about the code usage and structure.

Demonstration of use

You can find a demonstration of the use of Zandpack in video form

Tutorials

Tutorials are available as introductory notebooks. Navigate to into the second Zandpack folder and copy the notebooks from there into a directory where you wish to run your calculations (Desktop or other). Other example calculations will also be made public here at some point.

Examples

Python scripts of several example calculations can be found in the examples folder. These are less structured, but they are understandable after doing the tutorials.

Contact

Users can get in contact with the developer by submitting an issue on the Zandpack Github page. You also direct messages to aleksander.bl@proton.me.

Licence

Zandpack is released under the Mozilla Public License v2.0. See the LICENCE file in the Zandpack directory.

About

Provides tools for carrying out time-dependent transport calculations within the framework of nonequilibrium Greens function theory. Usecases are nanoelectronic device simulation during strong-field excitation. The paper can be found here: https://doi.org/10.1016/j.cpc.2026.110087

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

0