00001 #pragma ident "$Id: Integrator.hpp 2457 2010-08-18 14:20:12Z coandrei $" 00002 00011 #ifndef GPSTK_INTEGRATOR_HPP 00012 #define GPSTK_INTEGRATOR_HPP 00013 00014 //============================================================================ 00015 // 00016 // This file is part of GPSTk, the GPS Toolkit. 00017 // 00018 // The GPSTk is free software; you can redistribute it and/or modify 00019 // it under the terms of the GNU Lesser General Public License as published 00020 // by the Free Software Foundation; either version 2.1 of the License, or 00021 // any later version. 00022 // 00023 // The GPSTk is distributed in the hope that it will be useful, 00024 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00025 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00026 // GNU Lesser General Public License for more details. 00027 // 00028 // You should have received a copy of the GNU Lesser General Public 00029 // License along with GPSTk; if not, write to the Free Software Foundation, 00030 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00031 // 00032 // Wei Yan - Chinese Academy of Sciences . 2009, 2010 00033 // 00034 //============================================================================ 00035 00036 00037 #include "Vector.hpp" 00038 #include "Matrix.hpp" 00039 #include "EquationOfMotion.hpp" 00040 00041 namespace gpstk 00042 { 00045 00049 class Integrator 00050 { 00051 public: 00052 00054 Integrator() : stepSize(1.0) 00055 {} 00056 00057 00059 virtual ~Integrator() 00060 {} 00061 00062 00070 virtual Vector<double> integrateTo(const double& t, 00071 const Vector<double>& y, 00072 EquationOfMotion* peom, 00073 const double& tf ) = 0; 00074 00076 double getStepSize() const 00077 { return stepSize; } 00078 00079 00081 void setStepSize(const double& step) 00082 { stepSize = step; } 00083 00084 protected: 00085 00087 double stepSize; 00088 00089 }; // End of class 'Integrator' 00090 00091 // @} 00092 00093 } // End of namespace 'gpstk' 00094 00095 #endif // GPSTK_INTEGRATOR_HPP
1.3.9.1