Strangely, the MLCP solver blows up as I decrease the (fixed) simulation timestep from 10 us down to 1 (some instability) and 0.1 us (totally blows up). Is this an intrinsic property of the MLCP algorithm or is it just because timesteps this small get into rounding off errors?
Strangely, the simulation works just fine for the largest timestep of 10 us.
MLCP solver blows up for smaller timestep?
-
- Posts: 2
- Joined: Wed Feb 18, 2015 1:17 pm
-
- Posts: 463
- Joined: Fri Nov 30, 2012 4:50 am
Re: MLCP solver blows up for smaller timestep?
For timesteps that small you'll likely need double precision, and even then it might not be perfectly stable. Considering the default step is ~16ms, 1us is quite a bit outside the intended step sizemaletinkert9n wrote:Strangely, the MLCP solver blows up as I decrease the (fixed) simulation timestep from 10 us down to 1 (some instability) and 0.1 us (totally blows up). Is this an intrinsic property of the MLCP algorithm or is it just because timesteps this small get into rounding off errors?
Strangely, the simulation works just fine for the largest timestep of 10 us.
-
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA
Re: MLCP solver blows up for smaller timestep?
There is no 'MLCPSolver' that you can execute, it is just an interface. Please provide the actual MLCPSolver that you use,
such as btDantzigLCP, btLemkeSolver,btSolveProjectedGaussSeidel or btPATHSolver.
It is very common to run the regular btSequentialImpulseConstraintSolver at 1000Hz or 3000Hz, using double precision. I haven't done much testing running the other solvers at small time steps.
Thanks,
Erwin
such as btDantzigLCP, btLemkeSolver,btSolveProjectedGaussSeidel or btPATHSolver.
It is very common to run the regular btSequentialImpulseConstraintSolver at 1000Hz or 3000Hz, using double precision. I haven't done much testing running the other solvers at small time steps.
Thanks,
Erwin