Skip to content
Snippets Groups Projects
Forked from kwant / kwant
1748 commits behind the upstream repository.
TODO.txt 1.97 KiB
Roughly in order of importance.                                     -*-org-*-

* Define a few benchmarks and check performance.  Optimize the code.

* Write a fast tiny array module.
  This should speed up many operations in kwant.

* Wrap mumps, umfpack, or some other sparse linear algebra library with Cython.
  Use it directly in sparse solver.  This will allow to fine-tune the solution
  of sparse systems.

* Benchmark mumps and check whether nested dissection would be useful.
  If yes, implement it.

* Provide support for plotting LDOS and other functions
  of the site in the system.  Make a tutorial example for this.

* Allow attaching lead with further than nearest slice hoppings.
  The most easy way to do this is increasing the period of the lead.
  Alternatively, generalize modes and InfiniteSystem format.

* Optionally show site coordinates when plotting a system.

* Add support for easily adding magnetic field to a system.

* Generalize InfiniteSystem to multiple directions.

* Add support for optimization of lead fundamental domains.

* Write a module to generate "functional" random numbers.
  This is a good starting point:
  http://www.cs.umbc.edu/~olano/papers/GPUTEA.pdf

* Incorprorate efficient correlated disorder using scipy.spatial.

* Write an RGF/SM solver which uses graph/slicer.

* Implement the C solver interface.

* Wrap TB_SIM as a solver.

* Implement time domain propagation solver, or coordinate with Kruckl, who
  wanted to implement it.

* Implement models module, incorporate units into it.

* Improve handling of systems with important additional degrees of freedom.
  i.e. spin, or electron-hole (currently two leads need to be introduced per
  actual lead, in order to calculate Andreev transport).

* Implement automatic search for discrete symmetries of a tight binding model
  and of conservation laws.

* Revisit Symmetry, make it more general (allow for description of other
  discrete symmetries, potentially also symmetries which change builder
  values).