Commit fa012f86 authored by Christoph Groth's avatar Christoph Groth

capitalize Kwant and Tinyarray where appropriate

parent a7cbcdc1
================
Authors of kwant
Authors of Kwant
================
The principal developers of kwant are
The principal developers of Kwant are
* Christoph W. Groth (SPSMS-INAC-CEA Grenoble)
* Michael Wimmer (Leiden University)
......@@ -15,12 +15,12 @@ The contributions of Christoph and Xavier are part of their work at `CEA
<http://cea.fr>`_, the French Commissariat à l'énergie atomique et aux énergies
alternatives.
Other people that have contributed to kwant include
Other people that have contributed to Kwant include
* Daniel Jaschke
* Joseph Weston
-------------------------------------------------------------
To find out who exactly wrote a certain part of kwant, please use the "blame"
To find out who exactly wrote a certain part of Kwant, please use the "blame"
feature of `git <http://git-scm.com/>`_, the version control system.
This diff is collapsed.
=============
kwant License
Kwant License
=============
(This license applies to all files of this distribution except those within the
``doc/sphinxext`` subdirectory for which ``doc/sphinxext/LICENSE.txt``
applies.)
Copyright 2011-2013, kwant authors. All rights reserved.
Copyright 2011-2013 Kwant authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
......
......@@ -2,7 +2,7 @@ Roughly in order of importance. -*-org-*-
* Document the order of sites/orbitals in finalized builders
* Make kwant run on windows
* Make Kwant run on windows
* Add calculation of current density
......@@ -24,7 +24,7 @@ Roughly in order of importance. -*-org-*-
way to do it is to sort the sites in finalized builders.)
One could then also RLE compress sites in finalized builders.
* Make kwant objects pickleable
* Make Kwant objects pickleable
* Implement "inhomogeneous arrays" for ldos and wavefunc
The point is to have ldos or wavefunc return objects that behave like 2d
......@@ -37,9 +37,9 @@ Roughly in order of importance. -*-org-*-
This would mean:
- When referring to functions, we always append "()" to their name.
- Names of objects (types, functions, ...) that are a documented part of
kwant are always hyperlinks _when_ the object itself is meant.
Kwant are always hyperlinks _when_ the object itself is meant.
- Concepts that are meant in a more general sense are not hyperlinked, even if
there exists an object of the same name in kwant. (Consider the usage of
there exists an object of the same name in Kwant. (Consider the usage of
linking for the term "Thread" in the document linked above.)
* Plotter: show site upon click
......@@ -63,7 +63,7 @@ Roughly in order of importance. -*-org-*-
* In finalized leads, only keep the sites of a single lead unit cell.
* Add a test of kwant that verifies QHE conductance quantization
* Add a test of Kwant that verifies QHE conductance quantization
* Add support for optimization of lead fundamental domains.
......
# Makefile for Sphinx documentation
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# -*- coding: utf-8 -*-
#
# kwant documentation build configuration file, created by
# Kwant documentation build configuration file, created by
# sphinx-quickstart on Tue Jan 11 09:39:28 2011.
#
# This file is execfile()d with the current directory set to its containing dir.
......@@ -38,8 +38,8 @@ source_suffix = '.rst'
master_doc = 'index'
# General information about the project.
project = u'kwant'
copyright = u'2011-2012, kwant Developers'
project = u'Kwant'
copyright = u'2011-2012, Kwant Developers'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
......@@ -184,7 +184,7 @@ latex_paper_size = 'a4'
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('index', 'kwant.tex', u'kwant Documentation',
('index', 'kwant.tex', u'Kwant Documentation',
u'A. R. Akhmerov, C. W. Groth, X. Waintal, M. Wimmer',
'manual'),
]
......
......@@ -4,13 +4,13 @@ Contributed modules
.. module:: kwant.contrib
:mod:`kwant.contrib` is a collection of independent modules that is part of the
official kwant distribution, but is not considered to be an integral part of
kwant. The intention is to keep interesting modules that are useful with kwant
official Kwant distribution, but is not considered to be an integral part of
Kwant. The intention is to keep interesting modules that are useful with Kwant
here (maybe even experimental ones) to give users an easier access to them, and
them wider exposure. Users of kwant are welcome to submit their own modules for
them wider exposure. Users of Kwant are welcome to submit their own modules for
inclusion.
For simplicity, all contributions share the same license as kwant. (This
For simplicity, all contributions share the same license as Kwant. (This
requirement may be relaxed to allow other free licenses if requested.)
.. toctree::
......
===================
kwant documentation
Kwant documentation
===================
.. include:: ../../README
:end-before: See also the files
Researchers, please note that even though :doc:`kwant is Free Software
Researchers, please note that even though :doc:`Kwant is Free Software
<license>`, scientific integrity requires to give appropriate credit. If you
write a scientific paper whose results have been obtained with the help of
kwant, please :doc:`acknowledge <acknowledgements>` the work of the :doc:`people
Kwant, please :doc:`acknowledge <acknowledgements>` the work of the :doc:`people
that have developed it <authors>`.
.. toctree::
......
Reference guide
===============
In the following, all kwant modules appear in the order of decreasing end-user
In the following, all Kwant modules appear in the order of decreasing end-user
relevance.
.. toctree::
......
......@@ -6,7 +6,7 @@
This package wraps some selected LAPACK functionality not available via NumPy
and also contains a Python-wrapper for MUMPS. It also has several algorithms
for finding approximately orthonormal lattice bases. It is meant for internal
use by kwant itself, but of course nothing prevents you from using it directly.
use by Kwant itself, but of course nothing prevents you from using it directly.
The documentation of this package is not included here on purpose in order not
to add too many things to this reference. Please consult the source code
......
......@@ -23,4 +23,3 @@ Data-generating functions
sys_leads_pos
sys_leads_hopping_pos
mask_interpolate
......@@ -3,7 +3,7 @@
.. module:: kwant
The top-level kwant package serves as a container for sub-packages and does not
The top-level Kwant package serves as a container for sub-packages and does not
have any functions of its own. For convenience, short names are provided for a
few widely used objects from the sub-packages:
......
......@@ -4,12 +4,12 @@
Overview
--------
kwant offers several modules for computing the solutions to quantum transport
Kwant offers several modules for computing the solutions to quantum transport
problems, the so-called solvers. Each of these solvers may use different
internal algorithms and/or depend on different external libraries. If the
libraries needed by one solver are not installed, trying to import it will
raise an ``ImportError`` exception. The :doc:`Installation instructions
<../install>` list all the libraries that are required or can be used by kwant
<../install>` list all the libraries that are required or can be used by Kwant
and its solvers.
......@@ -19,7 +19,7 @@ and its solvers.
.. module:: kwant.solvers.default
There is one solver, `kwant.solvers.default` that is always available. For
each kwant installation it combines the best functionality of the *available*
each Kwant installation it combines the best functionality of the *available*
solvers into a single module. We recommend to use it unless there are specific
reasons to use another. The following functions are provided.
......@@ -60,7 +60,7 @@ default solver are listed in the documentation of each module.
kwant.solvers.sparse
kwant.solvers.mumps
For kwant-experts: detail of the internal structure of a solver
For Kwant-experts: detail of the internal structure of a solver
---------------------------------------------------------------
Each solver module (except the default one) contains a class ``Solver`` (e.g.
......
Note for kwant developers
Note for Kwant developers
-------------------------
Say you have modified SCRIPT.py in this directory. Make sure that the tutorial
......
Tutorial: Learning kwant through examples
Tutorial: Learning Kwant through examples
=========================================
In the following, the most important features of kwant are explained using
In the following, the most important features of Kwant are explained using
simple, but still physically meaningful examples. Each of the examples
is commented extensively. In addition, you will find notes about more subtle,
technical details at the end of each example. At first reading,
......
......@@ -4,7 +4,7 @@ Introduction
The Python programming language
...............................
kwant is a library for `Python <http://python.org/>`_. Care was taken to fit
Kwant is a library for `Python <http://python.org/>`_. Care was taken to fit
well with the spirit of the language and to take advantage of its expressive
power. If you do not know Python yet, do not fear: Python is widely regarded
as one of the most accessible programming languages. For an introduction we
......@@ -13,14 +13,14 @@ The `Beginner's Guide to Python <http://wiki.python.org/moin/BeginnersGuide>`_
contains a wealth of links to other tutorials, guides and books including some
for absolute beginners.
kwant
Kwant
.....
There are two steps in obtaining a numerical solution to a problem: The first
is defining the problem in a computer-accessible way, the second solving it.
The aim of a software package like kwant is to make both steps easier.
The aim of a software package like Kwant is to make both steps easier.
In kwant, the definition of the problem amounts to the creation of a tight
In Kwant, the definition of the problem amounts to the creation of a tight
binding system. The solution of the problem, i.e. the calculation of the
values of physical observables, is achieved by passing the system to a
*solver*.
......@@ -32,15 +32,15 @@ are the sites of the tight binding system, the edges are the hoppings. Sites
are annotated with the corresponding on-site Hamiltonian matrix, hoppings are
annotated with the corresponding hopping integral matrix.
One of the central goals of kwant is to allow easy creation of such annotated
graphs that represent tight binding system. kwant can be made to know about
One of the central goals of Kwant is to allow easy creation of such annotated
graphs that represent tight binding system. Kwant can be made to know about
the general structure of a particular system, the involved lattices and
symmetries. For example, a system with a 1D translational symmetry may be used
as a lead and attached to a another system. If both systems have sites which
belong to the same lattices, the attaching can be done automatically, even if
the shapes of the systems are irregular.
Once a tight binding system has been created, solvers provided by kwant can be
Once a tight binding system has been created, solvers provided by Kwant can be
used to compute physical observables. Solvers expect the system to be in a
different format than the one used for construction -- the system has to be
*finalized*. In a finalized system the tight binding graph is fixed but the
......@@ -48,7 +48,7 @@ matrix elements of the Hamiltonian may still change. The finalized format is
both more efficient and simpler -- the solvers don't have to deal with the
various details which were facilitating the construction of the system.
The typical workflow with kwant is as follows:
The typical workflow with Kwant is as follows:
#. Create an "empty" tight binding system.
......@@ -58,8 +58,8 @@ The typical workflow with kwant is as follows:
#. Pass the finalized system to a solver.
Please note that even though this tutorial only shows 2-d systems, kwant is
completely general with respect to the number of dimensions. kwant does not
Please note that even though this tutorial only shows 2-d systems, Kwant is
completely general with respect to the number of dimensions. Kwant does not
care in the least whether systems live in one, two, three, or any other number
of dimensions. The only exception is plotting, which out-of-the-box only works
for up to three dimensions. (But custom projections can be specified!)
......@@ -7,7 +7,7 @@
# - Using iterables and builder.HoppingKind for making systems
# - introducing `reversed()` for the leads
#
# Note: Does the same as tutorial1a.py, but using other features of kwant
# Note: Does the same as tutorial1a.py, but using other features of Kwant.
#HIDDEN_BEGIN_xkzy
import kwant
......
First steps in kwant: Setting up a simple system and computing transport
First steps in Kwant: Setting up a simple system and computing transport
------------------------------------------------------------------------
Transport through a quantum wire
......@@ -14,13 +14,13 @@ model representing the two-dimensional Schroedinger equation
with a hard wall confinement :math:`V(y)` in y-direction.
In order to use kwant, we need to import it:
In order to use Kwant, we need to import it:
.. literalinclude:: quantum_wire.py
:start-after: #HIDDEN_BEGIN_dwhx
:end-before: #HIDDEN_END_dwhx
Enabling kwant is as easy as this [#]_ !
Enabling Kwant is as easy as this [#]_ !
The first step is now the definition of the system with scattering region and
leads. For this we make use of the `~kwant.builder.Builder` type that allows to
......@@ -32,7 +32,7 @@ define a system in a convenient way. We need to create an instance of it:
Observe that we just accessed `~kwant.builder.Builder` by the name
``kwant.Builder``. We could have just as well written
``kwant.builder.Builder`` instead. kwant consists of a number of sub-packages
``kwant.builder.Builder`` instead. Kwant consists of a number of sub-packages
that are all covered in the :doc:`reference documentation
<../reference/index>`. For convenience, some of the most widely-used members
of the sub-packages are also accessible directly through the top-level `kwant`
......@@ -248,7 +248,7 @@ subbands that increases with energy.
``matplotlib.pyplot`` has to be imported. (An informative error message
will remind you if you forget.) The reason for this is pretty technical:
matplotlib's "backend" can only be chosen before ``matplotlib.pyplot`` has
been imported. Would kwant import that module by itself, it would deprive
been imported. Would Kwant import that module by itself, it would deprive
you of the possibility to choose a non-default backend later.
......@@ -260,7 +260,7 @@ subbands that increases with energy.
The same but different: Alternative system building
...................................................
kwant is very flexible, and often allows you more than one way to
Kwant is very flexible, and often allows you more than one way to
build up your system. The reason is that `~kwant.builder.Builder`
is essentially just a container, and allows for different
ways to be filled. Here we present a more compact rewrite of
......@@ -299,7 +299,7 @@ python).
Having added all lattice points in one line, we now turn to the
hoppings. In this case, an iterable like for the lattice
points becomes a bit cumbersome, and we use instead another
feature of kwant:
feature of Kwant:
.. literalinclude:: quantum_wire_revisited.py
:start-after: #HIDDEN_BEGIN_nooi
......@@ -314,7 +314,7 @@ certain kind that can be added to this builder without adding new sites. When
`~kwant.builder.HoppingKind` is given to `~kwant.builder.Builder` as a key, it
means that something is done to all the possible hoppings of this kind. A list
of `~kwant.builder.HoppingKind` objects corresponding to nearest neighbors in
lattices in kwant is obtained using ``lat.neighbors()``. ``sys[lat.neighbors()]
lattices in Kwant is obtained using ``lat.neighbors()``. ``sys[lat.neighbors()]
= -t`` then sets all of those hopping matrix elements at once. In order to set
values for all the nth-nearest neighbors at once, one can similarly use
``sys[lat.neighbors(n)] = -t``. More detailed example of using
......
......@@ -33,8 +33,8 @@ realistic parameters).
The tight-binding model corresponding to the Rashba-Hamiltonian naturally
exhibits a 2x2-matrix structure of onsite energies and hoppings. In order to
use matrices in our program, we import the tinyarray package. (`NumPy
<http://numpy.scipy.org/>`_ would work as well, but tinyarray is much faster
use matrices in our program, we import the Tinyarray package. (`NumPy
<http://numpy.scipy.org/>`_ would work as well, but Tinyarray is much faster
for small arrays.)
.. literalinclude:: spin_orbit.py
......@@ -95,10 +95,10 @@ the following, clearly non-monotonic conductance steps:
.. specialnote:: Technical details
- The tinyarray package, one of the dependencies of kwant, implements
efficient small arrays. It is used internally in kwant for storing small
- The Tinyarray package, one of the dependencies of Kwant, implements
efficient small arrays. It is used internally in Kwant for storing small
vectors and matrices. For performance, it is preferable to define small
arrays that are going to be used with kwant using tinyarray. However,
arrays that are going to be used with Kwant using Tinyarray. However,
NumPy would work as well::
import numpy
......@@ -107,9 +107,9 @@ the following, clearly non-monotonic conductance steps:
sigma_y = numpy.array([[0, -1j], [1j, 0]])
sigma_z = numpy.array([[1, 0], [0, -1]])
tinyarray arrays behave for most purposes like NumPy arrays except that
Tinyarray arrays behave for most purposes like NumPy arrays except that
they are immutable: they cannot be changed once created. This is important
for kwant: it allows them to be used directly as dictionary keys.
for Kwant: it allows them to be used directly as dictionary keys.
- It should be emphasized that the relative hopping used for
`~kwant.builder.HoppingKind` is given in terms of
......@@ -153,7 +153,7 @@ value of the potential as the second. Note that in `potential` we can access
variables of the surrounding function: `L` and `L_well` are taken from the
namespace of `make_system`.
kwant now allows us to pass a function as a value to
Kwant now allows us to pass a function as a value to
`~kwant.builder.Builder`:
.. literalinclude:: quantum_well.py
......@@ -291,7 +291,7 @@ shapes. However, the choice of unit cell together with the
translational vector allows to place the lead unambiguously in real space --
the unit cell is repeated infinitely many times in the direction and
opposite to the direction of the translational vector.
kwant examines the lead starting from infinity and traces it
Kwant examines the lead starting from infinity and traces it
back (going opposite to the direction of the translational vector)
until it intersects the scattering region. At this intersection,
the lead is attached:
......@@ -316,7 +316,7 @@ period of one flux quantum.
.. specialnote:: Technical details
- Leads have to have proper periodicity. Furthermore, the kwant
- Leads have to have proper periodicity. Furthermore, the Kwant
format requires the hopping from the leads to the scattering
region to be identical to the hoppings between unit cells in
the lead. `~kwant.builder.Builder.attach_lead` takes care of
......
......@@ -12,7 +12,7 @@ contains information about the number of modes, the velocities, ...
In this example, we aim to compute the bandstructure of a simple
tight-binding wire.
Computing band structures in kwant is easy. Just define a lead in the
Computing band structures in Kwant is easy. Just define a lead in the
usual way:
.. literalinclude:: band_structure.py
......@@ -57,7 +57,7 @@ Hamiltonian is approximating.
Closed systems
..............
Although kwant is (currently) mainly aimed towards transport problema, it
Although Kwant is (currently) mainly aimed towards transport problema, it
can also easily be used to compute properties of closed systems -- after
all, a closed system is nothing more than a scattering region without leads!
......
......@@ -15,7 +15,7 @@ the superconducting order parameter, and :math:`\mathcal{T}`
the time-reversal operator. The BdG Hamiltonian introduces
electron and hole degrees of freedom (an artificial doubling -
be aware of the fact that electron and hole excitations
are related!), which we now implement in kwant.
are related!), which we now implement in Kwant.
For this we restrict ourselves to a simple spin-less system without
magnetic field, so that :math:`\Delta` is just a number (which we
......@@ -67,7 +67,7 @@ where :math:`N` is the number of channels in the normal lead, and
:math:`R_\text{ee}` the total probability of reflection from electrons
to electrons in the normal lead, and :math:`R_\text{eh}` the total
probability of reflection from electrons to holes in the normal
lead. However, the current version of kwant does not allow for an easy
lead. However, the current version of Kwant does not allow for an easy
and elegant partitioning of the scattering matrix in these two degrees
of freedom [#]_.
......
What's New in kwant 0.2
What's New in Kwant 0.2
=======================
This article explains the user-visible changes in kwant 0.2. kwant 0.2 was
This article explains the user-visible changes in Kwant 0.2. Kwant 0.2 was
released on 29 November 2012.
Improved performance
--------------------
This has been the main focus of this release. Through optimization a level of
performance has been reached that we consider satisfactory: runs of kwant for
performance has been reached that we consider satisfactory: runs of Kwant for
mid-sized (100x100 say) systems now typically spend most time in highly
optimized libraries and not anymore in Python-implemented code. For large,
truly performance-critical systems almost all time is now spent in optimized
libraries.
An important optimization has been replacing NumPy for most uses within kwant
An important optimization has been replacing NumPy for most uses within Kwant
by tinyarray. tinyarray provides a subset of NumPy's functionality in a way
that is highly optimized for small arrays such as the tags of sites in kwant.
that is highly optimized for small arrays such as the tags of sites in Kwant.
New MUMPS-based solver
----------------------
......@@ -80,7 +80,7 @@ allows the calculation of the local density of states.
Calculation of wave functions in the scattering region
------------------------------------------------------
(kwant 0.3 update: ``wave_func`` has been renamed to
(Kwant 0.3 update: ``wave_func`` has been renamed to
`~kwant.solvers.default.wave_function`.)
The new function of sparse solvers ``wave_func`` allows the calculation of the
......
What's New in kwant 1.0
What's New in Kwant 1.0
=======================
This article explains the user-visible changes in kwant 1.0.
This article explains the user-visible changes in Kwant 1.0.
Lattice and shape improvements
......@@ -71,7 +71,7 @@ In previous versions if one executed `a = kwant.lattice.square();
b = kwant.lattice.square()` then `a` and `b` were
actually different lattices. This often led to confusions in more convoluted
use cases, so this behavior was changed. Now two site families created with the
same parameters are actually indistinguishable by `kwant`. If it is desired to
same parameters are actually indistinguishable by Kwant. If it is desired to
make two site families which have the same geometry, but mean different things,
as for instance in :doc:`../tutorial/tutorial5`, then the `name` argument has
to be used when creating a lattice, e.g. `a = kwant.lattice.square(name='a');
......@@ -79,7 +79,7 @@ b = kwant.lattice.square(name='b')`.
Parameters to Hamiltonian
-------------------------
kwant now allows the Hamiltonian matrix elements to be described with functions
Kwant now allows the Hamiltonian matrix elements to be described with functions
that depend on an arbitrary number of parameters in addition to the sites on
which they are defined.
......@@ -174,8 +174,8 @@ real space information about the modes in the leads (a list of
Inclusion of contributed modules
--------------------------------
kwant now contains a sub-package :mod:`kwant.contrib` that contains various
modules that are useful with kwant but are not considered to be part of it.
Kwant now contains a sub-package :mod:`kwant.contrib` that contains various
modules that are useful with Kwant but are not considered to be part of it.
Improved plotting functionality
-------------------------------
......
What's New in kwant
What's New in Kwant
===================
.. toctree::
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......@@ -187,7 +187,7 @@ class Symmetry(object):
Many physical systems possess a discrete spatial symmetry, which results in
special properties of these systems. This class is the standard way to
describe discrete spatial symmetries in kwant. An instance of this class
describe discrete spatial symmetries in Kwant. An instance of this class
can be passed to a `Builder` instance at its creation. The most important
kind of symmetry is translational symmetry, used to define scattering
leads.
......@@ -514,7 +514,7 @@ def edges(seq):
class Builder(object):
"""A tight binding system defined on a graph.
This is one of the central types in kwant. It is used to construct tight
This is one of the central types in Kwant. It is used to construct tight
binding systems in a flexible way.
The nodes of the graph are `Site` instances. The edges, i.e. the hoppings,
......@@ -525,7 +525,7 @@ class Builder(object):
To make the graph accessible in a way that is natural within the Python
language it is exposed as a *mapping* (much like a built-in Python
dictionary). Keys are sites or hoppings. Values are 2d arrays
(e.g. NumPy or tinyarray) or numbers (interpreted as 1 by 1 matrices).
(e.g. NumPy or Tinyarray) or numbers (interpreted as 1 by 1 matrices).
Parameters
----------
......@@ -556,7 +556,7 @@ class Builder(object):
Builder instances can be made to automatically respect a `Symmetry` that is
passed to them during creation. The behavior of builders with a symmetry
is slightly more sophisticated. First of all, it is implicitly assumed
throughout kwant that **every** function assigned as a value to a builder
throughout Kwant that **every** function assigned as a value to a builder
with a symmetry possesses the same symmetry. Secondly, all keys are mapped
to the fundamental domain of the symmetry before storing them. This may
produce confusing results when neighbors of a site are queried.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
"""This package contains various sub-packages that are useful with kwant, but
are not considered to be part of kwant.
"""This package contains various sub-packages that are useful with Kwant, but
are not considered to be a part of it.
The sub-packages have to be imported explicitly.
"""
# COPYRIGHT 2013 kwant authors.
# COPYRIGHT 2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
# Copyright 2011-2013 kwant authors.
# Copyright 2011-2013 Kwant authors.
#
# This file is part of kwant. It is subject to the license terms in the
# This file is part of Kwant. It is subject to the license terms in the
# LICENSE file found in the top-level directory of this distribution and at
# http://kwant-project.org/license. A list of kwant authors can be found in
# http://kwant-project.org/license. A list of Kwant authors can be found in
# the AUTHORS file at the top-level directory of this distribution and at
# http://kwant-project.org/authors.
......
// Copyright 2011-2013 kwant authors.
// Copyright 2011-2013 Kwant authors.
//
// This file is part of kwant. It is subject to the license terms in the
// This file is part of Kwant. It is subject to the license terms in the