00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
#ifndef OPENCAL_ODESOURCE_H
00012
#define OPENCAL_ODESOURCE_H
00013
00014
00015
#include <OpenCAL/global.h>
00016
#include <OpenCAL/PhaseSpace.h>
00017
00018
namespace OpenCAL
00019 {
00020
00021
00026 class OPENCAL_API ODESource
00027 {
00028
protected:
00029
00030
PhaseSpace m_state;
00031
PhaseSpace m_derivative;
00032
00033
public:
00034
00035
00036
virtual ~ODESource() {}
00037
00038
00039
virtual unsigned int getStateDimension()
const {
return m_state.getSize(); }
00040
virtual PhaseSpace *getState() {
return &m_state; }
00041
virtual PhaseSpace *getDerivative() {
return &m_derivative; }
00042
00043
virtual void fillState() = 0;
00044
virtual void fillDerivative() = 0;
00045
virtual void fromState() = 0;
00046 };
00047 }
00048
00049
#endif // OPENCAL_ODESOURCE_H