Skip to content

Commit

Permalink
Updated nfinst test cases.
Browse files Browse the repository at this point in the history
  • Loading branch information
perost authored and OpenModelica-Hudson committed Nov 3, 2017
1 parent 12b5caf commit 663155c
Show file tree
Hide file tree
Showing 22 changed files with 786 additions and 36 deletions.
44 changes: 44 additions & 0 deletions flattening/modelica/scodeinst/ActualStream.mo
@@ -0,0 +1,44 @@
// name: ActualStream
// keywords: stream actualStream connector
// status: correct
//
// Checks that actualStream is evaluated correctly.
//

connector S
Real r;
flow Real f;
stream Real s;
end S;

model A
S s1, s2;
end A;

model ActualStream
A a;
Real actual_stream_s1;
Real actual_stream_s2;
equation
connect(a.s1, a.s2);
actual_stream_s1 = actualStream(a.s1.s);
actual_stream_s2 = actualStream(a.s2.s);
end ActualStream;

// Result:
// class ActualStream
// Real a.s1.r;
// Real a.s1.f;
// Real a.s1.s;
// Real a.s2.r;
// Real a.s2.f;
// Real a.s2.s;
// Real actual_stream_s1;
// Real actual_stream_s2;
// equation
// actual_stream_s1 = smooth(0, if a.s1.f > 0.0 then a.s2.s else a.s1.s);
// actual_stream_s2 = smooth(0, if a.s2.f > 0.0 then a.s1.s else a.s2.s);
// a.s1.f + a.s2.f = 0.0;
// a.s1.r = a.s2.r;
// end ActualStream;
// endResult
63 changes: 63 additions & 0 deletions flattening/modelica/scodeinst/ActualStreamMinMax.mo
@@ -0,0 +1,63 @@
// name: ActualStreamMinMax
// keywords: stream actualStream connector
// status: correct
//
// Checks that actualStream is simplified when the flow direction can be
// determined from the min/max attributes.
//

connector S
Real r;
flow Real f;
stream Real s;
end S;

model A
S s1(f(min = 0)), s2(f(max = 0));
S s3(f(min = -5)), s4(f(max = 3));
end A;

model ActualStreamMinMax
A a;
Real actual_stream_s1;
Real actual_stream_s2;
Real actual_stream_s3;
Real actual_stream_s4;
equation
connect(a.s1, a.s2);
connect(a.s3, a.s4);
actual_stream_s1 = actualStream(a.s1.s);
actual_stream_s2 = actualStream(a.s2.s);
actual_stream_s3 = actualStream(a.s3.s);
actual_stream_s4 = actualStream(a.s4.s);
end ActualStreamMinMax;

