C++QEDv2: The multi-array concept and compile-time algorithms in the definition of composite quantum systems
详细信息查看全文 | 推荐本文 |
摘要
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:

Program obtainable from: CPC Program Library, Queen始s University, Belfast, N. Ireland

Licensing provisions: . 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鈥?74

No. of bytes in distributed program, including test data, etc.: 4鈥?74鈥?39

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 (), GNU Scientific Library (), Blitz++ (), Linear Algebra Package - Flexible Library for Efficient Numerical Solutions ().

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: .

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.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700