libMobility: GPU Solvers for Hydrodynamic Mobility
libMobility is a GPU-based software library implemented in C++ and usable from Python via bindings. It offers several solvers to compute the action of the hydrodynamic mobility (at the RPY/FCM level) of a group of particles (in different geometries and boundary conditions) with forces and torques acting on them.
Functionality
Given a group of forces, \(\boldsymbol{F}\), and torques, \(\boldsymbol{T}\), acting on a group of positions, \(\boldsymbol{X}\) and directions \(\boldsymbol{\theta}\) representing the state of a group of spherical particles, the libMobility solvers can compute:
Where:
\(d\boldsymbol{X}\) are the linear displacements
\(d\boldsymbol{\theta}\) are the angular displacements
\(\boldsymbol{\mathcal{M}}\) is the grand mobility tensor
\(\boldsymbol{F}\) are the forces
\(\boldsymbol{T}\) are the torques
\(\text{prefactor}\) is a user-provided prefactor
\(d\boldsymbol{W}\) is a collection of i.i.d Weiner processes
\(T\) is the temperature
\(k_B\) is the Boltzmann constant
\(\boldsymbol{\partial}_\boldsymbol{X}\cdot\) is the divergence with respect to the positions
Solver Capabilities
Each solver in libMobility allows computation of:
The deterministic term
The stochastic term
The thermal drift term
All terms simultaneously
Interfaces
For each solver, a Python interface is provided.
All solvers have the same interface, although some input parameters might change (e.g., an open boundaries solver does not accept a box size as a parameter).