Skip to content

Commit

Permalink
add test for ticket:3999 and fix expected output
Browse files Browse the repository at this point in the history
  • Loading branch information
Willi Braun committed Sep 29, 2016
1 parent 9906a4d commit be9dc57
Show file tree
Hide file tree
Showing 8 changed files with 922 additions and 887 deletions.
88 changes: 44 additions & 44 deletions openmodelica/debugDumps/optdaedump.mos

Large diffs are not rendered by default.

1,576 changes: 788 additions & 788 deletions openmodelica/debugDumps/symjacdump.mos

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions simulation/modelica/commonSubExp/cse1.mos
Expand Up @@ -45,16 +45,16 @@ simulate(Tearing15); getErrorString();
// ========================================
// 1: v3.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE() type: Real
// 2: v2.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE() type: Real
// 3: $res_2_.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 4: $res_1_.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 3: $res.2.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 4: $res.1.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 5: $cse2:VARIABLE() type: Real unreplaceable
// 6: $cse1:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (6, 6)
// ========================================
// 1/1 (1): $res_2_.$pDERNLSJac0.dummyVarNLSJac0 = v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 + (-v3.$pDERNLSJac0.dummyVarNLSJac0) * source - v7SeedNLSJac0 [dynamic]
// 2/2 (1): $res_1_.$pDERNLSJac0.dummyVarNLSJac0 = 3.0 * (v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2) + -7.0 * v2.$pDERNLSJac0.dummyVarNLSJac0 + -2.0 * v3.$pDERNLSJac0.dummyVarNLSJac0 + 3.0 * source * v7SeedNLSJac0 [dynamic]
// 1/1 (1): $res.2.$pDERNLSJac0.dummyVarNLSJac0 = v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 + (-v3.$pDERNLSJac0.dummyVarNLSJac0) * source - v7SeedNLSJac0 [dynamic]
// 2/2 (1): $res.1.$pDERNLSJac0.dummyVarNLSJac0 = 3.0 * (v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2) + -7.0 * v2.$pDERNLSJac0.dummyVarNLSJac0 + -2.0 * v3.$pDERNLSJac0.dummyVarNLSJac0 + 3.0 * source * v7SeedNLSJac0 [dynamic]
// 3/3 (1): 2.0 * (v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2) + v2.$pDERNLSJac0.dummyVarNLSJac0 + v7SeedNLSJac0 - v3.$pDERNLSJac0.dummyVarNLSJac0 = 0.0 [dynamic]
// 4/4 (1): v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 = 0.0 [dynamic]
// 5/5 (1): $cse1 = cos(v1) [unknown]
Expand All @@ -68,14 +68,14 @@ simulate(Tearing15); getErrorString();
// ########### Updated Variable List (jacobian) ########### (4)
// ========================================
// 1: v5.$pDERNLSJac1.dummyVarNLSJac1:VARIABLE() type: Real
// 2: $res_1_.$pDERNLSJac1.dummyVarNLSJac1:STATE_DER() type: Real unreplaceable
// 2: $res.1.$pDERNLSJac1.dummyVarNLSJac1:STATE_DER() type: Real unreplaceable
// 3: $cse4:VARIABLE() type: Real unreplaceable
// 4: $cse3:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (4, 4)
// ========================================
// 1/1 (1): $res_1_.$pDERNLSJac1.dummyVarNLSJac1 = v5.$pDERNLSJac1.dummyVarNLSJac1 + v6 * $cse3 * v6SeedNLSJac1 * source + v6SeedNLSJac1 * $cse4 * source [dynamic]
// 1/1 (1): $res.1.$pDERNLSJac1.dummyVarNLSJac1 = v5.$pDERNLSJac1.dummyVarNLSJac1 + v6 * $cse3 * v6SeedNLSJac1 * source + v6SeedNLSJac1 * $cse4 * source [dynamic]
// 2/2 (1): 3.0 * v5.$pDERNLSJac1.dummyVarNLSJac1 + (-v6) * $cse3 * v6SeedNLSJac1 - v6SeedNLSJac1 * $cse4 = 0.0 [dynamic]
// 3/3 (1): $cse3 = cos(v6) [unknown]
// 4/4 (1): $cse4 = sin(v6) [unknown]
Expand Down Expand Up @@ -154,13 +154,13 @@ simulate(Tearing15); getErrorString();
// ========================================
// 1: v5.$pDERNLSJac3.dummyVarNLSJac3:VARIABLE() type: Real
// 2: $cse6.$pDERNLSJac3.dummyVarNLSJac3:VARIABLE() type: Real
// 3: $res_1_.$pDERNLSJac3.dummyVarNLSJac3:STATE_DER() type: Real unreplaceable
// 3: $res.1.$pDERNLSJac3.dummyVarNLSJac3:STATE_DER() type: Real unreplaceable
// 4: $cse7:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (4, 4)
// ========================================
// 1/1 (1): $res_1_.$pDERNLSJac3.dummyVarNLSJac3 = 3.0 * v5.$pDERNLSJac3.dummyVarNLSJac3 + (-v6) * $cse6.$pDERNLSJac3.dummyVarNLSJac3 - v6SeedNLSJac3 * $cse6 [dynamic]
// 1/1 (1): $res.1.$pDERNLSJac3.dummyVarNLSJac3 = 3.0 * v5.$pDERNLSJac3.dummyVarNLSJac3 + (-v6) * $cse6.$pDERNLSJac3.dummyVarNLSJac3 - v6SeedNLSJac3 * $cse6 [dynamic]
// 2/2 (1): v5.$pDERNLSJac3.dummyVarNLSJac3 + v6 * $cse6.$pDERNLSJac3.dummyVarNLSJac3 * source + v6SeedNLSJac3 * $cse6 * source = 0.0 [dynamic]
// 3/3 (1): $cse6.$pDERNLSJac3.dummyVarNLSJac3 = $cse7 * v6SeedNLSJac3 [unknown]
// 4/4 (1): $cse7 = cos(v6) [unknown]
Expand All @@ -172,13 +172,13 @@ simulate(Tearing15); getErrorString();
// ########### Updated Variable List (jacobian) ########### (3)
// ========================================
// 1: $cse5.$pDERNLSJac4.dummyVarNLSJac4:VARIABLE() type: Real
// 2: $res_1_.$pDERNLSJac4.dummyVarNLSJac4:STATE_DER() type: Real unreplaceable
// 2: $res.1.$pDERNLSJac4.dummyVarNLSJac4:STATE_DER() type: Real unreplaceable
// 3: $cse8:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (3, 3)
// ========================================
// 1/1 (1): $res_1_.$pDERNLSJac4.dummyVarNLSJac4 = v1 * $cse5.$pDERNLSJac4.dummyVarNLSJac4 + v1SeedNLSJac4 * $cse5 [binding]
// 1/1 (1): $res.1.$pDERNLSJac4.dummyVarNLSJac4 = v1 * $cse5.$pDERNLSJac4.dummyVarNLSJac4 + v1SeedNLSJac4 * $cse5 [binding]
// 2/2 (1): $cse5.$pDERNLSJac4.dummyVarNLSJac4 = $cse8 * v1SeedNLSJac4 [unknown]
// 3/3 (1): $cse8 = cos(v1) [unknown]
//
Expand Down
20 changes: 10 additions & 10 deletions simulation/modelica/commonSubExp/cse3.mos
Expand Up @@ -44,16 +44,16 @@ simulate(Tearing15); getErrorString();
// ========================================
// 1: v3.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE() type: Real
// 2: v2.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE() type: Real
// 3: $res_2_.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 4: $res_1_.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 3: $res.2.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 4: $res.1.$pDERNLSJac0.dummyVarNLSJac0:STATE_DER() type: Real unreplaceable
// 5: $cse2:VARIABLE() type: Real unreplaceable
// 6: $cse1:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (6, 6)
// ========================================
// 1/1 (1): $res_2_.$pDERNLSJac0.dummyVarNLSJac0 = v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 + (-v3.$pDERNLSJac0.dummyVarNLSJac0) * source - v7SeedNLSJac0 [dynamic]
// 2/2 (1): $res_1_.$pDERNLSJac0.dummyVarNLSJac0 = 3.0 * (v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2) + -7.0 * v2.$pDERNLSJac0.dummyVarNLSJac0 + -2.0 * v3.$pDERNLSJac0.dummyVarNLSJac0 + 3.0 * source * v7SeedNLSJac0 [dynamic]
// 1/1 (1): $res.2.$pDERNLSJac0.dummyVarNLSJac0 = v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 + (-v3.$pDERNLSJac0.dummyVarNLSJac0) * source - v7SeedNLSJac0 [dynamic]
// 2/2 (1): $res.1.$pDERNLSJac0.dummyVarNLSJac0 = 3.0 * (v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2) + -7.0 * v2.$pDERNLSJac0.dummyVarNLSJac0 + -2.0 * v3.$pDERNLSJac0.dummyVarNLSJac0 + 3.0 * source * v7SeedNLSJac0 [dynamic]
// 3/3 (1): 2.0 * (v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2) + v2.$pDERNLSJac0.dummyVarNLSJac0 + v7SeedNLSJac0 - v3.$pDERNLSJac0.dummyVarNLSJac0 = 0.0 [dynamic]
// 4/4 (1): v1 * $cse1 * v1SeedNLSJac0 + v1SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 = 0.0 [dynamic]
// 5/5 (1): $cse1 = cos(v1) [unknown]
Expand All @@ -67,14 +67,14 @@ simulate(Tearing15); getErrorString();
// ########### Updated Variable List (jacobian) ########### (4)
// ========================================
// 1: v5.$pDERNLSJac1.dummyVarNLSJac1:VARIABLE() type: Real
// 2: $res_1_.$pDERNLSJac1.dummyVarNLSJac1:STATE_DER() type: Real unreplaceable
// 2: $res.1.$pDERNLSJac1.dummyVarNLSJac1:STATE_DER() type: Real unreplaceable
// 3: $cse4:VARIABLE() type: Real unreplaceable
// 4: $cse3:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (4, 4)
// ========================================
// 1/1 (1): $res_1_.$pDERNLSJac1.dummyVarNLSJac1 = v5.$pDERNLSJac1.dummyVarNLSJac1 + v6 * $cse3 * v6SeedNLSJac1 * source + v6SeedNLSJac1 * $cse4 * source [dynamic]
// 1/1 (1): $res.1.$pDERNLSJac1.dummyVarNLSJac1 = v5.$pDERNLSJac1.dummyVarNLSJac1 + v6 * $cse3 * v6SeedNLSJac1 * source + v6SeedNLSJac1 * $cse4 * source [dynamic]
// 2/2 (1): 3.0 * v5.$pDERNLSJac1.dummyVarNLSJac1 + (-v6) * $cse3 * v6SeedNLSJac1 - v6SeedNLSJac1 * $cse4 = 0.0 [dynamic]
// 3/3 (1): $cse3 = cos(v6) [unknown]
// 4/4 (1): $cse4 = sin(v6) [unknown]
Expand Down Expand Up @@ -153,13 +153,13 @@ simulate(Tearing15); getErrorString();
// ========================================
// 1: v5.$pDERNLSJac3.dummyVarNLSJac3:VARIABLE() type: Real
// 2: $cse6.$pDERNLSJac3.dummyVarNLSJac3:VARIABLE() type: Real
// 3: $res_1_.$pDERNLSJac3.dummyVarNLSJac3:STATE_DER() type: Real unreplaceable
// 3: $res.1.$pDERNLSJac3.dummyVarNLSJac3:STATE_DER() type: Real unreplaceable
// 4: $cse7:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (4, 4)
// ========================================
// 1/1 (1): $res_1_.$pDERNLSJac3.dummyVarNLSJac3 = 3.0 * v5.$pDERNLSJac3.dummyVarNLSJac3 + (-v6) * $cse6.$pDERNLSJac3.dummyVarNLSJac3 - v6SeedNLSJac3 * $cse6 [dynamic]
// 1/1 (1): $res.1.$pDERNLSJac3.dummyVarNLSJac3 = 3.0 * v5.$pDERNLSJac3.dummyVarNLSJac3 + (-v6) * $cse6.$pDERNLSJac3.dummyVarNLSJac3 - v6SeedNLSJac3 * $cse6 [dynamic]
// 2/2 (1): v5.$pDERNLSJac3.dummyVarNLSJac3 + v6 * $cse6.$pDERNLSJac3.dummyVarNLSJac3 * source + v6SeedNLSJac3 * $cse6 * source = 0.0 [dynamic]
// 3/3 (1): $cse6.$pDERNLSJac3.dummyVarNLSJac3 = $cse7 * v6SeedNLSJac3 [unknown]
// 4/4 (1): $cse7 = cos(v6) [unknown]
Expand All @@ -171,13 +171,13 @@ simulate(Tearing15); getErrorString();
// ########### Updated Variable List (jacobian) ########### (3)
// ========================================
// 1: $cse5.$pDERNLSJac4.dummyVarNLSJac4:VARIABLE() type: Real
// 2: $res_1_.$pDERNLSJac4.dummyVarNLSJac4:STATE_DER() type: Real unreplaceable
// 2: $res.1.$pDERNLSJac4.dummyVarNLSJac4:STATE_DER() type: Real unreplaceable
// 3: $cse8:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (3, 3)
// ========================================
// 1/1 (1): $res_1_.$pDERNLSJac4.dummyVarNLSJac4 = v1 * $cse5.$pDERNLSJac4.dummyVarNLSJac4 + v1SeedNLSJac4 * $cse5 [binding]
// 1/1 (1): $res.1.$pDERNLSJac4.dummyVarNLSJac4 = v1 * $cse5.$pDERNLSJac4.dummyVarNLSJac4 + v1SeedNLSJac4 * $cse5 [binding]
// 2/2 (1): $cse5.$pDERNLSJac4.dummyVarNLSJac4 = $cse8 * v1SeedNLSJac4 [unknown]
// 3/3 (1): $cse8 = cos(v1) [unknown]
//
Expand Down
4 changes: 2 additions & 2 deletions simulation/modelica/commonSubExp/cseFunctionCall8.mos
Expand Up @@ -72,14 +72,14 @@ simulate(CSE.FunctionCallTest8); getErrorString();
// ========================================
// 1: i.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real
// 2: $DER.u2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real
// 3: $res_1_.$pDERLSJac0.dummyVarLSJac0:STATE_DER() type: Real unreplaceable
// 3: $res.1.$pDERLSJac0.dummyVarLSJac0:STATE_DER() type: Real unreplaceable
// 4: $cse2:VARIABLE() type: Real unreplaceable
// 5: $cse1:VARIABLE() type: Real unreplaceable
//
//
// ########### Updated Equation List (jacobian) ########### (5, 5)
// ========================================
// 1/1 (1): $res_1_.$pDERLSJac0.dummyVarLSJac0 = C * $DER.u2.$pDERLSJac0.dummyVarLSJac0 - i.$pDERLSJac0.dummyVarLSJac0 [dynamic]
// 1/1 (1): $res.1.$pDERLSJac0.dummyVarLSJac0 = C * $DER.u2.$pDERLSJac0.dummyVarLSJac0 - i.$pDERLSJac0.dummyVarLSJac0 [dynamic]
// 2/2 (1): i.$pDERLSJac0.dummyVarLSJac0 = C * $DER_u1SeedLSJac0 [dynamic]
// 3/3 (1): 0.0 = $cse1 * $DER_u1SeedLSJac0 + $DER.u2.$pDERLSJac0.dummyVarLSJac0 [dynamic]
// 4/4 (1): $cse1 = CSE.FunctionCallTest8.f(time, $cse2) [unknown]
Expand Down
35 changes: 35 additions & 0 deletions simulation/modelica/nonlinear_system/ticket3999.mos
@@ -0,0 +1,35 @@
// name: ticket3999
// keywords: nonlinear system solver, enumeration, crefs
// status: correct
// cflags:
// teardown_command: rm -rf ticket3999.nls* output.log

