Forward flux sampling (FFS) is one of a number of emerging techniques which helps to access rare events via computer simulation. Here, a rare event is assumed to refer to an event driven by random fluctuations in a physical, chemical, or biological system. Examples include the nucleation of crystals, and protein conformational changes. Any attempt to study a rare event by simulation may clearly be hampered or rendered inefficient by an inability to achieve any significant number of events in a reasonable computational time.
FFS attempts to remedy this problem by using an ensemble of simulations, and then concentrating attention on only those simulations which make progress towards some desired result. The ensemble of simulation trajectories can then be analysed to extract useful information such as the probability of a rare event, the likely transition path (or paths) from the initial to the final state, and so on.
FFS can be used in conjunction with any simulation type which includes a random component: e.g., Monte Carlo, molecular dynamics with a stochastic thermostat, Brownian dynamics, and so on. Here, we describe a framework which allows us to couple FFS calculations to different simulation types. As an example, we will illustrate its use in conjunction with a fluctuating hydrodynamic code (based on lattice Boltzmann) in which we attempt to capture the nucleation of structure in liquid crystals — an event we know to be difficult to observe in ‘brute-force’ calculations.
As a technique based on an ensemble of simulations, opportunity arises for parallelism at a number of different levels. We describe how we have dealt with this in the context of the lattice Boltzmann code. With the increase in many-core hardware of various flavours, the opportunity for hierarchical parallelism offered by techniques such as FFS may become more attractive in the future.