/
cse3.mos
112 lines (109 loc) · 4.43 KB
/
cse3.mos
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// name: cse3
// keywords: cse
// status: correct
loadString("
model Tearing15
\"System to test unsolvables as tVars in Cellier Algorithm\"
Real source;
Real v1(start=7);
Real v2(start=1);
Real v3(start=1);
Real v4(start=1);
Real v5(start=1);
Real v6(start=50);
Real v7(start=3);
equation
source = sin(time);
v1*sin(v1) + v2 - 4 + source = 0;
2*v1*sin(v1) + v2 - v3 - source +v7= 0;
3*v1*sin(v1) - 7*v2 - 2*v3 + 3 * source *v7= 0;
v1* sin(v1) + v2+source -v3*source -v7= 0;
3*v2 - v4 - v5 + 2 - source/2 *v7 = 0;
v5 + v6*sin(v6) * source +v3 = 0;
3*v5 - v6*sin(v6) - source = 0;
end Tearing15;
"); getErrorString();
setDebugFlags("dumpCSE"); getErrorString();
setTearingMethod("cellier"); getErrorString();
setCommandLineOptions("+tearingHeuristic=MC1 --postOptModules+=wrapFunctionCalls,cseBinary"); getErrorString();
simulate(Tearing15); getErrorString();
// Result:
// true
// ""
// true
// ""
// true
// ""
// true
// ""
//
// ########### Updated Variable List ########### (11)
// ========================================
// 1: v7:VARIABLE(start = 3.0 ) .Tearing15, .Real type: Real
// 2: v6:VARIABLE(start = 50.0 ) .Tearing15, .Real type: Real
// 3: v5:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 4: v4:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 5: v3:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 6: v2:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 7: v1:VARIABLE(start = 7.0 ) .Tearing15, .Real type: Real
// 8: source:VARIABLE() .Tearing15, .Real type: Real
// 9: $cse3:VARIABLE() type: Real unreplaceable
// 10: $cse2:VARIABLE() type: Real unreplaceable
// 11: $cse1:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List ########### (11, 11)
// ========================================
// 1/1 (1): source = $cse1 [dynamic]
// 2/2 (1): -4.0 + v1 * $cse2 + v2 + source = 0.0 [dynamic]
// 3/3 (1): 2.0 * v1 * $cse2 + v2 + v7 + (-source) - v3 = 0.0 [dynamic]
// 4/4 (1): 3.0 * v1 * $cse2 + -7.0 * v2 + -2.0 * v3 + 3.0 * source * v7 = 0.0 [dynamic]
// 5/5 (1): v1 * $cse2 + v2 + source + (-v3) * source - v7 = 0.0 [dynamic]
// 6/6 (1): 2.0 + 3.0 * v2 + -0.5 * source * v7 + (-v5) - v4 = 0.0 [dynamic]
// 7/7 (1): v5 + v6 * $cse3 * source + v3 = 0.0 [dynamic]
// 8/8 (1): 3.0 * v5 + (-v6) * $cse3 - source = 0.0 [dynamic]
// 9/9 (1): $cse3 = sin(v6) [binding]
// 10/10 (1): $cse2 = sin(v1) [binding]
// 11/11 (1): $cse1 = sin(time) [binding]
//
//
// ########### Updated Variable List ########### (13)
// ========================================
// 1: v7:VARIABLE(start = 3.0 ) .Tearing15, .Real type: Real
// 2: v6:VARIABLE(start = 50.0 ) .Tearing15, .Real type: Real
// 3: v5:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 4: v4:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 5: v3:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 6: v2:VARIABLE(start = 1.0 ) .Tearing15, .Real type: Real
// 7: v1:VARIABLE(start = 7.0 ) .Tearing15, .Real type: Real
// 8: source:VARIABLE() .Tearing15, .Real type: Real
// 9: $cse3:VARIABLE() type: Real unreplaceable
// 10: $cse2:VARIABLE() type: Real unreplaceable
// 11: $cse1:VARIABLE() type: Real unreplaceable
// 12: $cseb17:VARIABLE() type: Real unreplaceable
// 13: $cseb3:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List ########### (13, 13)
// ========================================
// 1/1 (1): source = $cse1 [dynamic]
// 2/2 (1): -4.0 + $cseb3 + v2 + source = 0.0 [dynamic]
// 3/3 (1): 2.0 * $cseb3 + v2 + v7 + (-source) - v3 = 0.0 [dynamic]
// 4/4 (1): 3.0 * $cseb3 + -7.0 * v2 + -2.0 * v3 + 3.0 * $cseb17 = 0.0 [dynamic]
// 5/5 (1): $cseb3 + v2 + source + (-v3) * source - v7 = 0.0 [dynamic]
// 6/6 (1): 2.0 + 3.0 * v2 + -0.5 * $cseb17 + (-v5) - v4 = 0.0 [dynamic]
// 7/7 (1): v5 + v6 * $cse3 * source + v3 = 0.0 [dynamic]
// 8/8 (1): 3.0 * v5 + (-v6) * $cse3 - source = 0.0 [dynamic]
// 9/9 (1): $cse3 = sin(v6) [binding]
// 10/10 (1): $cse2 = sin(v1) [binding]
// 11/11 (1): $cse1 = sin(time) [binding]
// 12/12 (1): $cseb17 = source * v7 [binding]
// 13/13 (1): $cseb3 = v1 * $cse2 [binding]
//
// record SimulationResult
// resultFile = "Tearing15_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Tearing15', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// ""
// endResult