**Quote:**

That's a surprise! Maybe I'm mistaken on the solver class name but are you talking about matrix based solvers? I thought they were especially good at that. For example, my current implementation is unable to handle a 50kg crate sitting on a 500g book with 24 iterations over the contact list (slowly solving penetration at each iteration). Would that be a problem for a matrix solver too?

You can divide lcp solvers in two categories:

- pivoting / direct solvers, for example Dantzig:

- It solves a big matrix,

- usually requires a lot of memory

- allows for very stiff constraints

- often not so fault tolerant, no error correcting

- Iterative solvers, for example Gauss Seidel, Successive Overrelaxation:

- sparse matrix storage

- allows for larger error, and is error correcting

- potential convergence issues: every iteration comes closer to the actual solution

- very similar behavior to penalty methods

I can recommend Kenny Erlebens PhD thesis, especially chapter 6:

http://www.diku.dk/~kenny/thesis.pdf
I'm more into collision detection, so perhaps someone else can give a better explanation. Erin, Kenny, Stephane ?