  A novel parallel simulation algorithm on the GPU, implemented in CUDA and
C++, is presented for the simulation of Brownian particles that display
excluded volume repulsion and interact with long and short range forces. When
an explicit Euler-Maruyama integration step is performed to take into account
the pairwise forces and Brownian motion, particle overlaps can appear. The
excluded volume property brings up the need for correcting these overlaps as
they happen, since predicting them is not feasible due to the random
displacement of Brownian particles. The proposed solution handles, at each time
step, a Delaunay triangulation of the particle positions because it allows us
to efficiently solve overlaps between particles by checking just their
neighborhood. The algorithm starts by generating a Delaunay triangulation of
the particle initial positions on CPU, but after that the triangulation is
always kept on GPU memory. We used a parallel edge-flip implementation to keep
the triangulation updated during each time step, checking previously that the
triangulation was not rendered invalid due to the particle displacements. The
algorithm is validated with two models of active colloidal particles. Upon
testing the parallel implementation of a long range forces simulation, the
results show a performance improvement of up to two orders of magnitude when
compared to the previously existing sequential solution.
