Program listing for file kernel/src/simulationTools/MatrixIntegrator.hpp

Program listing for file kernel/src/simulationTools/MatrixIntegrator.hpp#

 1#ifndef MatrixIntegrator_H
 2#define MatrixIntegrator_H
 3
 4
 5
 6#include "SiconosSerialization.hpp"
 7#include "SiconosAlgebraTypeDef.hpp"
 8#include "SiconosPointers.hpp"
 9
10#include "SiconosFwd.hpp"
11
12class MatrixIntegrator
13{
14private:
15
16  ACCEPT_SERIALIZATION(MatrixIntegrator);
17
18protected:
19
20
21  SP::SiconosMatrix _mat;
22
23
24  SP::SiconosMatrix _E;
25
26
27  SP::PluggedObject _plugin;
28
29
30  SP::SubPluggedObject _spo;
31
32
33  bool _isConst;
34
35
36  SP::DynamicalSystem _DS;
37
38
39  SP::NonSmoothDynamicalSystem _nsds;
40
41
42  SP::TimeDiscretisation _TD;
43
44
45  SP::EventDriven _sim;
46
47
48  SP::LsodarOSI _OSI;
49
50
51  void commonInit(const DynamicalSystem& ds, const NonSmoothDynamicalSystem& nsds, const TimeDiscretisation & td);
52
53
54  MatrixIntegrator() {};
55
56public:
57
58
59  MatrixIntegrator(const DynamicalSystem& ds, const NonSmoothDynamicalSystem& nsds, const TimeDiscretisation &td, const  SP::SiconosMatrix E);
60
61
62  MatrixIntegrator(const DynamicalSystem& ds, const NonSmoothDynamicalSystem& nsds, const TimeDiscretisation &td, SP::PluggedObject plugin, const unsigned int p);
63
64
65  MatrixIntegrator(const DynamicalSystem& ds,const NonSmoothDynamicalSystem& nsds, const TimeDiscretisation &td);
66
67
68  void integrate();
69
70
71  inline const SiconosMatrix& mat() const { return *_mat; }
72
73
74  inline bool isConst() { return _isConst; }
75
76};
77
78#endif