Simbody
Public Member Functions

SimTK::CPodesIntegrator Class Reference

This is an Integrator based on the CPODES library. More...

#include <CPodesIntegrator.h>

Inheritance diagram for SimTK::CPodesIntegrator:

List of all members.

Public Member Functions

 ~CPodesIntegrator ()
 CPodesIntegrator (const System &sys, CPodes::LinearMultistepMethod method=CPodes::BDF)
 Create a CPodesIntegrator for integrating a System.
 CPodesIntegrator (const System &sys, CPodes::LinearMultistepMethod method, CPodes::NonlinearSystemIterationType iterationType)
 Create a CPodesIntegrator for integrating a System.
void setUseCPodesProjection ()
 CPODES provides its own mechanism for projecting the system onto the constraint manifold.
void setOrderLimit (int order)
 Restrict the integrator to lower orders than it is otherwise capable of (up to 12 for Adams, 5 for BDF).

Detailed Description

This is an Integrator based on the CPODES library.

It is an error controlled, variable order implicit integrator. It provides a good combination of accuracy, stability, and speed, and is a good choice for integrating stiff problems.

When creating a CPodesIntegrator, you can specify various options for how to perform the implicit integration: the linear multistep method to use (Adams or BDF), and the nonlinear system iteration type (Newton iteration or functional iteration). For stiff problems, the recommended choices are BDF with Newton iteration. For non-stiff problems, using Adams and/or functional iteration may provide better performance. Note that Adams is never recommended for systems that include constraints.


Constructor & Destructor Documentation

SimTK::CPodesIntegrator::~CPodesIntegrator ( )
SimTK::CPodesIntegrator::CPodesIntegrator ( const System sys,
CPodes::LinearMultistepMethod  method = CPodes::BDF 
) [explicit]

Create a CPodesIntegrator for integrating a System.

SimTK::CPodesIntegrator::CPodesIntegrator ( const System sys,
CPodes::LinearMultistepMethod  method,
CPodes::NonlinearSystemIterationType  iterationType 
)

Create a CPodesIntegrator for integrating a System.

The nonlinear system iteration type is chosen automatically based on the linear multistep method: Newton iteration for BDF (the default), and functional iteration for Adams.


Member Function Documentation

void SimTK::CPodesIntegrator::setUseCPodesProjection ( )

CPODES provides its own mechanism for projecting the system onto the constraint manifold.

By default, CPodesIntegrator uses the System's project() method for doing projection, which is usually more efficient. Invoking this method tells it to use the CPODES mechanism instead.

This method must be invoked before the integrator is initialized. Invoking it after initialization will produce an exception.

void SimTK::CPodesIntegrator::setOrderLimit ( int  order)

Restrict the integrator to lower orders than it is otherwise capable of (up to 12 for Adams, 5 for BDF).

This method may only be used to decrease the maximum order permitted, never to increase it. Once you specify an order limit, calling it again with a larger value will fail.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines