Warm starting the projected Gauss–Seidel algorithm for granular matter simulation


The effect on the convergence of warm starting the projected Gauss–Seidel solver for nonsmooth discrete element simulation of granular matter are investigated. It is found that the computational performance can be increased by a factor 2–5.

This is a preview of subscription content, log in to check access.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19


  1. 1.

    Performance measurement is made on a desktop computer with Intel(R) Core(TM) Xeon X5690, 3.46 GHz, 48 GB RAM on a Linux 64 bit system.


  1. 1.

    Moreau JJ (1999) Numerical aspects of the sweeping process. Comput Methods Appl Mech Eng 177:329–349

    Article  MathSciNet  MATH  Google Scholar 

  2. 2.

    Jean M (1999) The non-smooth contact dynamics method. Comput Methods Appl Mech Eng 177:235–257

    Article  MathSciNet  MATH  Google Scholar 

  3. 3.

    Radjai Farhang, Richefeu Vincent (2009) Contact dynamics as a nonsmooth discrete element method. Mech Mater 41(6):715–728

    Article  Google Scholar 

  4. 4.

    Brogliato B, Ten Dam A, Paoli L, Génot F, Abadie M (2002) Numerical simulation of finite dimensional multibody nonsmooth mechanical systems. Appl Mech Rev 55(2):107–150

    Article  Google Scholar 

  5. 5.

    Unger T, Brendel L, Wolf D, Kertsz J (2002) Elastic behavior in contact dynamics of rigid particles. Phys Rev E 65(6):7

    Article  Google Scholar 

  6. 6.

    Servin M, Wang D, Lacoursière C, Bodin K (2014) Examining the smooth and nonsmooth discrete element approach to granular matter. Int J Numer Methods Eng 97:878–902

    Article  Google Scholar 

  7. 7.

    Precklik T, Rude U (2015) Ultrascale simulations of non-smooth granular dynamics. Comput Part Mech. doi:10.1007/s40571-015-0047-6

  8. 8.

    Visseq V, Alart P, Dureisseix D (2013) High performance computing of discrete nonsmooth contact dynamics with domain decomposition. Int J Numer Methods Eng 96(9):584598

    Article  MathSciNet  Google Scholar 

  9. 9.

    Kaufman D, Sueda S, James D, Pai D (2008) Staggered projections for frictional contact in multibody systems. ACM Trans Gr 27(5):164:1–164:11

    Article  Google Scholar 

  10. 10.

    Kaufman D (2009) Coupled principles for computational frictional contact mechanics. Dissertation

  11. 11.

    Erleben K (2013) Numerical methods for linear complementarity problems in physics-based animation. ACM SIGGRAPH 2013 Courses 8:1–42

  12. 12.

    Moravnszky A, Terdiman P (2004) Fast contact reduction for dynamics simulation. In: Kirmse A (eds) Game programming gems, 4th edn. Charles River Media, Boston, pp 253–263

  13. 13.

    Todorov E (2010) Implicit nonlinear complementarity: A new approach to contact dynamics. In: 2010 IEEE international conference on robotics and automation (ICRA), pp 2322–2329

  14. 14.

    Lacoursière C (2007) Regularized, stabilized, variational methods for multibodies. In: Peter Bunus DF, Führer C (eds) The 48th scandinavian conference on simulation and modeling (SIMS 2007). Linköping University Electronic Press, pp 40–48

  15. 15.

    Algoryx Simulations. AGX Dynamics, December 2014

  16. 16.

    Wang D, Servin M, Berglund T, Mickelsson K-O, Rnnbck S (2015) Parametrization and validation of a nonsmooth discrete element method for simulating flows of iron ore green pellets. Powder Technol 283:475–487

    Article  Google Scholar 

Download references


This project was supported by Algoryx Simulations, LKAB, UMIT Research Lab and VINNOVA (dnr 2014-01901).

Author information



Corresponding author

Correspondence to Martin Servin.

Electronic supplementary material

Below is the link to the electronic supplementary material.

Supplementary material 1 (mp4 187696 KB)


Supplementary material 2 (mp4 8028 KB)


Supplementary material 3 (mp4 8068 KB)

Supplementary material 2 (mp4 8028 KB)

Supplementary material 3 (mp4 8068 KB)



Simulation algorithm

The algorithm for simulating a system of granular material using NDEM with PGS solver with warm starting is given in Algorithm 1. Based on the Hertz contact law, each contact \(\alpha \) between body a and b adds contributions to the constraint vector and normal and friction Jacobians according to

