Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

CombinedNumericPropagator.h

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file CombinedNumericPropagator.h
00003 *  \brief Interface to the Combined Numeric Propagator class.
00004 *  \author $Author: jayhawk_hokie $
00005 *  \version $Revision: 1.2 $
00006 *  \date    $Date: 2005/06/10 12:53:28 $
00007 *//////////////////////////////////////////////////////////////////////////////////////////////////
00008 /* \todo Finish documentation
00009 *
00010 */
00011 //////////////////////////////////////////////////////////////////////////////////////////////////
00012 
00013 #ifndef __OSESSAME_COMBINED_NUMERIC_PROPAGATOR_H__
00014 #define __OSESSAME_COMBINED_NUMERIC_PROPAGATOR_H__
00015 
00016 #include <matrix/Matrix.h>
00017 #include <rotation/Rotation.h>
00018 #include <utils/Integrator.h>
00019 #include <dynamics/NumericPropagator.h>
00020 
00021 namespace O_SESSAME {
00022 
00023 /*! \brief Propagation of orbit & attitude using a numeric integrator.
00024 * \ingroup PropagatorToolkit
00025 *
00026 * \example testPropagation.cpp
00027 * This example demonstrates how to use a CombinedNumericPropagator to propagate a combined
00028 orbit \& attitude. 
00029 */
00030 class CombinedNumericPropagator : public NumericPropagator
00031 {
00032 public:
00033     /*! Default Constructor */
00034     CombinedNumericPropagator();
00035     /*! Default Deconstructor */
00036     virtual ~CombinedNumericPropagator();
00037     
00038     /*! Propagates the dynamics forward through time
00039         * @param _propTime vector of ssfTime values specifying beginning, ending times of propagation as well as time step [initialTime, timeStep, finalTime] (s)
00040         * @param _orbitInitConditions initial conditions of the orbit integration.
00041         * @param _attInitConditions initial conditions of the attitude integration.
00042         */
00043     virtual void Propagate(const vector<ssfTime> &_propTime, const Vector &_orbitInitConditions, const Vector &_attInitConditions);
00044     
00045     void SetOrbitIntegrator(Integrator* _pOrbitIntegrator);
00046     void SetAttitudeIntegrator(Integrator* _pAttitudeIntegrator);
00047 
00048     Integrator* GetOrbitIntegrator() const;
00049     Integrator* GetAttitudeIntegrator() const;
00050 
00051 protected:
00052     /*! \brief Propagate the orbit through a specified time 
00053         * @param _propTime vector of values specifying beginning, ending times of propagation as well as time step [initialTime, timeStep, finalTime] (s)
00054         * @param _initConditions Vector of initial conditions of the orbit propagation. 
00055         * @return Matrix of integrated times and states as returned by the orbit dynamics equation
00056         */
00057     virtual Matrix PropagateOrbit(const vector<ssfTime> &_propTime, const Vector &_initConditions);
00058 
00059     /*! \brief Propagate the attitude through a specified time
00060         * @param _propTime Vector of values specifying beginning, ending times of propagation as well as time step [initialTime, timeStep, finalTime] (s)
00061         * @param _initConditions Vector of initial conditions of the attitude propagation. 
00062         * @return Matrix of integrated times and states as returned by the attitude dynamics equation
00063         */
00064     virtual Matrix PropagateAttitude(const vector<ssfTime> &_propTime, const Vector &_initConditions);
00065     
00066 private:
00067     /*! \brief Matrix of calculated integration mesh points for the orbit dynamics */
00068     Matrix m_OrbitStateMeshPoints;
00069     /*! \brief Matrix of calculated integration mesh points for the attitude dynamics */
00070     Matrix m_AttitudeStateMeshPoints;
00071     
00072     /*! \brief pointer to the integrator used by the numeric propagator for orbit integration. */
00073     Integrator* m_pOrbitIntegrator;
00074     /*! \brief pointer to the integrator used by the numeric propagator for attitude integration. */
00075     Integrator* m_pAttitudeIntegrator;
00076 };
00077 } // close namespace O_SESSAME
00078 
00079 #endif
00080 /*****************************************************************************
00081 *       $Log: CombinedNumericPropagator.h,v $
00082 *       Revision 1.2  2005/06/10 12:53:28  jayhawk_hokie
00083 *       Changed header file format to make it easier to link to the spacecraft code by only having to specify dsacss/dep/spacecraft/src (ex. "file.h" changed to <dir/file.h> where dir is a folder in src).
00084 *       
00085 *       Revision 1.1.1.1  2005/04/26 17:40:56  cakinli
00086 *       Adding OpenSESSAME to DSACSS distrib to capture fixed version.
00087 *       
00088 *       Revision 1.4  2003/10/18 21:37:27  rsharo
00089 *       Removed "../utils" from all qmake project paths. Prepended "utils
00090 *       /" to all #include directives for utils. Removed ".h" extensions from STL header
00091 *       s and referenced STL components from "std::" namespace.  Overall, changed to be
00092 *       more portable.
00093 *       
00094 *       Revision 1.3  2003/06/10 02:24:04  nilspace
00095 *       Updated moving of StateConversion functions to Attitude and Orbit.
00096 *       
00097 *       Revision 1.2  2003/05/22 21:02:28  nilspace
00098 *       Updated comments.
00099 *       
00100 *       Revision 1.1  2003/05/20 17:56:24  nilspace
00101 *       Initial submission.
00102 *       
00103 *
00104 ******************************************************************************/

Generated on Wed Sep 5 12:54:18 2007 for DSACSS Operational Code by  doxygen 1.3.9.1