We present a novel open-source Python framework called NanoNET (Nanoscale Non-equilibrium Electron Transport) for modeling electronic structure and transport. Our method is based on the tight-binding method and non-equilibrium Green’s function theory. The core functionality of the framework is providing facilities for efficient construction of tight-binding Hamiltonian matrices from a list of atomic coordinates and a lookup table of the two-center integrals in dense, sparse, or block-tridiagonal forms. The framework implements a method based on kd-tree nearest-neighbor search and is applicable to isolated atomic clusters and periodic structures. A set of subroutines for detecting the block-tridiagonal structure of a Hamiltonian matrix and splitting it into series of diagonal and off-diagonal blocks is based on a new greedy algorithm with recursion. Additionally the developed software is equipped with a set of programs for computing complex band structure, self-energies of elastic scattering processes, and Green’s functions. Examples of usage and capabilities of the computational framework are illustrated by computing the band structure and transport properties of a silicon nanowire as well as the band structure of bulk bismuth. Program summaryProgram Title:NanoNETCPC Library link to program files:https://doi.org/10.17632/b9p7kyzdj9.1Developer’s repository link:https://github.com/freude/NanoNetLicensing provisions: MITProgramming language: PythonNature of problem: The framework NanoNET solves a problem which is, having a set of atomic coordinates and tight-binding parameters, to construct Hamiltonian matrices in one of several desired forms. In particular, some applications require those matrices to have a reduced bandwidth and/or to possess a block-tridiagonal structure.Solution method: The problem is solved using a combination of kd-tree-based fast nearest-neighbor search and atomic coordinate sorting. Furthermore, a new greedy recursive algorithm is proposed for detecting block-tridiagonal structure of a matrix in a non-optimal way. Additionally, we propose an algorithm of a polynomial time for optimizing block sizes.Additional features: Although the resulting matrices can be processed by many existing software packages, the framework also has built-in standard tools for diagonalizing Hamiltonian matrices and computing Green’s functions that make it an independent tool for solving electronic structure and transport problems.
Read full abstract