loadString("
within ;
package ticket3999
encapsulated type et = enumeration(E1, E2);
model enumNls
Real z[et];
equation
z[et.E2]^2+ z[et.E1]^2 = 1;
z[et.E1]^2+2*z[et.E2] = time;
end enumNls;
end ticket3999;
");
getErrorString();

simulate(ticket3999.enumNls);
getErrorString();


// Result:
// true
// ""
// record SimulationResult
// resultFile = "ticket3999.enumNls_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'ticket3999.enumNls', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// "Warning: There are iteration variables with default zero start attribute. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->OMCFlags, in OMNotebook call setCommandLineOptions("-d=initialization").
// "
// endResult
20 changes: 10 additions & 10 deletions simulation/modelica/start_value_selection/asmaFlow.mos
Expand Up @@ -522,14 +522,14 @@ val(aimc.inertiaRotor.flange_b.tau, 0);
//
// Unreplaceable Crefs: (1)
// ========================================
// $res_1_.$pDERLSJac0.dummyVarLSJac0
// $res.1.$pDERLSJac0.dummyVarLSJac0
//
// Unreplaceable Crefs: (4)
// ========================================
// $res_4_.$pDERLSJac1.dummyVarLSJac1
// $res_3_.$pDERLSJac1.dummyVarLSJac1
// $res_2_.$pDERLSJac1.dummyVarLSJac1
// $res_1_.$pDERLSJac1.dummyVarLSJac1
// $res.4.$pDERLSJac1.dummyVarLSJac1
// $res.3.$pDERLSJac1.dummyVarLSJac1
// $res.2.$pDERLSJac1.dummyVarLSJac1
// $res.1.$pDERLSJac1.dummyVarLSJac1
//
// Unreplaceable Crefs: (0)
// ========================================
Expand Down Expand Up @@ -569,14 +569,14 @@ val(aimc.inertiaRotor.flange_b.tau, 0);
//
// Unreplaceable Crefs: (1)
// ========================================
// $res_1_.$pDERLSJac2.dummyVarLSJac2
// $res.1.$pDERLSJac2.dummyVarLSJac2
//
// Unreplaceable Crefs: (4)
// ========================================
// $res_4_.$pDERLSJac3.dummyVarLSJac3
// $res_3_.$pDERLSJac3.dummyVarLSJac3
// $res_2_.$pDERLSJac3.dummyVarLSJac3
// $res_1_.$pDERLSJac3.dummyVarLSJac3
// $res.4.$pDERLSJac3.dummyVarLSJac3
// $res.3.$pDERLSJac3.dummyVarLSJac3
// $res.2.$pDERLSJac3.dummyVarLSJac3
// $res.1.$pDERLSJac3.dummyVarLSJac3
//
// ########################################
// dumpindxdae
Expand Down

0 comments on commit be9dc57

Please sign in to comment.