Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

132 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 at the TD-DFT level. 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 Louiville von Neumann equation for the density matrix

$i\hbar\frac{\mathrm{d}\sigma}{\mathrm{d}t} = [H(t, \sigma(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. - Currently support for SIESTA and DFTB+ for use in open system TD-DFT.

Installation (see dependencies also)

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. Zandpack is currently not available on pip.

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"

Put these exports in your .bashrc or .zshrc file.

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 or the signal chat (scan QR Below). The signal chat has a bot inside that has access to the Zandpack documentation.

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. Compatible with TD-DFT. The paper can be found here: https://doi.org/10.1016/j.cpc.2026.110087

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages