Tree [8ca321] master v0.1.1 /

File Date Author Commit
 Demos 2016-05-28 Ulf Lorenz Ulf Lorenz [033558] changed initialization syntax in demos to reduc...
 deploy 2015-07-19 Ulf Lorenz Ulf Lorenz [5e0535] Task 51: Implemented working prototype for Cheb...
 doc 2015-05-31 Ulf Lorenz Ulf Lorenz [cc8f71] Task 57: Converted GaussianState into a functor
 include 2016-04-11 Ulf Lorenz Ulf Lorenz [9615bd] Task52: added displacement parameter to harmoni...
 src 2016-04-11 Ulf Lorenz Ulf Lorenz [9615bd] Task52: added displacement parameter to harmoni...
 test 2016-05-18 Ulf Lorenz Ulf Lorenz [3064f7] cleaned up acceptance tests a bit
 AUTHORS 2016-05-20 Ulf Lorenz Ulf Lorenz [c52249] updated misc files for release
 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 2016-05-07 Ulf Lorenz Ulf Lorenz [98636b] Added a target to build all tests into a single...
 Makefile.config.template 2016-06-01 Ulf Lorenz Ulf Lorenz [903d8f] another minor last minute change
 Makefile.files 2016-05-07 Ulf Lorenz Ulf Lorenz [98636b] Added a target to build all tests into a single...
 NEWS 2016-06-02 Ulf Lorenz Ulf Lorenz [8ca321] last cleanup of the NEWS file before the release
 README 2016-06-01 Ulf Lorenz Ulf Lorenz [ca6451] last updates to information files

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;
  switching can be done with few lines of code
- multiple coupled equations can be solved
- Lindblad and Redfield dissipation is implemented
- only equally-spaced grids / plane wave expansions are implemented
- operators are defined for harmonic and Morse oscillators
- Various ODE propagators as well as the Chebychev polynomial method 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 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.56
* googlemock 1.7.0 for compiling the tests
  (also googletest, but this is included in googlemock)
    - get it from
* doxygen if you want to build the documentation ("make build-doc") 

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 demos under Demos/ and the
acceptance tests under test/acceptance. These are explicitly meant as templates
for real calculations (as well as complex tests in the latter case to check
that the code is correct). Especially for the demos, also have a look at the
Makefiles, these can be used for your calculations with minimal adjustments
(mainly WAVEPACKET_TOPDIR has to be set to the proper path)

Furthermore, there are some basic tutorials on the wiki
You can also build the documentation using "make build-doc". This requires
doxygen, and constructs a documentation in the directory ./built-doc. The
constructed documentation details the available classes grouped into modules
(operators, grids etc.). If you do not build the doxygen documentation, you can
also find the information as comments in the header files.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks