Fluctuation Compensator Solver Add-On ------------------------------------- Fluctuation Compensator is an optional PDE solver add-on introduced in v4.1.2 to account for Metropolis surface fluctuations in field solutions in both a feasible and sensible way. The algorithm is based on that which is described by Marée et. al [1]_ and imposes total mass conservation in all cellular domains and the medium over the spin flips of a Monte Carlo step. The algorithm does not impose advection by domain deformation, but rather homogeneously applies a correction factor in each subdomain to all field solutions of a solver such that the total amount of each simulated species in each subdomain is unchanged over all spin flips. The Fluctuation Compensator algorithm consists of the following three rules. 1. **Rule 1 (mass conservation)**: In each subdomain, the total amount of each species is unchanged over an arbitrary number of spin flips. 2. **Rule 2 (uniform correction)**: Corrections applied to values in each subdomain so to impose mass conservation are uniformly applied. 3. **Rule 3 (Neumann condition)**: The amount of species in the copying site of a spin flip are exactly copied to the site of the flip. .. note:: Fluctuation Compensator is supported in DiffusionSolverFE, ReactionDiffusionSolverFE and ReactionDiffusionSolverFVM. Exactly one Fluctuation Compensator can be attached to each supported solver instance. An attached Fluctuation Compensator performs corrections on *all* fields of the solver to which it is attached. A Fluctuation Compensator can be attached to a solver in CC3DML using the tag ```` at the level of field specification. For example, to attach a Fluctuation Compensator to a simple use-case with DiffusionSolverFE might look like the following. .. code-block:: xml Demos showing basic usage and comparison are available in ``Demos/SteppableDemos/FluctuationCompensator``. .. Note:: PDE solution field values can be modified outside of the solver routines without invalidating the correction factors of Fluctuation Compensators *so long as* they are notified that field values have been modified. The CompuCell3D library has a convenience method to do exactly this: ``updateFluctuationCompensators``. Call this method after modifying field values and before the next PDE solution step to refresh Fluctuation Compensators according to your changes. .. [1] Marée, Athanasius FM, Verônica A. Grieneisen, and Leah Edelstein-Keshet. "How cells integrate complex stimuli: the effect of feedback from phosphoinositides and cell shape on cell polarization and motility." PLoS Computational Biology 8.3 (2012).