// Result:
// class ActualStreamMinMax
// Real a.s1.r;
// Real a.s1.f(min = 0.0);
// Real a.s1.s;
// Real a.s2.r;
// Real a.s2.f(max = 0.0);
// Real a.s2.s;
// Real a.s3.r;
// Real a.s3.f(min = -5.0);
// Real a.s3.s;
// Real a.s4.r;
// Real a.s4.f(max = 3.0);
// Real a.s4.s;
// Real actual_stream_s1;
// Real actual_stream_s2;
// Real actual_stream_s3;
// Real actual_stream_s4;
// equation
// actual_stream_s1 = smooth(0, a.s2.s);
// actual_stream_s2 = smooth(0, a.s2.s);
// actual_stream_s3 = smooth(0, if a.s3.f > 0.0 then a.s4.s else a.s3.s);
// actual_stream_s4 = smooth(0, if a.s4.f > 0.0 then a.s3.s else a.s4.s);
// a.s1.f + a.s2.f = 0.0;
// a.s3.f + a.s4.f = 0.0;
// a.s1.r = a.s2.r;
// a.s3.r = a.s4.r;
// end ActualStreamMinMax;
// endResult
4 changes: 2 additions & 2 deletions flattening/modelica/scodeinst/Connect2.mo
Expand Up @@ -22,9 +22,9 @@ end Connect2;
// Real c2.e;
// Real c2.f;
// equation
// c2.f = 0.0;
// c1.f = 0.0;
// c1.e = c2.e;
// (-c1.f) + (-c2.f) = 0.0;
// c1.f = 0.0;
// c2.f = 0.0;
// end Connect2;
// endResult
4 changes: 2 additions & 2 deletions flattening/modelica/scodeinst/Connect3.mo
Expand Up @@ -24,9 +24,9 @@ end Connect3;
// Real c2.e;
// Real c2.f;
// equation
// c2.f = 0.0;
// c1.f = 0.0;
// c1.e = c2.e;
// (-c1.f) + (-c2.f) = 0.0;
// c1.f = 0.0;
// c2.f = 0.0;
// end Connect3;
// endResult
24 changes: 12 additions & 12 deletions flattening/modelica/scodeinst/Connect4.mo
Expand Up @@ -34,21 +34,21 @@ end Connect4;
// Real c2[2].f[1];
// Real c2[2].f[2];
// equation
// c2[2].f[2] = 0.0;
// c2[2].f[1] = 0.0;
// c2[1].f[2] = 0.0;
// c2[1].f[1] = 0.0;
// c1[2].f[2] = 0.0;
// c1[2].f[1] = 0.0;
// c1[1].f[2] = 0.0;
// c1[1].f[1] = 0.0;
// c1[2].e[1] = c2[2].e[1];
// c1[2].e[2] = c2[2].e[2];
// (-c1[2].f[1]) + (-c2[2].f[1]) = 0.0;
// (-c1[2].f[2]) + (-c2[2].f[2]) = 0.0;
// c1[1].e[1] = c2[1].e[1];
// c1[1].e[2] = c2[1].e[2];
// (-c1[1].f[1]) + (-c2[1].f[1]) = 0.0;
// (-c1[1].f[2]) + (-c2[1].f[2]) = 0.0;
// c1[2].e[1] = c2[2].e[1];
// c1[2].e[2] = c2[2].e[2];
// (-c1[2].f[1]) + (-c2[2].f[1]) = 0.0;
// (-c1[2].f[2]) + (-c2[2].f[2]) = 0.0;
// c1[1].f[1] = 0.0;
// c1[1].f[2] = 0.0;
// c1[2].f[1] = 0.0;
// c1[2].f[2] = 0.0;
// c2[1].f[1] = 0.0;
// c2[1].f[2] = 0.0;
// c2[2].f[1] = 0.0;
// c2[2].f[2] = 0.0;
// end Connect4;
// endResult
4 changes: 2 additions & 2 deletions flattening/modelica/scodeinst/Connect5.mo
Expand Up @@ -27,8 +27,8 @@ end Connect5;
// Real c2.e;
// Real c2.f;
// equation
// c2.f = 0.0;
// a.c1.f + (-c2.f) = 0.0;
// a.c1.e = c2.e;
// a.c1.f + (-c2.f) = 0.0;
// c2.f = 0.0;
// end Connect5;
// endResult
48 changes: 48 additions & 0 deletions flattening/modelica/scodeinst/ConnectDiffOrder1.mo
@@ -0,0 +1,48 @@
// name: ConnectDiffOrder1
// keywords:
// status: correct
// cflags: -d=newInst
//

connector C1
Real e1;
flow Real f1;
flow Real f2;
Real e2;
end C1;

connector C2
flow Real f2;
Real e2;
flow Real f1;
Real e1;
end C2;

model ConnectDiffOrder1
C1 c1;
C2 c2;
equation
connect(c1, c2);
end ConnectDiffOrder1;

// Result:
// class ConnectDiffOrder1
// Real c1.e1;
// Real c1.f1;
// Real c1.f2;
// Real c1.e2;
// Real c2.f2;
// Real c2.e2;
// Real c2.f1;
// Real c2.e1;
// equation
// c1.e1 = c2.e1;
// c1.e2 = c2.e2;
// (-c1.f1) + (-c2.f1) = 0.0;
// (-c1.f2) + (-c2.f2) = 0.0;
// c1.f1 = 0.0;
// c1.f2 = 0.0;
// c2.f2 = 0.0;
// c2.f1 = 0.0;
// end ConnectDiffOrder1;
// endResult
74 changes: 74 additions & 0 deletions flattening/modelica/scodeinst/ConnectDiffOrder2.mo
@@ -0,0 +1,74 @@
// name: ConnectDiffOrder2
// keywords:
// status: correct
// cflags: -d=newInst
//

