ReaDDy 2: Fast and flexible software framework for interacting-particle reaction dynamics
Fig 2
(a) Python user interface: Provides a Python binding to the “C++ user interface” with some additional convenience functionality. The user creates a “readdy.ReactionDiffusionSystem” and defines particle species, reactions, and potentials. From a configured system, a “readdy.Simulation” object is generated, which can be used to run a simulation of the system given an initial placement of particles. (b) C++ core library: The core library serves as an adapter between the actual implementation of the algorithms in a compute kernel and the user interface. (c) Compute kernel implementation: Implements the compute kernel interface and contains the core simulation algorithms. Different compute kernel implementations support different hard- or software environments, such as serial and parallel CPU implementations. The compute kernel is chosen when the “readdy.Simulation” object is generated and then linked dynamically in order to provide optimal implementations for different computing environments under the same user interface.