Fig 1.
(a) Potentials: Particles are subject to position-dependent external potentials, such as boundary potentials or external fields and interaction potentials involving two, three or four particles. As in MD force fields, bonded potentials are defined within particle groups called “topologies” whose bonding structure is defined by a connectivity graph. (b) Reactions: Most reactions are unimolecular or bimolecular particle reactions. Topology reactions act on the connectivity graphs and particle types and therefore change the particle bonding structure. (c) Simulation box: The simulation box with edge lengths ℓx, ℓy, and ℓz. It can optionally be periodic in a combination of x, y, and z directions, applying the minimum image convention.
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.
Fig 3.
Average computation time per particle and integration step for the benchmark system of Sec. Performance using a machine with an Intel Core i7 6850K processor, i.e., six physical cores at 3.8GHz, and 32GB DDR4 RAM at 2.4GHz (dual channel). The number of particles is varied, but the particle density is kept constant. The sequential kernel (orange) has a constant per-particle CPU cost independent of the particle number. For large particle numbers, the parallel kernels are a certain factor faster (see scaling plot Fig 4). For small particle numbers of a few hundred the sequential kernel is more efficient. ReaDDy 2 is significantly faster and scales much better than the previous Java-based ReaDDy 1 [38].
Fig 4.
Parallel speedup and efficiency of the benchmark system of Sec. Performance as a function of the number of cores using the machine described in Fig 3. (a) Speedup with different numbers of cores compared to one core. Optimally one would like to have a speedup that behaves like the identity (black dashed line). (b) Efficiency is the speedup divided by the number of threads, i.e., how efficiently the available cores were used.
Table 1.
Number of steps per day for the benchmark system.
Fig 5.
Reaction kinetics and detailed balance.
Concentration time series of a the reaction-diffusion system introduced in Sec. Performance with the reversible reaction A + B ⇋ C. Compared are cases with and without harmonic repulsion (6). Additionally we compare two different reaction mechanisms, the Doi reaction scheme and the detailed balance (iPRD-DB) method for reversible reactions. (a) 30% volume occupation and no interaction potentials. (b) 30% volume occupation with harmonic repulsion between all particles. (c) 60% volume occupation and no interaction potentials. (d) 60% volume occupation with harmonic repulsion between all particles.
Fig 6.
Diffusion in crowded environments.
Mean squared displacement as a function of time. Multiple particles are diffusing with intrinsic diffusion coefficient D0 in a cubic box with harmonically repelling walls. Triangles were obtained by using the Yukawa repulsion potential (10) between all particles. The dashed line represents an effective diffusion coefficient from the literature [66] for the same Yukawa repulsion potential.
Table 2.
Thermodynamic equilibrium properties of a Lennard–Jones colloidal fluid in a (N, V, T) ensemble.
Fig 7.
Mean-squared end-to-end distance of worm-like chains.
The theoretical mean-squared end-to-end distance of worm-like chains as a function of number of beads (11) is compared to simulation data obtained from linear chains of beads as described in Sec. Topologies. Error bars depict errors over the mean from multiple measurements.
Fig 8.
Illustrative simulation of polymer assembly/disassembly using topology reactions. (a) Sketch of the involved topology reactions. Association: When two ends of different topologies come closer than R, there is a rate λ1 that an edge is formed. Dissociation: The inverse of association with a rate λ2 and a randomly drawn edge that is removed. (b) The number of beads in a polymer 〈n(t)〉 over time averaged over 15 realizations. (c) Two representative particle configurations showing the initial state and the end state at time tbegin and tend, respectively.
Fig 9.
Equilibrium constant transition from dilute to dense systems.
The equilibrium constant K is obtained by simulation for different choices of the number of particles n = (NA + NB)/2 + NC which corresponds to a density due to constant volume of the simulation box and compared to an analytically obtained equilibrium constant of a dilute system (dashed line). The number of particles n remains constant during the course of a simulation. The shaded areas are standard deviations from the recorded data.