The MOOSE phase field module supports adding consistent random noise terms to any PDE.
The challenge in finite element solves, which recompute the resildual and Jacobian terms multiple times per timestep, is to have the same noise field throughout a given timestep. Ideally the noise field should also be independent of the parallelization of the simulation.
The legacy LangevinNoise kernel supplies a stable noise field for a given timestep by initializing the random number stream with a seed that is a function of the timestep number at the beginning of every residual calculation. The Jacobian is independent of the noise field.
The ConservedLangevinNoise kernel uses a plugable user object that acts as the supplier for the random field. This system allows the generation of concentration conserving noise. This means the integral over the applied noise field is guaranteed to be zero. In phase field simulation this avoids a mass-conservation violating concentration drift. This kernel yields parallel reproducible results.
The available user objects that provide the noise field are
Here the Uniform stands for a uniform random number distribution, and the Normal stands for a Gaussian normal distribution. User objects with Masked in the name take a material property that is used as a spatially dependent multiplier for the noise field. This allows selective application of the noise in subregions of the sample (souch as grain boundaries) or a temperature dependent noise amplitude.