Abstract C++QED is a versatile framework for simulating open quantum dynamics. It allows to build arbitrarily complex quantum systems from elementary free subsystems and interactions, and simulate their time evolution with the available time-evolution drivers. Through this framework, we introduce a design which should be generic for high-level representations of composite quantum systems. It relies heavily on the object-oriented and generic programming paradigms on one hand, and on the other hand, compile-time algorithms, in particular C++ template-metaprogramming techniques. The core of the design is the data structure which represents the state vectors of composite quantum systems. This data structure models the multi-array concept. The use of template metaprogramming is not only crucial to the design, but with its use all computations pertaining to the layout of the simulated system can be shifted to compile time, hence cutting on runtime. Program summary Program title: C++QED Catalogue identifier: AELU_v1_0 Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AELU_v1_0.html Program obtainable from: CPC Program Library, Queenʼs University, Belfast, N. Ireland Licensing provisions: http://cpc.cs.qub.ac.uk/licence/aelu_v1_0.html . The C++QED package contains other software packages, Blitz, Boost and FLENS, all of which may be distributed freely but have individual license requirements. Please see individual packages for license conditions. No. of lines in distributed program, including test data, etc.: 597 974 No. of bytes in distributed program, including test data, etc.: 4 874 839 Distribution format: tar.gz Programming language: C++ Computer: i386–i686, x86_64 Operating system: In principle cross-platform, as yet tested only on UNIX-like systems (including Mac OS X). RAM: The framework itself takes about 60 MB, which is fully shared. The additional memory taken by the program which defines the actual physical system (script) is typically less than 1 MB. The memory storing the actual data scales with the system dimension for state-vector manipulations, and the square of the dimension for density-operator manipulations. This might easily be GBs, and often the memory of the machine limits the size of the simulated system. Classification: 4.3, 4.13, 6.2, 20 External routines: Boost C++ libraries ( http://www.boost.org/ ), GNU Scientific Library ( http://www.gnu.org/software/gsl/ ), Blitz++ ( http://www.oonumerics.org/blitz/ ), Linear Algebra Package – Flexible Library for Efficient Numerical Solutions ( http://flens.sourceforge.net/ ). Nature of problem: Definition of (open) composite quantum systems out of elementary building blocks [1]. Manipulation of such systems, with emphasis on dynamical simulations such as Master-equation evolution [2] and Monte Carlo wave-function simulation [3]. Solution method: Master equation, Monte Carlo wave-function method. Restrictions: Total dimensionality of the system. Master equation – few thousands. Monte Carlo wave-function trajectory – several millions. Unusual features: Because of the heavy use of compile-time algorithms, compilation of programs written in the framework may take a long time and much memory (up to several GBs). Additional comments: The framework is not a program, but provides and implements an application-programming interface for developing simulations in the indicated problem domain. Supplementary information: http://cppqed.sourceforge.net/ . Running time: Depending on the magnitude of the problem, can vary from a few seconds to weeks. References: [1] A. Vukics, H. Ritsch, C++QED: an object-oriented framework for wave-function simulations of cavity QED systems, Eur. Phys. J. D 44 (2007) 585–599. [2] H.J. Carmichael, An Open Systems Approach to Quantum Optics, Springer, 1993. [3] J. Dalibard, Y. Castin, K. Molmer, Wave-function approach to dissipative processes in quantum optics, Phys. Rev. Lett. 68 (1992) 580.
[1]
H. Ritsch,et al.
Microscopic dynamics of ultracold particles in a ring-cavity optical lattice
,
2010
.
[2]
Todd A. Brun,et al.
A C++ library using quantum trajectories to solve quantum master equations
,
1997
.
[3]
N. Gisin,et al.
The quantum-state diffusion model applied to open systems
,
1992
.
[4]
Klaus Mølmer,et al.
A Monte Carlo wave function method in quantum optics
,
1993,
Optical Society of America Annual Meeting.
[5]
D. Nagy,et al.
Nonlinear quantum dynamics of two BEC modes dispersively coupled by an
optical cavity
,
2009
.
[6]
Zoller,et al.
Monte Carlo simulation of the atomic master equation for spontaneous emission.
,
1992,
Physical review. A, Atomic, molecular, and optical physics.
[7]
Sze M. Tan,et al.
A computational toolbox for quantum and atomic optics
,
1999
.
[8]
P. Knight,et al.
The Quantum jump approach to dissipative dynamics in quantum optics
,
1997,
quant-ph/9702007.
[9]
H. Ritsch,et al.
Ultracold atoms in optical lattices generated by quantized light fields
,
2007,
0710.4220.
[10]
H. Ritsch,et al.
C++QED: an object-oriented framework for wave-function simulations of cavity QED systems
,
2007
.
[11]
H. Carmichael.
Spectrum of squeezing and photocurrent shot noise: a normally ordered treatment
,
1987
.
[12]
R. Blatt,et al.
Deterministic single-photon source from a single ion
,
2009,
0905.2885.
[13]
H. Carmichael.
An open systems approach to quantum optics
,
1993
.
[14]
David Abrahams,et al.
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ In-Depth Series)
,
2004
.
[15]
Conditional evolution in single-atom cavity QED
,
2001,
quant-ph/0104128.
[16]
Lajos Diósi,et al.
Stochastic pure state representation for open quantum systems
,
1986,
1609.09636.
[17]
K. Mølmer,et al.
Wave-function approach to dissipative processes in quantum optics.
,
1992,
Physical review letters.
[18]
Microscopic physics of quantum self-organization of optical lattices in cavities
,
2007,
quant-ph/0703221.
[19]
H. Ritsch,et al.
Cavity nonlinear optics with few photons and ultracold quantum particles
,
2008,
0802.2402.