connector C1
Real e1;
flow Real f1;
flow Real f2;
Real e2;
end C1;

connector C2
flow Real f2;
Real e2;
flow Real f1;
Real e1;
end C2;

connector C3
C1 c1;
C2 c2;
end C3;

connector C4
C2 c2;
C1 c1;
end C4;

model ConnectDiffOrder2
C3 c3;
C4 c4;
equation
connect(c3, c4);
end ConnectDiffOrder2;

// Result:
// class ConnectDiffOrder2
// Real c3.c1.e1;
// Real c3.c1.f1;
// Real c3.c1.f2;
// Real c3.c1.e2;
// Real c3.c2.f2;
// Real c3.c2.e2;
// Real c3.c2.f1;
// Real c3.c2.e1;
// Real c4.c2.f2;
// Real c4.c2.e2;
// Real c4.c2.f1;
// Real c4.c2.e1;
// Real c4.c1.e1;
// Real c4.c1.f1;
// Real c4.c1.f2;
// Real c4.c1.e2;
// equation
// c3.c1.e1 = c4.c1.e1;
// c3.c1.e2 = c4.c1.e2;
// (-c3.c1.f1) + (-c4.c1.f1) = 0.0;
// (-c3.c1.f2) + (-c4.c1.f2) = 0.0;
// c3.c2.e1 = c4.c2.e1;
// c3.c2.e2 = c4.c2.e2;
// (-c3.c2.f1) + (-c4.c2.f1) = 0.0;
// (-c3.c2.f2) + (-c4.c2.f2) = 0.0;
// c3.c1.f1 = 0.0;
// c3.c1.f2 = 0.0;
// c3.c2.f2 = 0.0;
// c3.c2.f1 = 0.0;
// c4.c2.f2 = 0.0;
// c4.c2.f1 = 0.0;
// c4.c1.f1 = 0.0;
// c4.c1.f2 = 0.0;
// end ConnectDiffOrder2;
// endResult
2 changes: 1 addition & 1 deletion flattening/modelica/scodeinst/ConstantConnector1.mo
Expand Up @@ -17,6 +17,6 @@ end ConstantConnector1;
// parameter Real c1;
// parameter Real c2;
// equation
// assert(abs(c1 - c2) <= 0.0, "automatically generated from connect");
// assert(abs(c1 - c2) <= 0.0, "Connected constants/parameters must be equal");
// end ConstantConnector1;
// endResult
4 changes: 3 additions & 1 deletion flattening/modelica/scodeinst/ConstantConnector2.mo
Expand Up @@ -14,7 +14,9 @@ end ConstantConnector2;

// Result:
// class ConstantConnector2
// constant Real c1;
// constant Real c2;
// equation
// assert(abs(c1 - c2) <= 0.0, "automatically generated from connect");
// assert(abs(c1 - c2) <= 0.0, "Connected constants/parameters must be equal");
// end ConstantConnector2;
// endResult
6 changes: 3 additions & 3 deletions flattening/modelica/scodeinst/ConstantConnector3.mo
Expand Up @@ -25,10 +25,10 @@ end ConstantConnector3;
// Real c2.e;
// Real c2.f;
// equation
// assert(abs(c1.x - c2.x) <= 0.0, "automatically generated from connect");
// c1.f = 0.0;
// c2.f = 0.0;
// c1.e = c2.e;
// assert(abs(c1.x - c2.x) <= 0.0, "Connected constants/parameters must be equal");
// (-c1.f) + (-c2.f) = 0.0;
// c1.f = 0.0;
// c2.f = 0.0;
// end ConstantConnector3;
// endResult

0 comments on commit 663155c

Please sign in to comment.