Constrained hyperbolic divergence cleaning in smoothed particle
  magnetohydrodynamics with variable cleaning speeds
  We present an updated constrained hyperbolic/parabolic divergence cleaning
algorithm for smoothed particle magnetohydrodynamics (SPMHD) that remains
conservative with wave cleaning speeds which vary in space and time. This is
accomplished by evolving the quantity $\psi / c_h$ instead of $\psi$. Doing so
allows each particle to carry an individual wave cleaning speed, $c_h$, that
can evolve in time without needing an explicit prescription for how it should
evolve, preventing circumstances which we demonstrate could lead to runaway
energy growth related to variable wave cleaning speeds. This modification
requires only a minor adjustment to the cleaning equations and is trivial to
adopt in existing codes. Finally, we demonstrate that our constrained
hyperbolic/parabolic divergence cleaning algorithm, run for a large number of
iterations, can reduce the divergence of the field to an arbitrarily small
value, achieving $\nabla \cdot B=0$ to machine precision.
