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
|
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
|
+
-
-
+
+
+
-
-
+
-
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
|
#ifndef MTT_SOLVER
#define MTT_SOLVER
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <octave/oct.h>
class Solver {
namespace MTT
{
protected:
typedef ColumnVector (*sys_ae) // pointer to F${sys}_ae function
class Solver
(ColumnVector &,ColumnVector &,const double &t,ColumnVector &);
public:
{
public:
Solver (sys_ae ae,
const int npar,
const int nu,
const int nx,
const int ny,
const int nyz);
Solver (const int npar,
const int nu,
const int nx,
const int ny,
const int nyz);
ColumnVector
solve (const ColumnVector &x,
const ColumnVector &u,
const double &t,
const ColumnVector &par);
ColumnVector
eval (const ColumnVector &ui);
virtual ~Solver (void) {};
virtual ~Solver (void) {};
protected:
protected:
virtual void
Solve (void) = 0;
protected:
ColumnVector _x;
ColumnVector _uui;
double _t;
ColumnVector _par;
ColumnVector _ui;
ColumnVector _yz;
int _nu;
int _np;
int _nx;
int _ny;
int _nyz;
ColumnVector _x;
ColumnVector _uui;
double _t;
ColumnVector _par;
ColumnVector _ui;
ColumnVector _yz;
int _nu;
int _np;
int _nx;
int _ny;
int _nyz;
};
}
sys_ae _ae;
};
#endif // MTT_SOLVER
|