00001
00002
00003
00004 #ifndef INCLUDED_INITENCL_H
00005 #define INCLUDED_INITENCL_H
00006
00007 #include "odesolv.h"
00008
00009
00016 class INIT_ENCL : protected NAME
00017 {
00018
00019 public:
00020
00038 virtual bool Validate( INTERVAL_VECTOR & Y,
00039 INTERVAL_VECTOR & LocErr,
00040 double & h,
00041 int order,
00042 PtrODENumeric ODE,
00043 PtrODESolver Solver ) = 0;
00044
00050 virtual void Init( PtrODENumeric ODE ) = 0;
00051
00053 int GetMaxOrder() const;
00054
00056 virtual ~INIT_ENCL() {;}
00057
00058
00059 protected:
00060
00067 INIT_ENCL( int max_order, const string & name );
00068
00069
00070 private:
00071
00073 const int MaxK;
00074
00075 };
00076
00077
00079 typedef INIT_ENCL* PtrInitEncl;
00080
00081
00082 inline INIT_ENCL :: INIT_ENCL( int max_order, const string & name )
00083 : NAME(name), MaxK(max_order)
00084 {
00085 assert(max_order>0);
00086 }
00087
00088
00089 inline int INIT_ENCL :: GetMaxOrder() const
00090 {
00091 return MaxK;
00092 }
00093
00094
00095 #endif