1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
Olaf Bachmann <obachman@mathematik.uni-kl.de>
and many others.
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-->
<HTML>
<HEAD>
<TITLE>Crystal Space: csPhyziks ODE Solvers</TITLE>
<META NAME="description" CONTENT="Crystal Space: csPhyziks ODE Solvers">
<META NAME="keywords" CONTENT="Crystal Space: csPhyziks ODE Solvers">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.64">
</HEAD>
<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<A NAME="SEC335"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_156.html#SEC333"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_158.html#SEC336"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_143.html#SEC311"> << </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_149.html#SEC326"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_159.html#SEC338"> >> </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_285.html#SEC711">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<HR SIZE=1>
<H3> 6.7.8 ODE Solvers </H3>
<!--docid::SEC335::-->
<P>
An ODE is an <EM>Ordinary Differential Equation</EM> solver. `<SAMP>ctWorld</SAMP>'
starts out with a default ODE solver of Runga-Kutta order 4. This is a
fairly good one for stability and has only a moderate performance hit.
</P><P>
If you notice your objects freaking out and disappearing (usually by flying
off into space), you probably have a stability problem. Springs with high
constants (stiff) are a classic for stability problems.
</P><P>
If you need either more speed or more stability, you may want to use a
different one. Improved stability means decreased performance and vice versa.
Basically improved stability is gained by more complete evaluations of the
whole system per time step (call to evolve).
</P><P>
The problem is that the slower your frame-rate is, the bigger time steps the
dynamics solver will be solving for. Big time steps contribute to instability
as well. So you can try to fix instability by using a more sophisticated
ODE solver like Runga-Kutta with adaptive step sizing (not yet
implemented), but the resulting performance hit could cause more instability.
So it can be a no-win situation when choosing and ODE solver if you have
a very low frame-rate. Then it's time to up the system requirements of your
application.
</P><P>
<A NAME="csPhyziks Usage Guide"></A>
<HR SIZE=1>
<BR>
<FONT SIZE="-1">
This document was generated
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
</BODY>
</HTML>
|