There is a newer version of the record available.

Published July 1, 2016 | Version v1
Software Open

pybinding v0.8.0: a Python package for tight-binding calculations

  • 1. University of Antwerp, Belgium

Description

Pybinding is a Python package for numerical tight-binding calculations in solid state physics. The main features include:

  • Declarative model construction - The user just needs to describe what the model should be, but not how to build it. Pybinding will take care of the numerical details of building the Hamiltonian matrix so users can concentrate on the physics, i.e. the quantum properties of the model.

  • Fast compute - Pybinding's implementation of the kernel polynomial method allows for very fast calculation of the Green's function of the Hamiltonian. Exact diagonalization is also available through the use of scipy's eigensolvers. The framework is very flexible and allows the addition of user-defined computation routines.

  • Result analysis and visualization - The package contains utility functions for post-processing the raw result data. The included plotting functions are tailored for tight-binding problems to help visualize the model structure and to make sense of the results.

The code interface is written in Python with the aim to be as user-friendly and flexible as possible. Under the hood, C++11 is used to accelerate demanding tasks to deliver high performance with low memory usage.

See the documentation for more details: http://docs.pybinding.site/

 

Changelog for version 0.8.0

New features

  • Added support for scattering models. Semi-infinite leads can be attached to a finite-sized scattering region. Take a look at the documentation, specifically section 10 of the "Basic Tutorial", for details on how to construct such models.

  • Added compatibility with Kwant for transport calculations. A model can be constructed in Pybinding and then exported using the Model.tokwant() method. This makes it possible to use Kwant's excellent solver for transport problems. While Kwant does have its own model builder, Pybinding is much faster in this regard: by two orders of magnitude, see the "Benchmarks" page in the documentation for a performance comparison.

  • Experimental: Initial CUDA implementation of KPM Green's function (only for diagonal elements for now). See the "Experimental Features" section of the documentation.

Improvements

  • The performance of the KPM Green's function implementation has been improved significantly: by a factor of 2.5x. The speedup was achieved with CPU code using portable SIMD intrinsics thanks to libsimdpp.

  • The Green's function can now be computed for multiple indices simultaneously.

  • The spatial origin of a lattice can be adjusted using the Lattice.offset attribute. See the "Advanced Topics" section.

Breaking changes

  • The interface for structure plotting (as used in System.plot() and StructureMap) has been greatly improved. Some of the changes are not backwards compatible and may require some minor code changes after upgrading. See the "Plotting Guide" section of the documentation for details.

  • The interfaces for the Bands and StructureMap result objects have been revised. Specifically, structure maps are now more consistent with ndarrays, so the old smap.filter(smap.x > 0) is replaced by smap2 = smap[smap.x > 0]. The "Plotting Guide" has a few examples and there is a full method listing in the "API Reference" section.

Documentation

  • The API reference has been completely revised and now includes a summary on the main page.

  • A few advanced topics are now covered, including some aspects of plotting. A few more random examples have also been added.

  • Experimental features are now documented.

Bug fixes

  • Fixed translational symmetry skipping directions for some 2D systems.
  • Fixed computation of off-diagonal Green's function elements with opt_level > 0
  • Fixed some issues with shapes which were not centered at (x, y) = (0, 0).

Notes

This work was supported by the European Science Foundation (ESF) under the EUROCORES Program EuroGRAPHENE within the project CONGRAN, the Flemish Science Foundation (FWO-Vl) and the Methusalem Funding of the Flemish Government.

Files

pybinding-v0.8.0.zip

Files (471.3 kB)

Name Size Download all
md5:0b33c563e8d0f28abf621b41ec4c1875
471.3 kB Preview Download

Additional details