C++QEDv2: The multi-array concept and compile-time algorithms in the definition of composite quantum systems

Research output: Contribution to journalArticle

12 Citations (Scopus)


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.

Original languageEnglish
Pages (from-to)1381-1396
Number of pages16
JournalComputer Physics Communications
Issue number6
Publication statusPublished - Jun 1 2012



  • Cavity quantum electrodynamics
  • Compile-time algorithms
  • Composite quantum systems
  • Master equation
  • Multi-array
  • Open quantum systems
  • Quantum optics
  • Quantum trajectories

ASJC Scopus subject areas

  • Hardware and Architecture
  • Physics and Astronomy(all)

Cite this