C++QED is an application-programming framework for simulating open quantum dynamics in general. It has demonstrated the ability to simulate full Master equation of up to several thousand, and quantum trajectories of up to several hundred thousand dimensions.
The basic idea is to allow users to build arbitrarily complex interacting quantum systems out of free subsystems and interactions (elements), and simulate their time evolution with a number of available time-evolution drivers.
C++QEDv2 specifies a small grammar to describe composite quantum systems. Apart from providing a number of elements out of the box, there are tools which facilitate the implementation of new elements. These are being added continuously, as the need arises.
The principal concept of the design of C++QEDv2 is that all information available at compile time should be processed as such, with the help of TMP. The framework is very sensitive to performance both in computer resources and coding/design.
Excerpts from the referee reviews of the CPC paper about the framework (Computer Physics Communications Volume 183, Issue 6, June 2012, Pages 1381–1396): „The framework is well designed, written and documented. It has demonstrated its usefulness in several publications in the field of quantum optics. In this field, computer simulations are frequently employed to understand physical systems but these simulations and corresponding codes are typically not overly complicated and extensive. Therefore, many researchers do not dedicate enough time to leave behind or publish a reusable and extensible simulation framework. The program presented in this paper can fill the gap and is a valuable contribution. It could well become an important and widely used tool if only C++ template metaprogramming was not so difficult to read and use by beginners.” „I believe that this framework will be useful, especially to researchers in the field of quantum optics, and that it demonstrates modern and efficient programming practices well.”