3. Software Description

3.1. Software Architecture

The package consists of the Python and C++ layers. The former is represented by the “libra_py.dynamics.heom” module and implements the high-level functions of immediate importance to user. The latter is represented by the “dyn/heom” library (libheom when compiled) in the core of the Libra software and implements various functions that are used to construct the algorithms at the higher level, including in the “libra_py.dynamics.heom” module (Figure 2). These functions are implemented in C++, although most of them are exposed to Python via the Boost.Python library.37 They may be of higher interest to the methodology developers.