diff --git a/AUTHORS b/AUTHORS index 7217cd3c88a06d06902c034e5b918c12e3ff246f..594c40914a38bffd1801722a523d12c9bdb491f9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -5,8 +5,8 @@ Authors of Kwant The principal developers of Kwant are * Christoph W. Groth (SPSMS-INAC-CEA Grenoble) -* Michael Wimmer (Leiden University) -* Anton R. Akhmerov (Harvard University, Leiden University) +* Michael Wimmer (TU Delft) +* Anton R. Akhmerov (TU Delft) * Xavier Waintal (SPSMS-INAC-CEA Grenoble) The authors can be reached at authors@kwant-project.org. diff --git a/CITING b/CITING index d8727eb25115f19cd3807fec14fd742a56eebc0e..22bcc553aaf95dcd04cb047c75cf6f0f6bf42c11 100644 --- a/CITING +++ b/CITING @@ -1,28 +1,38 @@ -========================== -Suggested acknowledgements -========================== +============ +Citing Kwant +============ We provide Kwant as free software under a :doc:`BSD license <license>` as a -service to the physics community. If you have used Kwant for work that has lead -to a scientific publication, please mention this explicitly in the text body. -In addition, we ask you to cite the main paper that introduces Kwant: +service to the physics community. If you have used Kwant for work that has +lead to a scientific publication, please mention the fact that you used it +explicitly in the text body. For example, you may add - The reference is provided at the `Kwant website - <http://kwant-project.org/paper>`_. + *the numerical calculations were performed using the Kwant code* + +to the description of your numerical calculations. In addition, we ask you to +cite the main paper that introduces Kwant: + + C. W. Groth, M. Wimmer, A. R. Akhmerov, X. Waintal, + *Kwant: a software package for quantum transport*, + `New J. Phys. 16, 063065 (2014) + <http://iopscience.iop.org/1367-2630/16/6/063065/article>`_. + + +Other references we ask you to consider +--------------------------------------- If you have profited from the quantum transport functionality of Kwant, please also cite the upcoming paper that describes the relevant algorithms. The -reference will be added to this document later, and will also be available at -`<http://kwant-project.org/citing>`_. +reference will also be added here once it is available. Kwant owes much of its current performance to the use of the `MUMPS <http://graal.ens-lyon.fr/MUMPS/>`_ library for solving systems of sparse linear equations. If you have done high-performance calculations, we suggest citing P. R. Amestoy, I. S. Duff, J. S. Koster, J. Y. L’Excellent, SIAM. J. Matrix - Anal. & Appl. **23** (1), 15 (2001). + Anal. & Appl. 23 (1), 15 (2001). Finally, if you use the routine for generation of circular ensembles of random matrices, please cite - \F. Mezzadri, Notices Am. Math. Soc. **54**, 592 (2007). + \F. Mezzadri, Notices Am. Math. Soc. 54, 592 (2007). diff --git a/doc/source/pre/whatsnew/1.0.rst b/doc/source/pre/whatsnew/1.0.rst index 7bbcb32ded1b990728682db17ff88e0ffa8c0535..ed775f1e5ead756c16f6b4907cfc89861d84eeb6 100644 --- a/doc/source/pre/whatsnew/1.0.rst +++ b/doc/source/pre/whatsnew/1.0.rst @@ -1,8 +1,11 @@ What's new in Kwant 1.0 ======================= -This article explains the user-visible changes in Kwant 1.0, released on 9 -September 2013. +This article explains the new features in Kwant 1.0 compared to Kwant 0.2. +Kwant 1.0 was released on 9 September 2013. Please consult the project's +version control system for the `full list of changes leading to Kwant 1.0.1 +<http://git.kwant-project.org/kwant/log/?h=v1.0.1>`_, the most recent 1.0 +series bugfix release. Lattice and shape improvements diff --git a/kwant/linalg/mumps.py b/kwant/linalg/mumps.py index f6fa3844c1396627b35dcf15154b8741763f3a1c..a30f38b05ce7aa4a5e22863921840ee41cfcb15b 100644 --- a/kwant/linalg/mumps.py +++ b/kwant/linalg/mumps.py @@ -156,7 +156,7 @@ class MUMPSContext(object): Solving a small system of equations. >>> import scipy.sparse as sp - >>> sp.coo_matrix([[1.,0],[0,2.]]) + >>> a = sp.coo_matrix([[1.,0],[0,2.]], dtype=complex) >>> ctx = kwant.linalg.mumps.MUMPSContext() >>> ctx.factor(a) >>> ctx.solve([1., 1.]) diff --git a/kwant/plotter.py b/kwant/plotter.py index e53cf0681d46eac97da9d1c7b84aa626f4665b88..87c534526a6886abeeb353557b06b9dbd733044a 100644 --- a/kwant/plotter.py +++ b/kwant/plotter.py @@ -1029,7 +1029,7 @@ def plot(sys, num_lead_cells=2, unit='nn', Linewidth of the lead symbols. lead_hop_lw : number or `None` Linewidth of the lead hoppings. - cmap : `matplotlib` color map or a tuple of two color maps or `None` + cmap : `matplotlib` color map or a sequence of two color maps or `None` The color map used for sites and optionally hoppings. pos_transform : function or `None` Transformation to be applied to the site position. @@ -1257,11 +1257,12 @@ def plot(sys, num_lead_cells=2, unit='nn', lead_hop_lw = (hop_lw if not isarray(hop_lw) else defaults['hop_lw'][dim]) - if isinstance(cmap, tuple): - hop_cmap = cmap[1] - cmap = cmap[0] - else: - hop_cmap = None + hop_cmap = None + if not isinstance(cmap, basestring): + try: + cmap, hop_cmap = cmap + except TypeError: + pass # make a new figure unless axes specified if not ax: diff --git a/kwant/solvers/common.py b/kwant/solvers/common.py index f25fbe3486b7517b6ba91eff1cdb8cb4964a7cc0..c1ddc9c079699a7686710acbb6e2bd6ed0eaf59a 100644 --- a/kwant/solvers/common.py +++ b/kwant/solvers/common.py @@ -468,7 +468,7 @@ class SparseSolver(object): "is not implemented yet.") for lead in sys.leads: - if not hasattr(lead, 'modes'): + if not hasattr(lead, 'modes') and hasattr(lead, 'selfenergy'): # TODO: fix this raise NotImplementedError("ldos for leads with only " "self-energy is not implemented yet.") diff --git a/kwant/solvers/tests/_test_sparse.py b/kwant/solvers/tests/_test_sparse.py index e3d2e1e2a7a6038d907210c5b61c0e84cd8f66ae..737c720d58122792a5edd6808151d7d764b25981 100644 --- a/kwant/solvers/tests/_test_sparse.py +++ b/kwant/solvers/tests/_test_sparse.py @@ -356,7 +356,7 @@ def test_selfenergy_reflection(greens_function, smatrix): fsys = system.finalized() for sys in (fsys.precalculate(what='selfenergy'), fsys.precalculate(what='all')): - sol = greens_function(fsys, 0, (), [0], [0]) + sol = greens_function(sys, 0, (), [0], [0]) assert_almost_equal(sol.transmission(0,0), t.transmission(0,0)) assert_raises(ValueError, greens_function, fsys.precalculate(what='modes'), 0, (), [0], [0]) diff --git a/kwant/system.py b/kwant/system.py index caa254029e98ac34e224f0c457b5c3cee11d97ad..3c98295cdc0826dc834f66ff09ac4596066fd318 100644 --- a/kwant/system.py +++ b/kwant/system.py @@ -73,7 +73,7 @@ class FiniteSystem(System): For lead ``n``, the method leads[n].selfenergy must return a square matrix whose size is ``sum(len(self.hamiltonian(site, site)) for site in self.lead_interfaces[n])``. The output of ``leads[n].modes`` has to be a - tuple of `~kwant.physics.PropatatingModes, ~kwant.physics.StabilizedModes`. + tuple of `~kwant.physics.PropagatingModes, ~kwant.physics.StabilizedModes`. Often, the elements of `leads` will be instances of `InfiniteSystem`. If this is the case for lead ``n``, the sites ``lead_interfaces[n]`` match