Integrator.h

Go to the documentation of this file.
00001 
00002 
00008 /*
00009 */
00011 
00012 #ifndef __SSF_INTEGRATOR_H__
00013 #define __SSF_INTEGRATOR_H__
00014 
00015 #include <Matrix.h>
00016 #include "Functor.h"
00017 #include "Time.h"
00018 #include <vector.h>
00019 using namespace std;
00020 namespace O_SESSAME {
00021 class Orbit;
00022 class Attitude;
00023 
00025 
00026 /* @{ */
00027 
00029 typedef Vector (*vectorFuncPtr)(const Vector& _vectorFuncPtrParams);
00030 
00032 typedef Vector (*odeFunc)(const double& _time, const Vector& _state, const Matrix& _parameters, vectorFuncPtr _funcPtr);
00033 //typedef Vector(*odeFunc)(const double& _time, const Vector& _states, const Matrix& _params);
00034 
00078 typedef Vector (*odeFunctor)(const ssfTime& _time, const Vector& _integratingState, Orbit *_pOrbit, Attitude *_pAttitude, const Matrix& _parameters, const Functor& _forceFunctorPtr);
00107 class Integrator
00108 {
00109 public:
00111 //    virtual Matrix Integrate(const Vector& _propTime, odeFunc _FuncPtr, const Vector& _initialConditions, const Matrix& _constants, vectorFuncPtr _vectorFuncPtr) = 0;
00112     
00113     
00155     virtual Matrix Integrate(const vector<ssfTime>& _propTime, odeFunctor _FunctorPtr, const Vector& _initialConditions, Orbit* _pOrbit, Attitude* _pAttitude, const Matrix& _constants, const Functor& _functorPtr) = 0;
00156 protected:
00157 //    Integrator() {};
00158 };
00159 
00160 } // close namespace O_SESSAME
00161 
00162 #endif
00163 // Do not change the comments below - they will be added automatically by CVS
00164 /*****************************************************************************
00165 *       $Log: Integrator.h,v $
00166 *       Revision 1.9  2003/05/22 21:03:52  nilspace
00167 *       Updated comments.
00168 *       
00169 *       Revision 1.8  2003/05/22 02:59:38  nilspace
00170 *       Changed to pass pointers instead of references of Orbit & Attitude objects.
00171 *       
00172 *       Revision 1.7  2003/05/21 19:45:01  nilspace
00173 *       Updated documentation.
00174 *       
00175 *       Revision 1.6  2003/05/20 17:44:21  nilspace
00176 *       Updated comments.
00177 *       
00178 *       Revision 1.5  2003/05/13 18:58:27  nilspace
00179 *       Cleaned up comments.
00180 *       
00181 *       Revision 1.4  2003/04/27 22:04:34  nilspace
00182 *       Created the namespace O_SESSAME.
00183 *       
00184 *       Revision 1.3  2003/04/25 13:45:55  nilspace
00185 *       const'd Get() functions.
00186 *       
00187 *       Revision 1.2  2003/04/23 16:30:59  nilspace
00188 *       Various bugfixes & uploading of all changed code for new programmers.
00189 *       
00190 *       Revision 1.1  2003/04/08 22:32:20  nilspace
00191 *       Initial submission.
00192 *       
00193 *
00194 ******************************************************************************/

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