template<class Scalar, class GridGeometry>
class Dumux::Particles::FokkerPlanck< Scalar, GridGeometry >
A cloud of particles, each particle associated with a given mass \(m_i\), is evolved such that the probability density function \(\rho(\mathbf{x}, t)\) of the particle position \( \mathbf{X}_t \) approximates the solution of the Fokker-Planck equation:
\[ \frac{\partial \rho}{\partial t} + \nabla \cdot (\boldsymbol{\mu} \rho + D \nabla \rho) = 0 \]
Particles are evolved with the Dumux::Particles::FokkerPlanck::run method, which updates each particles position \(\mathbf{X}_t\) with the Euler scheme:
\[ \Delta\mathbf{X}_t = \boldsymbol{\mu}(\mathbf{X}_t, t) \Delta t + \sqrt{2 D} \Delta \mathbf{W}_t \]
The particle density on the grid can be computed with the Dumux::Particles::FokkerPlanck::computeDensity method as
\[ \rho_E = \frac{1}{|E|} \sum_{i=1}^{N_E} m_i, \]
where \(|E|\) is the volume of the grid element \(E\) and \(m_i\) is the mass of the particle \(i\) in element \(E\).
The Fokker-Planck equation for particle positions is equivalent to the advection-diffusion equation for the particle density.
template<class Scalar , class GridGeometry >
- Parameters
-
Updates the particle position \(\mathbf{X}_t\) by
\[ \Delta\mathbf{X}_t = \boldsymbol{\mu}(\mathbf{X}_t, t) \Delta t + \sqrt{2 D} \Delta \mathbf{W}_t \]
where \(\boldsymbol{\mu}(\mathbf{X}_t, t)\) is the velocity field, \(D\) is the diffusion coefficient, and \(\Delta \mathbf{W}_t\) is a Wiener increment. Note that \(\Delta \mathbf{W}_t\) is normal-distributed with mean zero and variance \(\Delta t\): \(\Delta \mathbf{W}_t \sim \mathcal{N}(0, \Delta t)\).