ODESolverMidpoint< T, T_SET > Class Template Reference

#include <TAPsODESolvers.hpp>

Inheritance diagram for ODESolverMidpoint< T, T_SET >:

Inheritance graph
[legend]
Collaboration diagram for ODESolverMidpoint< T, T_SET >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ODESolverMidpoint ()
virtual void SetSize (int vectorSize)
virtual void Solve (VectorSet< T_SET > &x0, VectorSet< T_SET > &xEnd, T t0, T t1, DerivFunc dxdt, void *userData)
virtual ~ODESolverMidpoint ()

Private Attributes

VectorSet< T_SET > vMid
VectorSet< T_SET > vStart


Detailed Description

template<typename T, typename T_SET = T>
class ODESolverMidpoint< T, T_SET >

Definition at line 143 of file TAPsODESolvers.hpp.


Constructor & Destructor Documentation

template<typename T, typename T_SET>
ODESolverMidpoint< T, T_SET >::ODESolverMidpoint (  )  [inline]

Definition at line 88 of file TAPsODESolvers.cpp.

00088 : ODESolver<T, T_SET>() {}

template<typename T, typename T_SET>
ODESolverMidpoint< T, T_SET >::~ODESolverMidpoint (  )  [inline, virtual]

Definition at line 91 of file TAPsODESolvers.cpp.

00091 {}


Member Function Documentation

template<typename T, typename T_SET>
void ODESolverMidpoint< T, T_SET >::SetSize ( int  vectorSize  )  [inline, virtual]

Implements ODESolver< T, T_SET >.

Definition at line 94 of file TAPsODESolvers.cpp.

00095 { 
00096     vStart.resize( vectorSize );
00097     vMid.resize( vectorSize );
00098 }

template<typename T, typename T_SET>
void ODESolverMidpoint< T, T_SET >::Solve ( VectorSet< T_SET > &  x0,
VectorSet< T_SET > &  xEnd,
t0,
t1,
DerivFunc  dxdt,
void *  userData 
) [inline, virtual]

Definition at line 101 of file TAPsODESolvers.cpp.

00102                                       : x(t_0) an initial state vector
00103         VectorSet<T_SET> &xEnd, // o/p: x(t_1) an end state vector
00104         T t0, T t1,             // i/p: starting and ending times
00105         DerivFunc dxdt,         // i/p: a derivative function
00106         void *userData          // o/p: array of user data
00107 )
00108 {
00109     bool restartNotRequired = true;
00110     T h = t1 - t0;
00111     // Midpoint Method
00112     restartNotRequired = dxdt( t0, x0, vStart, userData );
00113     assert( restartNotRequired );
00114     restartNotRequired = dxdt( t0 + h/2, x0 + h/2*vStart, vMid, userData );
00115     assert( restartNotRequired );
00116     // Update the state
00117     xEnd = x0 + h * vMid;
00118 }


Member Data Documentation

template<typename T, typename T_SET = T>
VectorSet<T_SET> ODESolverMidpoint< T, T_SET >::vMid [private]

Definition at line 170 of file TAPsODESolvers.hpp.

template<typename T, typename T_SET = T>
VectorSet<T_SET> ODESolverMidpoint< T, T_SET >::vStart [private]

Definition at line 170 of file TAPsODESolvers.hpp.


The documentation for this class was generated from the following files:

Generated on Mon Oct 13 11:45:40 2008 for TAPs by  doxygen 1.5.6