PSCF v1.4.0
Brownian Dynamics

Overview (Prev)         Monte Carlo (Next)        

A Brownian dynamics (BD) algorithm for a particle based simulation is usually based on discretization of a stochastic differential equation that generates diffusive dynamics. In the context of a field theoretic simulation, however, there is no natural way to define dynamics or units of time, since the BD algorithm is simply being used as a way to sample an equilibrium distribution. The description of BD step algorithms used to define parameters in PSCF is thus based on units in which the fictitious "time" is thus measured in units of BD steps, while energy is measured in thermal units, in which \( kT = 1 \). The magnitude of changes in the exchange field(s) per time step is controlled by a parameter that is denoted by the label "mobility" in the parameter file, and denoted by the symbol \( \gamma \) in these notes.

Overview

As an example, consider the explicit Euler BD step algorithm for a standard AB system. This algorithm yields a change \( \Delta W_{-}({\bf r}) \) per time step in the exchange field \( W_{-}({\bf r}) \) at grid point \( {\bf r} \) that is given by

\[ \Delta W_{-}({\bf r}) = - \gamma \frac{\delta H}{\delta W_{-}({\bf r})} + g({\bf r}) \]

where \( \gamma \) is the BD mobility parameter, \( g({\bf r}) \) is a random field displacement, and

\[ \frac{\delta H}{\delta W_{-}({\bf r})} = \frac{1}{v} \left [ \frac{2 W_{-}({\bf r})}{\chi_{b}} - \Phi_{-}({\bf r}) \right ] \quad. \]

The random displacement \( g({\bf r}) \) is chosen independently at each node of the computational mesh and each BD step from a Gaussian distribution with a vanishing mean value, \( \overline{g({\bf r})} = 0\), and with a variance

\[ \overline{g^{2}({\bf r})} = \gamma \Delta V \quad. \]

Here, \( \Delta V \) is the volume per node (or grid point) of the computational mesh, given by \( \Delta V = V/G \), where \( V \) is the total system volume and \( G \) is the total number of nodes in the mesh. Other authors have sometimes referred to what we call a "mobility" as a time step, sometimes indicated by a symbol such \( \Delta t \) or \( \delta t \).

After this random in \( W_{-} \), the chosen compressor algorithm is applied to adjust the pressure-like field \($ W_{+} \) until the partial saddle-point condition is again satisfied, completing the BD move.

The meaning of the mobility parameter in other BD step algorithms is analogous to its meaning in the explicit Euler algorithm described above: The mobility always appears as a prefactor of the "force" (or functional derivative) \( -\delta H/\delta W_{-}({\bf r}) \) in expressions for the changes in \( W_{-}({\bf r}) \) over a single time step. A mobility parameter is the only required parameter for any of the available BD step algorithms.

Algorithms

PSCF currently allows users to choose from among three BD step algorithms, which are labelled below by the names of the C++ classes that implement them:

  • LMBdStep : A "Leimkuhler-Matthews" (LM) BD step algorithm
  • PredCorrBdStep: A predictor corrector algorithm,
  • ExplicitBdStep : An explicit Euler algorithm like that described above,

More details about each of these algorithms can be obtained by clicking on the associated link.

We recommend the Leimkuhler-Matthews (LM) algorithm for general use in all BD simulations. The LM step algorithm is found to provide much more accurate results than the competing predictor-corrector algorithm, allowing the use of larger time steps. The explicit Euler algorithm is signficantly less accurate than the other two alternatives.


Overview (Prev)         Algorithms (Up)         Monte Carlo (Next)