Kwant (http://kwant-project.org/), a package for quantum transport, is a recent addition to the scientific Python universe. I will demonstrate how our library allows to solve non-trivial problems with a few lines of code and explain why it is faster, more general, and easier to use than alternatives written in pure C/C++ or Fortran and how your own non-quantum programs can profit from it.
“Quantum transport” is the branch of physics that strives to understand electronics at the most fundamental level, when quantum effects are important. Although computer simulations have been widely used in our field, most codes were written in a throw-away-after-use manner. In 2011, my colleagues Michael Wimmer, Anton Akhmerov, Xavier Waintal and myself set out to improve the situation by creating a Python package that we called “Kwant”. Our library was not only meant to be free and open, but also more general, faster, and easier to use than previously available alternatives. Since its release in September 2013, Kwant has been used in numerous research projects that have led to more than 40 scientific publications so far (April 2015).
I will begin by demonstrating Kwant in action: rather non-trival problems can be solved in a couple of lines of Python code.
One part of Kwant is about building and handling graphs. I will explain some tricks that allow Kwant to make the construction of very large and complex graphs both pythonic and efficient.
Another part of Kwant is about lightning-fast sparse linear algebra thanks to the awesome MUMPS solver. I will show how your own Python programs can use Kwant’s MUMPS bindings to supercharge their sparse linear algebra as well.