$$\begin{aligned} \delta _{(\alpha )}= & {} \mathbf {n}_{(\alpha )}^{\text {T}}(\mathbf {x}_{a} + \mathbf {d}^{(\alpha )}_{a} - \mathbf {x}_{b} - \mathbf {d}^{(\alpha )}_{b})\nonumber \\ g_{(\alpha )}= & {} \delta ^{{e}_{\text {H}}}_{(\alpha )}, \quad {e}_{\text {H}} = 5/4 \nonumber \\ \mathbf G _{\text {n}a}^{(\alpha )}= & {} {e}_{\text {H}} g^{{e}_{\text {H}}-1}_{(\alpha ) } \left[ \begin{array}{cc} - \mathbf {n}_{(\alpha )}^{{\text {T}}}&\ \ -(\mathbf {d}^{(\alpha )}_{a} \times \mathbf {n}_{(\alpha )})^{\text {T}} \end{array} \right] \nonumber \\ \mathbf G _{\text {n}b}^{(\alpha )}= & {} {e}_{\text {H}} g^{{e}_{\text {H}}-1}_{(\alpha ) } \left[ \begin{array}{cc} \mathbf {n}_{(\alpha )}^{{\text {T}}}&\ \ (\mathbf {d}^{(\alpha )}_{b} \times \mathbf {n}_{(\alpha )})^{\text {T}} \end{array} \right] \\ \mathbf G _{\text {t}a}^{(\alpha )}= & {} \left[ \begin{array}{cc} - \mathbf {t}^{(\alpha ){\text {T}}}_1 &{}\ \ -(\mathbf {d}^{(\alpha )}_{a} \times \mathbf {t}^{(\alpha )}_1)^{\text {T}}\\ - \mathbf {t}^{(\alpha ){\text {T}}}_2 &{}\ \ -(\mathbf {d}^{(\alpha )}_{a} \times \mathbf {t}^{(\alpha )}_2)^{\text {T}} \end{array} \right] \nonumber \\ \mathbf G _{\text {t}b}^{(\alpha )}= & {} \left[ \begin{array}{cc} \mathbf {t}^{(\alpha ){\text {T}}}_1 &{}\ \ (\mathbf {d}^{(\alpha )}_{b} \times \mathbf {t}^{(\alpha )}_1)^{\text {T}} \\ \mathbf {t}^{(\alpha ){\text {T}}}_2 &{}\ \ (\mathbf {d}^{(\alpha )}_{b} \times \mathbf {t}^{(\alpha )}_2)^{\text {T}} \end{array} \right] \nonumber \\ \mathbf G _{\text {r}a}^{(\alpha )}= & {} \left[ \begin{array}{cccc} \mathbf {0}_{1\times 3} &{}\ \ \mathbf {t}^{(\alpha ){\text {T}}}_1 &{}\ \ \mathbf {0}_{1\times 3} &{} -\mathbf {t}^{(\alpha ){\text {T}}}_1\\ \mathbf {0}_{1\times 3} &{}\ \ \mathbf {t}^{(\alpha ){\text {T}}}_2 &{}\ \ \mathbf {0}_{1\times 3} &{} -\mathbf {t}^{(\alpha ){\text {T}}}_2\\ \mathbf {0}_{1\times 3} &{}\ \ \mathbf {n}^{(\alpha ){\text {T}}} &{}\ \ \mathbf {0}_{1\times 3} &{} -\mathbf {n}^{(\alpha ){\text {T}}}\\ \end{array} \right] \nonumber \\ \mathbf G _{\text {r}b}^{(\alpha )}= & {} \left[ \begin{array}{cccc} \mathbf {0}_{1\times 3} &{}\ \ -\mathbf {t}^{(\alpha ){\text {T}}}_1 &{}\ \ \mathbf {0}_{1\times 3} &{} \mathbf {t}^{(\alpha ){\text {T}}}_1\\ \mathbf {0}_{1\times 3} &{}\ \ -\mathbf {t}^{(\alpha ){\text {T}}}_2 &{}\ \ \mathbf {0}_{1\times 3} &{} \mathbf {t}^{(\alpha ){\text {T}}}_2\\ \mathbf {0}_{1\times 3} &{}\ \ -\mathbf {n}^{(\alpha ){\text {T}}} &{}\ \ \mathbf {0}_{1\times 3} &{} \mathbf {n}^{(\alpha ){\text {T}}}\\ \end{array} \right] \nonumber \end{aligned}$$

where \(\mathbf d ^{(\alpha )}_{a}\) and \(\mathbf d ^{(\alpha )}_{b}\) are the positions of the contact point \(\alpha \) relative to the particle positions \(\mathbf x _{a}\) and \(\mathbf x _{b}\). The orthonormal contact normal and tangent vectors are \(\mathbf {n}^{(\alpha )}\), \(\mathbf {t}^{(\alpha )_1}\) and \(\mathbf {t}^{(\alpha )_2}\).


The diagonal matrices and Schur complement matrix \(\mathbf D \) are

$$\begin{aligned} {\varvec{\varSigma }}_{\text {n}}= & {} \frac{4}{\varDelta t^2}\frac{{\varepsilon }_{\text {n}}}{1+4\tfrac{{\tau }_{\text {n}}}{\varDelta t}}\varvec{1}_{N_{c}\times N_{c}}\nonumber \\ {\varvec{\varSigma }}_{\text {t}}= & {} \frac{{\gamma }_{\text {t}}}{\varDelta t}\varvec{1}_{2N_{c}\times 2N_{c}}\nonumber \\ {\varvec{\varSigma }}_{\text {r}}= & {} \frac{{\gamma }_{\text {r}}}{\varDelta t}\varvec{1}_{3N_{c}\times 3N_{c}}\\ {\varvec{\varUpsilon }}_{\text {n}}= & {} \frac{1}{1+4\tfrac{{\tau }_{\text {n}}}{\varDelta t}}\varvec{1}_{N_{c}\times N_{c}}\nonumber \\ \mathbf D= & {} \mathbf G \mathbf M ^{-1}\mathbf G ^T + \varvec{\varSigma }\nonumber \end{aligned}$$

The mapping between MCP parameters and material parameters are


where \(r^{*} = (r_a + r_b)/r_a r_b\) is the effective radius and we use \({\gamma }_{\text {t}} = {\gamma }_{\text {r}} = 10^{-6}\), \({n}_{\text {s}} = 2\).

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Wang, D., Servin, M. & Berglund, T. Warm starting the projected Gauss–Seidel algorithm for granular matter simulation. Comp. Part. Mech. 3, 43–52 (2016). https://doi.org/10.1007/s40571-015-0088-x

Download citation


  • Discrete elements
  • Nonsmooth contact dynamics
  • Convergence
  • Warm starting
  • Projected Gauss–Seidel