Structure of the QDYN library¶
The library is divided into modules which are organized in five hierarchical layers:
Utilities: I/O, basic mathematics, unit conversion, config file parsing, etc. Indicated in yellow in the above graph.
Data objects: Methods to manipulate and work with the data structures that describe the physics of the problem (operators, pulses, wave functions, density matrices). Indicated in orange.
Static properties: Numerical routines for non-time-dependent problems, such as diagonalization or calculation of scattering lengths. Indicated in green.
Dynamical properties: Propagation algorithms for wave functions and density matrices. These are collected in a single interface through the
prop
module. Indicated in blue.OCT: Optimal control algorithms, accessible through a common interface in the
oct
module. Indicated in red.
The data structures themselves are defined in the def
module,
alongside a large number of auto-generated routines for debugging,
dumping and reading in the data structures. The global
module
defines constants such as string lengths, as well as a few basic
routines. These modules are referenced in every other module. The
qdyn
module is the central module for the user. It exports all
relevant symbols from all of the other modules. Thus, in most instances
use qdyn
will be sufficient for a user program.