This is a C++ library to numerically solve the Schroedinger equation for
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.
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 https://github.com/juanjosegarciaripoll/tensor.git
- 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 http://www.boost.org
- 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 https://github.com/headmyshoulder/odeint-v2.git
* googlemock 1.7.0 for compiling the tests
(also googletest, but this is included in googlemock)
- get it from http://code.google.com/p/googletest/
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.).