Tree [b496ee] master /

File Date Author Commit
Demos 2015-02-04 Ulf Lorenz Ulf Lorenz [a628b7] Task 54: Replaced io_exception by IOException
deploy 2013-09-06 Ulf Lorenz Ulf Lorenz [8659fb] Cleanup: centralized the Makefile
doc 2014-08-27 Ulf Lorenz Ulf Lorenz [e121cd] Task 40: started work on the actual Redfield Bu...
include 2015-06-23 Ulf Lorenz Ulf Lorenz [239e8d] Task 51: fixed Product problem and fine-tuning ...
src 2015-06-22 Ulf Lorenz Ulf Lorenz [10cc54] Task 51: continued with integration test; fixed...
test 2015-06-25 Ulf Lorenz Ulf Lorenz [b496ee] Simplified access to mock objects
CONTRIBUTORS 2013-09-16 Ulf Lorenz Ulf Lorenz [135bb4] added a contributor and changelog file. A bit l...
GPL.txt 2013-03-22 Ulf Lorenz Ulf Lorenz [9f157e] added license files
LICENSE 2014-11-16 Ulf Lorenz Ulf Lorenz [d8a6c7] Finishing touches for the release:
Makefile 2014-07-13 Ulf Lorenz Ulf Lorenz [ba365a] Task 38: Now test summaries are also output as xml
Makefile.config.template 2014-07-30 Ulf Ulf [75d6dc] updated requirements and default settings
Makefile.files 2015-06-21 Ulf Lorenz Ulf Lorenz [b6be42] Task 51: added additional tests for the spectra...
NEWS 2014-11-16 Ulf Lorenz Ulf Lorenz [d8a6c7] Finishing touches for the release:
README 2014-11-16 Ulf Lorenz Ulf Lorenz [d8a6c7] Finishing touches for the release:

Read Me


This is a C++ library to numerically solve the Schroedinger equation for
distinguishable particles.

The code is under the GNU General Public License; see the accompagnying license
file for the lawyer text.

The current status in brief:
- you can solve the Schroedinger and the Liouville-von-Neumann equations
- Lindblad and Redfield dissipation is implemented
- only equally-spaced grids / plane wave expansions are implemented
- operators are defined for harmonic and Morse oscillators
- Runge-Kutta and Bulirsch-Stoer propagators are implemented

Also, there is some optimization lacking for complex Hamiltonians etc.
Naturally, we plan to extend this in the nearer future.

System requirements

To be able to compile the code at all, you need the following:

* a compiler that implements the latest C++-11 standard.
  One of the later g++ (around version 4.7) or CLang++ version 3.2 should be fine.
* the tensor library that we use
    - clone it via git from
    - compile and install it (usual autoconf setup)
    - note that you will need to enable FFTW support, which also requires the fftw libraries
      (run the configure script with --with-fftw)
* The boost libraries from
    - You need at least boost version 1.52
* The odeint library; although this is part of boost, we use some features that
  will only become available in boost 1.55 or 1.56, so you need a separate copy.
    - get it from via git from
* googlemock 1.7.0 for compiling the tests
  (also googletest, but this is included in googlemock)
    - get it from

Compilation and getting started

To compile the code, copy the file "Makefile.config.template" to Makefile.config,
modify the settings in there, and type "make".
This will build the code and all tests, and run all tests.
To get a feeling for the code, have a look at the files in test/acceptance, these
are explicitly meant as templates for real calculations (as well as complex tests
to check that the code is correct)

You can build the documentation using "make build-doc". This requires doxygen, and
constructs a documentation in the directory ./built-doc.  There is currently no
tutorial or such, only the documentation of the single classes grouped into
various modules (operators, propagators etc.).