00001 // SynchronizedRungeKuttaMover.h: interface for the CSynchronizedRungeKuttaMover class. 00002 // 00004 00005 #if !defined(AFX_SYNCHRONIZEDRUNGEKUTTAMOVER_H__754789DA_684D_4547_A7A2_6A84EEE85BA6__INCLUDED_) 00006 #define AFX_SYNCHRONIZEDRUNGEKUTTAMOVER_H__754789DA_684D_4547_A7A2_6A84EEE85BA6__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 #ifndef _WIN32 00013 #define __min min 00014 #define __max max 00015 #endif 00016 00017 #include "QualityControlRungeKuttaMover.h" 00018 00019 class CSynchronizedRungeKuttaMover : public CQualityControlRungeKuttaMover 00020 { 00021 public: 00022 CSynchronizedRungeKuttaMover(double frequency, double stepsize, double eps=1.0e-05); 00023 virtual ~CSynchronizedRungeKuttaMover(); 00024 virtual void Move(double xInitial, double xFinal, ReactionNetwork *pReactionNetwork); 00025 private: 00026 std::vector<double> m_vdSteps; 00027 bool m_bSyncFlag; 00028 }; 00029 00030 #endif // !defined(AFX_SYNCHRONIZEDRUNGEKUTTAMOVER_H__754789DA_684D_4547_A7A2_6A84EEE85BA6__INCLUDED_)