• Dampers compute the Newton damping parameter $$$0 < \alpha \leq 1$$$:

Regular Newton

$$$$\begin{aligned} \boldsymbol{J} \delta \boldsymbol{u}_{n+1} &= -\boldsymbol{R}\left(\boldsymbol{u}_n\right) \\ \boldsymbol{u}_{n+1} &= \boldsymbol{u}_n + \delta \boldsymbol{u}_{n+1} \end{aligned}$$$$

Damped Newton

$$$$\begin{aligned} \boldsymbol{J} \delta \boldsymbol{u}_{n+1} &= -\boldsymbol{R}\left(\boldsymbol{u}_n\right) \\ \boldsymbol{u}_{n+1} &= \boldsymbol{u}_n + \alpha\delta \boldsymbol{u}_{n+1} \end{aligned}$$$$

  • A Damper is created by inheriting from Damper and overriding computeQpDamping().
  • computeQpDamping() computes a damping parameter at each quadrature point throughout the mesh.
    • The minimum damping parameter computed is then actually used.
  • Dampers have access to variable values, gradients, material properties and functions just like a kernel.
    • In addition they have access to the Newton step vector.


Example 19