Integration Library


Compounds

class  Functor
 Abstract class to hold the pointer to an force calculating functor. More...

class  SpecificFunctor
 derived template class More...

class  ObjectFunctor
 derived template class More...

class  RungeKuttaFehlbergIntegrator
 Runge-Kutta-Fehlberg integrator. More...

class  Integrator
 Interface class to the Integrator algorithm strategies. More...

class  RungeKuttaIntegrator
 Implementation of a Runge-Kutta (Fourth Order) Integrator. More...


Typedefs

typedef Vector(* vectorFuncPtr )(const Vector &_vectorFuncPtrParams)
 A generalized pointer to a function that takes a vector as a parameter and returns a vector.

typedef Vector(* odeFunc )(const double &_time, const Vector &_state, const Matrix &_parameters, vectorFuncPtr _funcPtr)
 defines a pointer to an integrator's right-hand side (RHS) function

typedef Vector(* odeFunctor )(const ssfTime &_time, const Vector &_integratingState, Orbit *_pOrbit, Attitude *_pAttitude, const Matrix &_parameters, const Functor &_forceFunctorPtr)
 defines a pointer to an integrator's right-hand side (RHS) function using a functor for the arbitrary vector function


Typedef Documentation

typedef Vector(* O_SESSAME::vectorFuncPtr)(const Vector& _vectorFuncPtrParams)
 

A generalized pointer to a function that takes a vector as a parameter and returns a vector.

Definition at line 29 of file Integrator.h.

typedef Vector(* O_SESSAME::odeFunc)(const double& _time, const Vector& _state, const Matrix& _parameters, vectorFuncPtr _funcPtr)
 

defines a pointer to an integrator's right-hand side (RHS) function

Definition at line 32 of file Integrator.h.

typedef Vector(* O_SESSAME::odeFunctor)(const ssfTime& _time, const Vector& _integratingState, Orbit *_pOrbit, Attitude *_pAttitude, const Matrix& _parameters, const Functor& _forceFunctorPtr)
 

defines a pointer to an integrator's right-hand side (RHS) function using a functor for the arbitrary vector function

Parameters:
_time This is the time at this step of the integration
_integratingState This is the current state at the time of integration. The state can be any vector of values the user desires to integrate, such as quaternions, angular momentum, energy, or position. These values are the result of the time derivative values being combined through the integration.
_pOrbit This is a pointer to an Orbit object. It is only necessary if the RHS function needs to inspect values of the orbit (OrbitHistory, OrbitState, etc.). If the user does not need to use the orbit object, the integration function will have passed in a NULL value (pointer to nothing), and the orbit object should not be used.
_pAttitude This is a pointer to an Attitude object. It is only necessary if the RHS function needs to inspect values of the attitude (AttitudeHistory, AttitudeState, etc.). If the user does not need to use the attitude object, the integration function will have passed in a NULL value (pointer to nothing), and the attitude object should not be used.
_parameters This is a matrix of constants that is passed to the RHS function for the user to store constants throughout the integration. Examples include the Moment of Inertia matrix, mass, ballistic coefficient, etc. The matrix can be any size, but the user needs to note how values were stored into the matrix in order to correctly extract them. (ex the first 3x3 sub-matrix is the MOI, while element (4,1) is the mass, and element (4,2) is the drag area).
_forceFunctorPtr This is a call-back function meant for use in calculating disturbance functions. By setting this reference to a force or torque disturbance function, the user can call this function within the RHS function, giving the current (integrated) states as parameters to calculate the instantaneous disturbance vector. (see Functor) The right-hand side (RHS) is the function that calculates the time derivatives of the state: . The type odeFunctor is a definition of the interface to the RHS function, which requires the calculation time, state at that time, a possible pointer to an Orbit and Attitude Object, a matrix of parameter constants, and a call-back function pointer that can be used to evaluate any function of OrbitState and AttitudeState. An Example of a RHS function for 2-body orbital dynamics is:
static Vector TwoBodyDynamics(const ssfTime &_time, const Vector& _integratingState, Orbit *_pOrbit, Attitude *_pAttitude, const Matrix &_parameters, const Functor &_forceFunctorPtr)
{
    static Vector Forces(3);
    static Vector Velocity(3);
    static Vector stateDot(6);
    static OrbitState orbState
    (new PositionVelocity);

    orbState.GetStateRepresentation()->SetPositionVelocity(_integratingState);

    Forces = _forceFunctorPtr.Call(_time, orbState, _Attitude->GetStateObject());
    Velocity(_) = _integratingState(_(VectorIndexBase+3,VectorIndexBase+5));
    
    stateDot(_(VectorIndexBase, VectorIndexBase+2)) = Velocity(_);
    stateDot(_(VectorIndexBase+3, VectorIndexBase+5)) = Forces(_);
    return stateDot;
}

Definition at line 78 of file Integrator.h.


Generated on Wed Aug 6 12:59:11 2003 for Open-Sessame Framework by doxygen1.3