Integrator

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Margarida Machado
Posts: 16
Joined: Mon Apr 12, 2010 7:56 am

Integrator

Post by Margarida Machado » Wed Sep 26, 2012 12:47 am

Hi,

I'm performing a forward dynamics to evaluate contact forces. Hence, I need to use a small time-step and an accurate integrator. Is there any possibility to change the integrator from the GUI? Is there any integrator that works as predictor-corrector in OpenSim.

Thanks in advance.
Margarida

User avatar
Michael Sherman
Posts: 807
Joined: Fri Apr 01, 2005 6:05 pm

Re: Integrator

Post by Michael Sherman » Wed Sep 26, 2012 8:32 am

Hi, Margarida. All of OpenSim's integrators are variable-step, error controlled methods (provided by Simbody). You can set the accuracy you want and then the integrator adjusts the step size dynamically to obtain that level of accuracy.

Predictor-corrector is not the only way to do error estimation, and it is not necessarily the best way. OpenSim's default integrator uses an error estimation scheme in which a step is taken simultaneously with integration formulas of two different orders (4th order and 3rd order in the case of the Runge-Kutta-Merson method) and the difference used as a rigorous estimate of the error. OpenSim does include one predictor-corrector method, CPODES, but any of its integrators can achieve a given accuracy and will properly reduce the step size during contact events and the like.

Regards,
Sherm

User avatar
Ayman Habib
Posts: 2240
Joined: Fri Apr 01, 2005 12:24 pm

Re: Integrator

Post by Ayman Habib » Wed Sep 26, 2012 9:42 am

Thanks much for the detailed answer Sherm.

As to the question of which integrator is used by default by OpenSim and if it can be changed, the forward tool in OpenSim uses Runge-Kutta-Merson integrator by default. The integrator settings/tolerances can be changed in the GUI but the integrator itself can't be changed (to minimize options that are exposed and rarely changed), however you can write an API program that uses any of the set of integrators provided by Simbody.

Best regards,
-Ayman

POST REPLY