Program listing for file kernel/src/modelingTools/LinearComplementaritySystemsNSDS.hpp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#ifndef LinearComplementaritySystemsNSDS_H
#define LinearComplementaritySystemsNSDS_H

#include "SiconosPointers.hpp"
#include "Topology.hpp"
#include "DynamicalSystem.hpp"
#include "NonSmoothDynamicalSystem.hpp"
#include "ComplementarityConditionNSL.hpp"
#include "SiconosFwd.hpp"
#include "FirstOrderLinearTIR.hpp"



class LinearComplementaritySystemsNSDS: public NonSmoothDynamicalSystem
{


private:

  ACCEPT_SERIALIZATION(LinearComplementaritySystemsNSDS);



  SP::FirstOrderLinearTIDS _ds;

  SP::FirstOrderLinearTIR _relation;

  SP::ComplementarityConditionNSL _nslaw;

  SP::Interaction _interaction;

protected:

  LinearComplementaritySystemsNSDS(){};

public:


  LinearComplementaritySystemsNSDS(double t0, double T,  SP::SiconosVector x0,
                                   SP::SimpleMatrix A,  SP::SimpleMatrix B,
                                   SP::SimpleMatrix C,  SP::SimpleMatrix D,
                                   SP::SiconosVector a,  SP::SiconosVector b);


  ~LinearComplementaritySystemsNSDS(){};



  SP::FirstOrderLinearTIDS ds()
  {
    return _ds;
  };

  SP::FirstOrderLinearTIR relation()
  {
    return _relation;
  };

  SP::ComplementarityConditionNSL nslaw()
  {
    return _nslaw;
  };
  SP::Interaction interaction()
  {
    return _interaction;
  };


};


#endif