[ODE] multi stage integrators

Bruce P. Minaker bminaker at uwindsor.ca
Thu Jan 23 10:12:02 2003


--=-GhMXZK9Rw3/zefmdH0Xl
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Hi,

First, I'm new to ODE and my initial impression is wow.  Impressive
piece of work.

I've written some multi-body dynamics code in the past, nothing of this
magnitude, but I do have a nice DOPRI(5,4) integrator that I would like
to offer for use in ODE, maybe as a side project for my own interest
first.  It would be more useful for engineering type applications than
for say gaming, but it may be intesting to see the effects there as
well.

Any advise on the best way to go about this?  The I'm not sure of the
implications on the collision detection.  Maybe something like a new
dInternalStepIsland_x3 routine?

For those of you unfamiliar with the ins and outs of numerical
integration, the dopri54 is a Runge Kutta type integrator, 5th order
with an embedded 4th order.  Its kind of funny, but it works like this. 
A first order RK integrator (i.e. Euler's rule) requires 1 stage, (or
one function evaluation, i.e finding the sum of forces, etc.) per time
step, a 2nd order requires 2 stages, 3rd order 3 stages, 4th order 4
stages, but here's the twist, 5th order requires (at least 6) stages. 
Anything above 5th order starts to get expensive in terms of the number
of stages required.  So the DOPRI is a six stage integrator that uses
the first 4 stages to get a 4th order soln, and the next two stages to
get a 5th order soln.  The difference between the the solutions gives an
estimate of the error, which can then be used to modify the step size. 
It works pretty good as long as the solution is smooth.  Thats why I
wonder about the implications of collisions.  (I didn't model collisions
in the past).

Anyway, thoughts, ideas?


Bruce Minaker 
Assistant Professor 
Dept. of Mechanical, Automotive, & Materials Engineering 
University of Windsor 
Windsor, Ontario, Canada

--=-GhMXZK9Rw3/zefmdH0Xl
Content-Type: text/html; charset=utf-8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/1.1.7">
</HEAD>
<BODY>
Hi,<BR>
<BR>
First, I'm new to ODE and my initial impression is wow.&nbsp; Impressive piece of work.<BR>
<BR>
I've written some multi-body dynamics code in the past, nothing of this magnitude, but I do have a nice DOPRI(5,4) integrator that I would like to offer for use in ODE, maybe as a side project for my own interest first.&nbsp; It would be more useful for engineering type applications than for say gaming, but it may be intesting to see the effects there as well.<BR>
<BR>
Any advise on the best way to go about this?&nbsp; The I'm not sure of the implications on the collision detection.&nbsp; Maybe something like a new dInternalStepIsland_x3 routine?<BR>
<BR>
For those of you unfamiliar with the ins and outs of numerical integration, the dopri54 is a Runge Kutta type integrator, 5th order with an embedded 4th order.&nbsp; Its kind of funny, but it works like this.&nbsp; A first order RK integrator (i.e. Euler's rule) requires 1 stage, (or one function evaluation, i.e finding the sum of forces, etc.) per time step, a 2nd order requires 2 stages, 3rd order 3 stages, 4th order 4 stages, but here's the twist, 5th order requires (at least 6) stages.&nbsp; Anything above 5th order starts to get expensive in terms of the number of stages required.&nbsp; So the DOPRI is a six stage integrator that uses the first 4 stages to get a 4th order soln, and the next two stages to get a 5th order soln.&nbsp; The difference between the the solutions gives an estimate of the error, which can then be used to modify the step size.&nbsp; It works pretty good as long as the solution is smooth.&nbsp; Thats why I wonder about the implications of collisio!
ns.&nbsp; (I didn't model collisions in the past).<BR>
<BR>
Anyway, thoughts, ideas?<BR>
<BR>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<FONT SIZE="3"><I>Bruce Minaker </I></FONT>
<ADDRESS>Assistant Professor <BR>
Dept. of Mechanical, Automotive, &amp; Materials Engineering <BR>
University of Windsor <BR>
Windsor, Ontario, Canada</ADDRESS>
</TD>
</TR>
</TABLE>

</BODY>
</HTML>

--=-GhMXZK9Rw3/zefmdH0Xl--