From d51b93f84bc922c557d88d2bb925f31ec6627788 Mon Sep 17 00:00:00 2001 From: kabdelhak <38032125+kabdelhak@users.noreply.github.com> Date: Mon, 30 May 2022 10:22:23 +0200 Subject: [PATCH] [BE] fix array binding vars (#8981) * [BE] fix array binding vars - scalarize variables after collecting bindings in initialization - allows to correctly detect dependencies and order equations - fix for ticket #8772 and #8938 * [testsuite] update testsuite after fix * [testsuite] cleanup - remove bad tests that are sensitive to ordering changes (multi-modal nonlinear systems) * [testsuite] more updates --- .../Compiler/BackEnd/BackendVariable.mo | 31 ++ OMCompiler/Compiler/BackEnd/Initialization.mo | 6 + .../optimization/basic/testAlgLoop6.mos | 2 +- .../testxmlInfoAllEqnsCorrectOrder.mos | 3 +- .../debugDumps/dumpSparsePatternLin.mos | 14 +- .../openmodelica/debugDumps/lateInline.mos | 86 +-- .../debugDumps/optSimpleSolveDAEdump.mos | 88 ++-- .../openmodelica/debugDumps/optdaedump.mos | 490 +++++++++--------- testsuite/openmodelica/omsi/omsic/Makefile | 1 - .../omsi/omsic/simpleNonLinLoop.mos | 65 --- .../10_Test3PhaseSystemsDummyInit.mos | 4 +- ...nicsForTesting.Examples.TestIdealWheel.mos | 3 +- ...SimpleExamples.TestDynamicWaterHeating.mos | 4 - ...xamples.TestDynamicWaterWaterExchanger.mos | 5 +- ...iBody.Examples.Elementary.RollingWheel.mos | 2 +- ...nics.MultiBody.Examples.Loops.Fourbar2.mos | 1 + ...ples.Spice3BenchmarkFourBitBinaryAdder.mos | 6 +- ...amples.Constraints.PrismaticConstraint.mos | 26 - ...nics.MultiBody.Examples.Loops.EngineV6.mos | 2 +- .../InverseAlgorithm4.mos | 2 +- .../algorithms_functions/algorithms.mos | 2 +- .../simulation/modelica/commonSubExp/cse1.mos | 12 +- .../commonSubExp/cseFunctionCall8.mos | 4 +- .../simulation/modelica/daemode/testDAE10.mos | 4 +- ...lectrical.Test3PhaseSystemsFullInitial.mos | 6 +- ...ynamicPipeLumpedPressureInitialization.mos | 2 +- ...micPipesSeriesLargeNSteadyStateInitial.mos | 2 +- ...d.DynamicPipesSeriesSteadyStateInitial.mos | 2 +- ...sEquationsFullSteadyStateMassAndEnergy.mos | 13 +- ...zation.Mechanical.TwoMassesFullInitial.mos | 4 +- ...nical.TwoMassesFullInitialInconsistent.mos | 4 +- ...on.Mechanical.TwoMassesFullSteadyState.mos | 8 +- .../modelica/initialization/autoFixed.mos | 2 +- .../modelica/initialization/bug_2263.mos | 4 +- .../modelica/initialization/homotopy2.mos | 144 ++--- .../modelica/initialization/scaling1.mos | 2 +- .../modelica/initialization/scaling2.mos | 2 +- .../initialization/underdeterminedTest6.mos | 6 +- .../inlineFunction/forceComplexEq2.mos | 4 +- .../inlineFunction/forceComplexEq3.mos | 22 +- .../inlineFunction/forceComplexEq4.mos | 4 +- .../modelica/linear_system/problem2.mos | 16 +- .../modelica/nonlinear_system/Makefile | 1 - .../modelica/nonlinear_system/bug_2841.mos | 114 ++-- .../nonlinear_system/nonlinearDelayTest.mos | 8 +- .../modelica/nonlinear_system/problem10.mos | 32 -- .../modelica/nonlinear_system/problem4.mos | 2 +- .../nonlinear_system/problem4_symjac.mos | 4 +- .../problem4_symjac_tearing.mos | 2 +- .../modelica/resolveLoops/NPendulum2.mos | 2 +- .../modelica/resolveLoops/NPendulum3.mos | 2 +- .../UnevaluateableFixedAttribute.mos | 2 +- .../modelica/tearing/Tearing12-cel.mos | 2 +- .../modelica/tearing/Tearing12-celMC3.mos | 2 +- .../modelica/tearing/Tearing12-omc.mos | 2 +- .../modelica/tearing/Tearing16-cel.mos | 8 +- .../modelica/tearing/Tearing7-omc.mos | 2 +- .../tearing/Tearing8-celMC3sorted.mos | 2 +- .../modelica/tearing/dynamicTearing2.mos | 234 ++++----- .../modelica/tearing/dynamicTearing3.mos | 56 +- 60 files changed, 749 insertions(+), 838 deletions(-) delete mode 100644 testsuite/openmodelica/omsi/omsic/simpleNonLinLoop.mos delete mode 100644 testsuite/simulation/modelica/nonlinear_system/problem10.mos diff --git a/OMCompiler/Compiler/BackEnd/BackendVariable.mo b/OMCompiler/Compiler/BackEnd/BackendVariable.mo index 391f64ff63c..c772a2b9971 100644 --- a/OMCompiler/Compiler/BackEnd/BackendVariable.mo +++ b/OMCompiler/Compiler/BackEnd/BackendVariable.mo @@ -4591,5 +4591,36 @@ algorithm end match; end varExp2; +public function scalarizeVariables + input output BackendDAE.Variables vars; +protected + list var_lst, new_var_lst = {}; +algorithm + var_lst := varList(vars); + for var in var_lst loop + new_var_lst := scalarizeVar(var, new_var_lst); + end for; + vars := listVar(listReverse(new_var_lst)); +end scalarizeVariables; + +public function scalarizeVar + input BackendDAE.Var var; + input output list scalar_vars = {}; +protected + list scalar_crefs; + BackendDAE.Var scalar_var; +algorithm + if Types.isArray(var.varType) then + scalar_crefs := ComponentReference.expandCref(var.varName, false); + for cref in scalar_crefs loop + scalar_var := BackendVariable.copyVarNewName(cref, var); + scalar_var.varType := ComponentReference.crefTypeFull(cref); + scalar_vars := scalar_var :: scalar_vars; + end for; + else + scalar_vars := var :: scalar_vars; + end if; +end scalarizeVar; + annotation(__OpenModelica_Interface="backend"); end BackendVariable; diff --git a/OMCompiler/Compiler/BackEnd/Initialization.mo b/OMCompiler/Compiler/BackEnd/Initialization.mo index 225a77e3665..5b3761cda22 100644 --- a/OMCompiler/Compiler/BackEnd/Initialization.mo +++ b/OMCompiler/Compiler/BackEnd/Initialization.mo @@ -165,6 +165,12 @@ algorithm ((eqns, reeqns)) := BackendVariable.traverseBackendDAEVars(vars, collectInitialBindings, (eqns, reeqns)); execStat("collectInitialBindings (initialization)"); + // scalarize variables after collecting bindings + if Flags.isSet(Flags.NF_SCALARIZE) then + vars := BackendVariable.scalarizeVariables(vars); + initVars := BackendVariable.scalarizeVariables(initVars); + end if; + // replace initial(), sample(...), delay(...) and homotopy(...) useHomotopy := BackendDAEUtil.traverseBackendDAEExpsEqns(eqns, simplifyInitialFunctions, false); execStat("simplifyInitialFunctions (initialization)"); diff --git a/testsuite/openmodelica/cruntime/optimization/basic/testAlgLoop6.mos b/testsuite/openmodelica/cruntime/optimization/basic/testAlgLoop6.mos index da1eb3937c6..28e05d9484c 100755 --- a/testsuite/openmodelica/cruntime/optimization/basic/testAlgLoop6.mos +++ b/testsuite/openmodelica/cruntime/optimization/basic/testAlgLoop6.mos @@ -354,7 +354,7 @@ getErrorString(); // end SimulationResult; // "Notification: Following iteration variables are selected by the user for strong component 1 (DAE kind: initialization): // x2:VARIABLE(min = -1.0 max = 1.0 ) type: Real -// Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac0. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). +// Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac1. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // Notification: Following iteration variables are selected by the user for strong component 2 (DAE kind: simulation): // x2:VARIABLE(min = -1.0 max = 1.0 ) type: Real diff --git a/testsuite/openmodelica/cruntime/xmlFiles/testxmlInfoAllEqnsCorrectOrder.mos b/testsuite/openmodelica/cruntime/xmlFiles/testxmlInfoAllEqnsCorrectOrder.mos index a711c59d24f..0091b707f35 100644 --- a/testsuite/openmodelica/cruntime/xmlFiles/testxmlInfoAllEqnsCorrectOrder.mos +++ b/testsuite/openmodelica/cruntime/xmlFiles/testxmlInfoAllEqnsCorrectOrder.mos @@ -43,8 +43,7 @@ if 0<>system("sort -h testModel_info.json.filtered | diff - testModel_info.json. // true // "" // true -// "Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac4. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). -// Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). +// "Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " // 0 // "OK" diff --git a/testsuite/openmodelica/debugDumps/dumpSparsePatternLin.mos b/testsuite/openmodelica/debugDumps/dumpSparsePatternLin.mos index d13e7355275..7a9c4fa71ba 100644 --- a/testsuite/openmodelica/debugDumps/dumpSparsePatternLin.mos +++ b/testsuite/openmodelica/debugDumps/dumpSparsePatternLin.mos @@ -28,27 +28,27 @@ buildModel(problem3); getErrorString(); // ======================================== // Number of non zero elements: 4 // Independents [or inputs] (2) -// {x[1], x[2]} +// {x[2], x[1]} // Dependents [or outputs] (2) // {$res_LSJac0_1, $res_LSJac0_2} -// x[1] affects the following (2) outputs -// {$res_LSJac0_2, $res_LSJac0_1} // x[2] affects the following (2) outputs // {$res_LSJac0_2, $res_LSJac0_1} +// x[1] affects the following (2) outputs +// {$res_LSJac0_2, $res_LSJac0_1} // // Transposed pattern // $res_LSJac0_1 affects the following (2) outputs -// {x[1], x[2]} +// {x[2], x[1]} // $res_LSJac0_2 affects the following (2) outputs -// {x[1], x[2]} +// {x[2], x[1]} // // --- Sparsity Coloring --- // ======================================== // Number of colors: 2 // The following (1) independents belong to one color -// 0: {x[1]} +// 0: {x[2]} // The following (1) independents belong to one color -// 1: {x[2]} +// 1: {x[1]} // // --- SparsityPattern --- // ======================================== diff --git a/testsuite/openmodelica/debugDumps/lateInline.mos b/testsuite/openmodelica/debugDumps/lateInline.mos index 22c526ee138..8c21da48cbb 100644 --- a/testsuite/openmodelica/debugDumps/lateInline.mos +++ b/testsuite/openmodelica/debugDumps/lateInline.mos @@ -526,8 +526,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -554,8 +554,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -568,13 +568,13 @@ buildModel(testOptdaedump); getErrorString(); // ======================================== // number of rows: 2 // 1: 2 1 -// 2: 2 +// 2: 1 // // Transposed Adjacency Matrix (row: variable) // ======================================== // number of rows: 2 -// 1: 1 -// 2: 2 1 +// 1: 2 1 +// 2: 1 // // no matching // @@ -594,8 +594,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -607,14 +607,14 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 2 variables and equations -// var 1 is solved in eqn 1 -// var 2 is solved in eqn 2 +// var 1 is solved in eqn 2 +// var 2 is solved in eqn 1 // // // StrongComponents // ======================================== -// {2:2} -// {1:1} +// {2:1} +// {1:2} // // // @@ -632,8 +632,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -645,14 +645,14 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 2 variables and equations -// var 1 is solved in eqn 1 -// var 2 is solved in eqn 2 +// var 1 is solved in eqn 2 +// var 2 is solved in eqn 1 // // // StrongComponents // ======================================== -// {2:2} -// {1:1} +// {2:1} +// {1:2} // // // @@ -670,8 +670,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -683,14 +683,14 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 2 variables and equations -// var 1 is solved in eqn 1 -// var 2 is solved in eqn 2 +// var 1 is solved in eqn 2 +// var 2 is solved in eqn 1 // // // StrongComponents // ======================================== -// {2:2} -// {1:1} +// {2:1} +// {1:2} // // // @@ -708,8 +708,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -721,14 +721,14 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 2 variables and equations -// var 1 is solved in eqn 1 -// var 2 is solved in eqn 2 +// var 1 is solved in eqn 2 +// var 2 is solved in eqn 1 // // // StrongComponents // ======================================== -// {2:2} -// {1:1} +// {2:1} +// {1:2} // // // @@ -746,8 +746,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -759,14 +759,14 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 2 variables and equations -// var 1 is solved in eqn 1 -// var 2 is solved in eqn 2 +// var 1 is solved in eqn 2 +// var 2 is solved in eqn 1 // // // StrongComponents // ======================================== -// {2:2} -// {1:1} +// {2:1} +// {1:2} // // // @@ -784,8 +784,8 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (2) // ======================================== -// 1: y:VARIABLE() type: Real -// 2: x:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real // // // Equations (2, 2) @@ -797,14 +797,14 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 2 variables and equations -// var 1 is solved in eqn 1 -// var 2 is solved in eqn 2 +// var 1 is solved in eqn 2 +// var 2 is solved in eqn 1 // // // StrongComponents // ======================================== -// {2:2} -// {1:1} +// {2:1} +// {1:2} // // // diff --git a/testsuite/openmodelica/debugDumps/optSimpleSolveDAEdump.mos b/testsuite/openmodelica/debugDumps/optSimpleSolveDAEdump.mos index b21afa2d9c8..4edb4668c78 100644 --- a/testsuite/openmodelica/debugDumps/optSimpleSolveDAEdump.mos +++ b/testsuite/openmodelica/debugDumps/optSimpleSolveDAEdump.mos @@ -144,9 +144,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -174,9 +174,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -190,15 +190,15 @@ buildModel(testOptdaedump); getErrorString(); // ======================================== // number of rows: 3 // 1: 3 2 1 -// 2: 3 2 -// 3: 3 +// 2: 2 1 +// 3: 1 // // Transposed Adjacency Matrix (row: variable) // ======================================== // number of rows: 3 -// 1: 1 +// 1: 3 2 1 // 2: 2 1 -// 3: 3 2 1 +// 3: 1 // // no matching // @@ -218,9 +218,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -233,16 +233,16 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 3 variables and equations -// var 1 is solved in eqn 1 +// var 1 is solved in eqn 3 // var 2 is solved in eqn 2 -// var 3 is solved in eqn 3 +// var 3 is solved in eqn 1 // // // StrongComponents // ======================================== -// {3:3} +// {3:1} // {2:2} -// {1:1} +// {1:3} // // // @@ -260,9 +260,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -275,16 +275,16 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 3 variables and equations -// var 1 is solved in eqn 1 +// var 1 is solved in eqn 3 // var 2 is solved in eqn 2 -// var 3 is solved in eqn 3 +// var 3 is solved in eqn 1 // // // StrongComponents // ======================================== -// {3:3} +// {3:1} // {2:2} -// {1:1} +// {1:3} // // // @@ -302,9 +302,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -317,16 +317,16 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 3 variables and equations -// var 1 is solved in eqn 1 +// var 1 is solved in eqn 3 // var 2 is solved in eqn 2 -// var 3 is solved in eqn 3 +// var 3 is solved in eqn 1 // // // StrongComponents // ======================================== -// {3:3} +// {3:1} // {2:2} -// {1:1} +// {1:3} // // // @@ -344,9 +344,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -359,16 +359,16 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 3 variables and equations -// var 1 is solved in eqn 1 +// var 1 is solved in eqn 3 // var 2 is solved in eqn 2 -// var 3 is solved in eqn 3 +// var 3 is solved in eqn 1 // // // StrongComponents // ======================================== -// {3:3} +// {3:1} // {2:2} -// {1:1} +// {1:3} // // // @@ -386,9 +386,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -401,16 +401,16 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 3 variables and equations -// var 1 is solved in eqn 1 +// var 1 is solved in eqn 3 // var 2 is solved in eqn 2 -// var 3 is solved in eqn 3 +// var 3 is solved in eqn 1 // // // StrongComponents // ======================================== -// {3:3} +// {3:1} // {2:2} -// {1:1} +// {1:3} // // // @@ -428,9 +428,9 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: z:VARIABLE() type: Real +// 1: x:VARIABLE() type: Real // 2: y:VARIABLE() type: Real -// 3: x:VARIABLE() type: Real +// 3: z:VARIABLE() type: Real // // // Equations (3, 3) @@ -443,16 +443,16 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 3 variables and equations -// var 1 is solved in eqn 1 +// var 1 is solved in eqn 3 // var 2 is solved in eqn 2 -// var 3 is solved in eqn 3 +// var 3 is solved in eqn 1 // // // StrongComponents // ======================================== -// {3:3} +// {3:1} // {2:2} -// {1:1} +// {1:3} // // // diff --git a/testsuite/openmodelica/debugDumps/optdaedump.mos b/testsuite/openmodelica/debugDumps/optdaedump.mos index 715b56d6043..6d665593f75 100644 --- a/testsuite/openmodelica/debugDumps/optdaedump.mos +++ b/testsuite/openmodelica/debugDumps/optdaedump.mos @@ -1073,17 +1073,17 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (11) // ======================================== -// 1: v0:VARIABLE() = 0.0 type: Real -// 2: iC:VARIABLE() type: Real -// 3: $DER.iL:VARIABLE() type: Real -// 4: iL:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real +// 5: i0:VARIABLE() type: Real // 6: i1:VARIABLE() type: Real -// 7: i0:VARIABLE() type: Real -// 8: uC:DUMMY_STATE() type: Real -// 9: uL:VARIABLE() type: Real -// 10: u1:VARIABLE() type: Real -// 11: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 7: i2:VARIABLE() type: Real +// 8: iL:VARIABLE() type: Real +// 9: $DER.iL:VARIABLE() type: Real +// 10: iC:VARIABLE() type: Real +// 11: v0:VARIABLE() = 0.0 type: Real // // // Equations (10, 10) @@ -1142,16 +1142,16 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (10) // ======================================== -// 1: iC:VARIABLE() type: Real -// 2: $DER.iL:VARIABLE() type: Real -// 3: iL:VARIABLE() type: Real -// 4: i2:VARIABLE() type: Real -// 5: i1:VARIABLE() type: Real -// 6: i0:VARIABLE() type: Real -// 7: uC:DUMMY_STATE() type: Real -// 8: uL:VARIABLE() type: Real -// 9: u1:VARIABLE() type: Real -// 10: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real +// 5: i0:VARIABLE() type: Real +// 6: i1:VARIABLE() type: Real +// 7: i2:VARIABLE() type: Real +// 8: iL:VARIABLE() type: Real +// 9: $DER.iL:VARIABLE() type: Real +// 10: iC:VARIABLE() type: Real // // // Equations (9, 9) @@ -1217,15 +1217,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (10) // ======================================== -// 1: iC:VARIABLE() type: Real -// 2: $DER.iL:VARIABLE() type: Real -// 3: i2:VARIABLE() type: Real -// 4: i1:VARIABLE() type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real // 5: i0:VARIABLE() type: Real -// 6: uC:DUMMY_STATE() type: Real -// 7: uL:VARIABLE() type: Real -// 8: u1:VARIABLE() type: Real -// 9: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 6: i1:VARIABLE() type: Real +// 7: i2:VARIABLE() type: Real +// 8: $DER.iL:VARIABLE() type: Real +// 9: iC:VARIABLE() type: Real // 10: iL:VARIABLE() type: Real // // @@ -1246,27 +1246,27 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 10 variables and equations -// var 1 is solved in eqn 5 -// var 2 is solved in eqn 6 +// var 1 is solved in eqn 10 +// var 2 is solved in eqn 8 // var 3 is solved in eqn 7 -// var 4 is solved in eqn 3 +// var 4 is solved in eqn 2 // var 5 is solved in eqn 4 -// var 6 is solved in eqn 2 -// var 7 is solved in eqn 8 -// var 8 is solved in eqn 9 -// var 9 is solved in eqn 10 +// var 6 is solved in eqn 9 +// var 7 is solved in eqn 3 +// var 8 is solved in eqn 6 +// var 9 is solved in eqn 5 // var 10 is solved in eqn 1 // // // StrongComponents // ======================================== -// {10:9} -// {5:1} -// {2:6} +// {10:1} +// {5:9} +// {2:4} // {1:10} -// {3, 9, 8, 7:3, 7, 8, 4} Size: 4 Jacobian Linear +// {3, 7, 8, 9:6, 2, 3, 7} Size: 4 Jacobian Linear +// {6:8} // {4:5} -// {6:2} // // // @@ -1317,15 +1317,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (10) // ======================================== -// 1: iC:VARIABLE() type: Real -// 2: $DER.iL:VARIABLE() type: Real -// 3: i2:VARIABLE() type: Real -// 4: i1:VARIABLE() type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real // 5: i0:VARIABLE() type: Real -// 6: uC:DUMMY_STATE() type: Real -// 7: uL:VARIABLE() type: Real -// 8: u1:VARIABLE() type: Real -// 9: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 6: i1:VARIABLE() type: Real +// 7: i2:VARIABLE() type: Real +// 8: $DER.iL:VARIABLE() type: Real +// 9: iC:VARIABLE() type: Real // 10: iL:VARIABLE() type: Real // // @@ -1346,29 +1346,29 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 10 variables and equations -// var 1 is solved in eqn 5 -// var 2 is solved in eqn 6 +// var 1 is solved in eqn 10 +// var 2 is solved in eqn 8 // var 3 is solved in eqn 7 -// var 4 is solved in eqn 3 +// var 4 is solved in eqn 2 // var 5 is solved in eqn 4 -// var 6 is solved in eqn 2 -// var 7 is solved in eqn 8 -// var 8 is solved in eqn 9 -// var 9 is solved in eqn 10 +// var 6 is solved in eqn 9 +// var 7 is solved in eqn 3 +// var 8 is solved in eqn 6 +// var 9 is solved in eqn 5 // var 10 is solved in eqn 1 // // // StrongComponents // ======================================== -// {10:9} -// {5:1} -// {2:6} +// {10:1} +// {5:9} +// {2:4} // {1:10} -// {{{9:8}, {3:3}, {7:7}} -// ,{8:4}} Size: 1 linear +// {{{7:3}, {3:6}, {9:2}} +// ,{8:7}} Size: 1 linear // For more information please use "-d=tearingdump". +// {6:8} // {4:5} -// {6:2} // // // @@ -1419,15 +1419,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (10) // ======================================== -// 1: iC:VARIABLE() type: Real -// 2: $DER.iL:VARIABLE() type: Real -// 3: i2:VARIABLE() type: Real -// 4: i1:VARIABLE() type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real // 5: i0:VARIABLE() type: Real -// 6: uC:DUMMY_STATE() type: Real -// 7: uL:VARIABLE() type: Real -// 8: u1:VARIABLE() type: Real -// 9: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 6: i1:VARIABLE() type: Real +// 7: i2:VARIABLE() type: Real +// 8: $DER.iL:VARIABLE() type: Real +// 9: iC:VARIABLE() type: Real // 10: iL:VARIABLE() type: Real // // @@ -1448,29 +1448,29 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 10 variables and equations -// var 1 is solved in eqn 5 -// var 2 is solved in eqn 6 +// var 1 is solved in eqn 10 +// var 2 is solved in eqn 8 // var 3 is solved in eqn 7 -// var 4 is solved in eqn 3 +// var 4 is solved in eqn 2 // var 5 is solved in eqn 4 -// var 6 is solved in eqn 2 -// var 7 is solved in eqn 8 -// var 8 is solved in eqn 9 -// var 9 is solved in eqn 10 +// var 6 is solved in eqn 9 +// var 7 is solved in eqn 3 +// var 8 is solved in eqn 6 +// var 9 is solved in eqn 5 // var 10 is solved in eqn 1 // // // StrongComponents // ======================================== -// {10:9} -// {5:1} -// {2:6} +// {10:1} +// {5:9} +// {2:4} // {1:10} -// {{{9:8}, {3:3}, {7:7}} -// ,{8:4}} Size: 1 linear +// {{{7:3}, {3:6}, {9:2}} +// ,{8:7}} Size: 1 linear // For more information please use "-d=tearingdump". +// {6:8} // {4:5} -// {6:2} // // // @@ -1497,18 +1497,18 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (4) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 3: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 3: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 4: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (4, 4) // ======================================== // 1/1 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] -// 3/3 (1): i1.SeedLSJac0 = i2.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] -// 4/4 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] +// 3/3 (1): i1.$pDERLSJac0.dummyVarLSJac0 = i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 4/4 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // // // Adjacency Matrix (row: equation) @@ -1536,10 +1536,10 @@ buildModel(testOptdaedump); getErrorString(); // // Known variables only depending on parameters and constants - globalKnownVars (7) // ======================================== -// 1: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable -// 2: uL:VARIABLE() type: Real -// 3: i2:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real +// 1: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 2: u1:VARIABLE() type: Real +// 3: i1:VARIABLE() type: Real +// 4: uL:VARIABLE() type: Real // 5: $res_LSJac0_1:VARIABLE() type: Real // 6: R2:PARAM() = 2.0 type: Real // 7: R1:PARAM() = 1.0 type: Real @@ -1556,15 +1556,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1580,15 +1580,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -1602,15 +1602,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1626,15 +1626,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // pre-optimization done. @@ -1649,15 +1649,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1685,15 +1685,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -1707,15 +1707,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1743,15 +1743,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -1765,15 +1765,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1801,15 +1801,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -1823,15 +1823,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1859,15 +1859,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -1881,15 +1881,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1917,15 +1917,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -1939,15 +1939,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -1975,15 +1975,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -1997,15 +1997,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -2033,15 +2033,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // @@ -2055,15 +2055,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (3) // ======================================== -// 1: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real -// 2: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 1: u1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real +// 2: uL.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real // 3: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() type: Real unreplaceable // // // Equations (3, 3) // ======================================== -// 1/1 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i1.SeedLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): uL.$pDERLSJac0.dummyVarLSJac0 = R2 * i2.SeedLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): u1.$pDERLSJac0.dummyVarLSJac0 = R1 * i2.SeedLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = (-uL.$pDERLSJac0.dummyVarLSJac0) - u1.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // // @@ -2091,15 +2091,15 @@ buildModel(testOptdaedump); getErrorString(); // 1: R1:PARAM() = 1.0 type: Real // 2: R2:PARAM() = 2.0 type: Real // 3: $res_LSJac0_1:VARIABLE() type: Real -// 4: u1:VARIABLE() type: Real -// 5: i2:VARIABLE() type: Real -// 6: uL:VARIABLE() type: Real -// 7: input i1.SeedLSJac0:STATE_DER() type: Real unreplaceable +// 4: uL:VARIABLE() type: Real +// 5: i1:VARIABLE() type: Real +// 6: u1:VARIABLE() type: Real +// 7: input i2.SeedLSJac0:STATE_DER() type: Real unreplaceable // // // Alias Variables (1) // ======================================== -// 1: i2.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i1.SeedLSJac0 type: Real +// 1: i1.$pDERLSJac0.dummyVarLSJac0:VARIABLE() = i2.SeedLSJac0 type: Real // // // post-optimization done. @@ -2138,15 +2138,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (10) // ======================================== -// 1: iC:VARIABLE() type: Real -// 2: $DER.iL:VARIABLE() type: Real -// 3: i2:VARIABLE() type: Real -// 4: i1:VARIABLE() type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real // 5: i0:VARIABLE() type: Real -// 6: uC:DUMMY_STATE() type: Real -// 7: uL:VARIABLE() type: Real -// 8: u1:VARIABLE() type: Real -// 9: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 6: i1:VARIABLE() type: Real +// 7: i2:VARIABLE() type: Real +// 8: $DER.iL:VARIABLE() type: Real +// 9: iC:VARIABLE() type: Real // 10: iL:VARIABLE() type: Real // // @@ -2167,29 +2167,29 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 10 variables and equations -// var 1 is solved in eqn 5 -// var 2 is solved in eqn 6 +// var 1 is solved in eqn 10 +// var 2 is solved in eqn 8 // var 3 is solved in eqn 7 -// var 4 is solved in eqn 3 +// var 4 is solved in eqn 2 // var 5 is solved in eqn 4 -// var 6 is solved in eqn 2 -// var 7 is solved in eqn 8 -// var 8 is solved in eqn 9 -// var 9 is solved in eqn 10 +// var 6 is solved in eqn 9 +// var 7 is solved in eqn 3 +// var 8 is solved in eqn 6 +// var 9 is solved in eqn 5 // var 10 is solved in eqn 1 // // // StrongComponents // ======================================== -// {10:9} -// {5:1} -// {2:6} +// {10:1} +// {5:9} +// {2:4} // {1:10} -// {{{9:8}, {3:3}, {7:7}} -// ,{8:4}} Size: 1 linear +// {{{7:3}, {3:6}, {9:2}} +// ,{8:7}} Size: 1 linear // For more information please use "-d=tearingdump". +// {6:8} // {4:5} -// {6:2} // // // @@ -2240,15 +2240,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (10) // ======================================== -// 1: iC:VARIABLE() type: Real -// 2: $DER.iL:VARIABLE() type: Real -// 3: i2:VARIABLE() type: Real -// 4: i1:VARIABLE() type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real // 5: i0:VARIABLE() type: Real -// 6: uC:DUMMY_STATE() type: Real -// 7: uL:VARIABLE() type: Real -// 8: u1:VARIABLE() type: Real -// 9: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 6: i1:VARIABLE() type: Real +// 7: i2:VARIABLE() type: Real +// 8: $DER.iL:VARIABLE() type: Real +// 9: iC:VARIABLE() type: Real // 10: iL:VARIABLE() type: Real // // @@ -2269,29 +2269,29 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 10 variables and equations -// var 1 is solved in eqn 5 -// var 2 is solved in eqn 6 +// var 1 is solved in eqn 10 +// var 2 is solved in eqn 8 // var 3 is solved in eqn 7 -// var 4 is solved in eqn 3 +// var 4 is solved in eqn 2 // var 5 is solved in eqn 4 -// var 6 is solved in eqn 2 -// var 7 is solved in eqn 8 -// var 8 is solved in eqn 9 -// var 9 is solved in eqn 10 +// var 6 is solved in eqn 9 +// var 7 is solved in eqn 3 +// var 8 is solved in eqn 6 +// var 9 is solved in eqn 5 // var 10 is solved in eqn 1 // // // StrongComponents // ======================================== -// {10:9} -// {5:1} -// {2:6} +// {10:1} +// {5:9} +// {2:4} // {1:10} -// {{{9:8}, {3:3}, {7:7}} -// ,{8:4}} Size: 1 linear +// {{{7:3}, {3:6}, {9:2}} +// ,{8:7}} Size: 1 linear // For more information please use "-d=tearingdump". +// {6:8} // {4:5} -// {6:2} // // // @@ -2342,15 +2342,15 @@ buildModel(testOptdaedump); getErrorString(); // // Variables (10) // ======================================== -// 1: iC:VARIABLE() type: Real -// 2: $DER.iL:VARIABLE() type: Real -// 3: i2:VARIABLE() type: Real -// 4: i1:VARIABLE() type: Real +// 1: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 2: u1:VARIABLE() type: Real +// 3: uL:VARIABLE() type: Real +// 4: uC:DUMMY_STATE() type: Real // 5: i0:VARIABLE() type: Real -// 6: uC:DUMMY_STATE() type: Real -// 7: uL:VARIABLE() type: Real -// 8: u1:VARIABLE() type: Real -// 9: $DER.uC:DUMMY_DER(fixed = false ) type: Real +// 6: i1:VARIABLE() type: Real +// 7: i2:VARIABLE() type: Real +// 8: $DER.iL:VARIABLE() type: Real +// 9: iC:VARIABLE() type: Real // 10: iL:VARIABLE() type: Real // // @@ -2371,29 +2371,29 @@ buildModel(testOptdaedump); getErrorString(); // Matching // ======================================== // 10 variables and equations -// var 1 is solved in eqn 5 -// var 2 is solved in eqn 6 +// var 1 is solved in eqn 10 +// var 2 is solved in eqn 8 // var 3 is solved in eqn 7 -// var 4 is solved in eqn 3 +// var 4 is solved in eqn 2 // var 5 is solved in eqn 4 -// var 6 is solved in eqn 2 -// var 7 is solved in eqn 8 -// var 8 is solved in eqn 9 -// var 9 is solved in eqn 10 +// var 6 is solved in eqn 9 +// var 7 is solved in eqn 3 +// var 8 is solved in eqn 6 +// var 9 is solved in eqn 5 // var 10 is solved in eqn 1 // // // StrongComponents // ======================================== -// {10:9} -// {5:1} -// {2:6} +// {10:1} +// {5:9} +// {2:4} // {1:10} -// {{{9:8}, {3:3}, {7:7}} -// ,{8:4}} Size: 1 linear +// {{{7:3}, {3:6}, {9:2}} +// ,{8:7}} Size: 1 linear // For more information please use "-d=tearingdump". +// {6:8} // {4:5} -// {6:2} // // // diff --git a/testsuite/openmodelica/omsi/omsic/Makefile b/testsuite/openmodelica/omsi/omsic/Makefile index 8a00a43ca7e..6bdd9230c90 100644 --- a/testsuite/openmodelica/omsi/omsic/Makefile +++ b/testsuite/openmodelica/omsi/omsic/Makefile @@ -13,7 +13,6 @@ buildSimpleOMSU.mos \ simulateSimpleOMSU.mos \ problem2.mos \ simpleLoop.mos \ -simpleNonLinLoop.mos # test that currently fail. Move up when fixed. diff --git a/testsuite/openmodelica/omsi/omsic/simpleNonLinLoop.mos b/testsuite/openmodelica/omsi/omsic/simpleNonLinLoop.mos deleted file mode 100644 index 07e87473dfd..00000000000 --- a/testsuite/openmodelica/omsi/omsic/simpleNonLinLoop.mos +++ /dev/null @@ -1,65 +0,0 @@ -// name: simpleNonLinLoop -// keywords: omsi omsic fmu fmi -// status: correct -// teardown_command: rm -rf simpleNonLinLoop.fmutmp simpleNonLinLoop.fmu simpleNonLinLoop_systemCall.log simpleNonLinLoop-tmp simpleNonLinLoop*res.mat simpleNonLinLoop_result_diff.log -// cflags: -d=-newInst -// -// Tests simulating OMSIC OMSU/FMU with OMSimulator and check results -// Simple model containing non-linear loop. -// - -loadString(" -model simpleNonLinLoop - Real a(start=1), b(start=1), c(start=1); - Real s(start=1, fixed=true); - equation - a + b + c=0; - 2*a - 3*b + 2*c=9; - a*a + b*b + c*c=5; - der(s) = time*(a*b*c); -end simpleNonLinLoop; -"); getErrorString(); - -// Simulate model for reference results -simulate(simpleNonLinLoop); getErrorString(); - -// Build omsic FMU -setCommandLineOptions("--simCodeTarget=omsic"); getErrorString(); -buildModelFMU(simpleNonLinLoop); getErrorString(); - -// Simulate with OMSimulator -system(getInstallationDirectoryPath() + "/bin/OMSimulator simpleNonLinLoop.fmu --intervals=500 --tolerance=1e-6 --resultFile=\"simpleNonLinLoop_OMS_res.mat\" --suppressPath=true --tempDir=\"simpleNonLinLoop-tmp\"", "simpleNonLinLoop_systemCall.log"); getErrorString(); -readFile("simpleNonLinLoop_systemCall.log"); - -// Compare results -compareSimulationResults("simpleNonLinLoop_OMS_res.mat", - "simpleNonLinLoop_res.mat", - "simpleNonLinLoop_result_diff.log", - vars = {"der(s)","s","a","b","c"} -); - -// Result: -// true -// "" -// record SimulationResult -// resultFile = "simpleNonLinLoop_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'simpleNonLinLoop', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", -// messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. -// LOG_SUCCESS | info | The simulation finished successfully. -// " -// end SimulationResult; -// "" -// true -// "" -// "simpleNonLinLoop.fmu" -// "" -// 0 -// "" -// "info: maximum step size for 'model.root': 0.001000 -// info: Result file: simpleNonLinLoop_OMS_res.mat (bufferSize=1) -// info: Final Statistics for 'model.root': -// NumSteps = 1289 NumRhsEvals = 1976 NumLinSolvSetups = 372 -// NumNonlinSolvIters = 1975 NumNonlinSolvConvFails = 0 NumErrTestFails = 167 -// " -// {"Files Equal!"} -// endResult diff --git a/testsuite/simulation/libraries/3rdParty/MathematicalAspects/10_Test3PhaseSystemsDummyInit.mos b/testsuite/simulation/libraries/3rdParty/MathematicalAspects/10_Test3PhaseSystemsDummyInit.mos index 648cbc3c8f1..40f45ea4df6 100644 --- a/testsuite/simulation/libraries/3rdParty/MathematicalAspects/10_Test3PhaseSystemsDummyInit.mos +++ b/testsuite/simulation/libraries/3rdParty/MathematicalAspects/10_Test3PhaseSystemsDummyInit.mos @@ -28,9 +28,9 @@ res := OpenModelica.Scripting.compareSimulationResults("Test3PhaseSystemsDummyIn // " // end SimulationResult; // "[simulation/libraries/3rdParty/MathematicalAspects/Test3PhaseSystemsDummyInit.mo:4:3-4:71:writable] Warning: Variable $DER.i_abc[1] has attribute stateSelect=StateSelect.always, but can't be selected as a state. -// [simulation/libraries/3rdParty/MathematicalAspects/Test3PhaseSystemsDummyInit.mo:4:3-4:71:writable] Warning: Variable $DER.i_abc[2] has attribute stateSelect=StateSelect.always, but can't be selected as a state. +// [simulation/libraries/3rdParty/MathematicalAspects/Test3PhaseSystemsDummyInit.mo:4:3-4:71:writable] Warning: Variable $DER.i_abc[3] has attribute stateSelect=StateSelect.always, but can't be selected as a state. // [simulation/libraries/3rdParty/MathematicalAspects/Test3PhaseSystemsDummyInit.mo:4:3-4:71:writable] Warning: Variable $DER.i_abc[1] has attribute stateSelect=StateSelect.always, but can't be selected as a state. -// [simulation/libraries/3rdParty/MathematicalAspects/Test3PhaseSystemsDummyInit.mo:4:3-4:71:writable] Warning: Variable $DER.i_abc[2] has attribute stateSelect=StateSelect.always, but can't be selected as a state. +// [simulation/libraries/3rdParty/MathematicalAspects/Test3PhaseSystemsDummyInit.mo:4:3-4:71:writable] Warning: Variable $DER.i_abc[3] has attribute stateSelect=StateSelect.always, but can't be selected as a state. // " // {"Files Equal!"} // "Warning: 'compareSimulationResults' is deprecated. It is recommended to use 'diffSimulationResults' instead. diff --git a/testsuite/simulation/libraries/3rdParty/PlanarMechanics/PlanarMechanicsForTesting.Examples.TestIdealWheel.mos b/testsuite/simulation/libraries/3rdParty/PlanarMechanics/PlanarMechanicsForTesting.Examples.TestIdealWheel.mos index e0999e449f0..d31b3f7debb 100644 --- a/testsuite/simulation/libraries/3rdParty/PlanarMechanics/PlanarMechanicsForTesting.Examples.TestIdealWheel.mos +++ b/testsuite/simulation/libraries/3rdParty/PlanarMechanics/PlanarMechanicsForTesting.Examples.TestIdealWheel.mos @@ -30,7 +30,8 @@ res := OpenModelica.Scripting.compareSimulationResults("PlanarMechanicsForTestin // LOG_SUCCESS | info | The simulation finished successfully. // " // end SimulationResult; -// "Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). +// "Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac0. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). +// Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " // {"Files Equal!"} // endResult diff --git a/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterHeating.mos b/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterHeating.mos index a63917df0c1..44ce4735fe8 100644 --- a/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterHeating.mos +++ b/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterHeating.mos @@ -201,10 +201,6 @@ getEnvironmentVar("REFERENCEFILES")+"/ThermoSysPro/ThermoSysPro.Examples.SimpleE // resultFile = "ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterHeating_res.mat", // simulationOptions = "startTime = 0.0, stopTime = 1000.0, numberOfIntervals = 500, tolerance = 0.0001, method = 'dassl', fileNamePrefix = 'ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterHeating', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. -// stdout | warning | While solving non-linear system an assertion failed at time 681.59. -// | | | | | The non-linear solver tries to solve the problem that could take some time. -// | | | | | It could help to provide better start-values for the iteration variables. -// | | | | | For more information simulate with -lv LOG_NLS_V // LOG_SUCCESS | info | The simulation finished successfully. // " // end SimulationResult; diff --git a/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterWaterExchanger.mos b/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterWaterExchanger.mos index 0730fa8c780..e29ebf1af69 100644 --- a/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterWaterExchanger.mos +++ b/testsuite/simulation/libraries/3rdParty/ThermoSysPro/ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterWaterExchanger.mos @@ -35,7 +35,10 @@ getErrorString(); // record SimulationResult // resultFile = "ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterWaterExchanger_res.mat", // simulationOptions = "startTime = 0.0, stopTime = 1000.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'ThermoSysPro.Examples.SimpleExamples.TestDynamicWaterWaterExchanger', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", -// messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. +// messages = "assert | debug | Division by zero (g.pi * g.gpi - g.tau * g.pi * g.gtaupi) / p +// stdout | warning | Non-Linear Solver try to handle a problem with a called assert. +// assert | debug | Division by zero (g.pi * g.gpi - g.tau * g.pi * g.gtaupi) / p +// LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // LOG_SUCCESS | info | The simulation finished successfully. // " // end SimulationResult; diff --git a/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel.mos b/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel.mos index 4e5a002201d..217557a7bb8 100644 --- a/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel.mos +++ b/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel.mos @@ -40,8 +40,8 @@ runScript(modelTesting);getErrorString(); // LOG_SUCCESS | info | The simulation finished successfully. // // Files Equal! -// [Modelica 3.1.0+maint.om/Mechanics/MultiBody/Parts.mo:2404:7-2406:80:writable] Warning: Variable $DER.wheel1.der_angles[2] has attribute stateSelect=StateSelect.always, but can't be selected as a state. // [Modelica 3.1.0+maint.om/Mechanics/MultiBody/Parts.mo:2404:7-2406:80:writable] Warning: Variable $DER.wheel1.der_angles[1] has attribute stateSelect=StateSelect.always, but can't be selected as a state. +// [Modelica 3.1.0+maint.om/Mechanics/MultiBody/Parts.mo:2404:7-2406:80:writable] Warning: Variable $DER.wheel1.der_angles[2] has attribute stateSelect=StateSelect.always, but can't be selected as a state. // // "true // " diff --git a/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2.mos b/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2.mos index 4375c3fff57..d6702459c67 100644 --- a/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2.mos +++ b/testsuite/simulation/libraries/msl31/Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2.mos @@ -28,6 +28,7 @@ res := OpenModelica.Scripting.compareSimulationResults("Modelica.Mechanics.Multi // Notification: It was not possible to check the given initialization system for consistency symbolically, because the relevant equations are part of an algebraic loop. This is not supported yet. // Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // Warning: The initial conditions are over specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). +// [Modelica 3.1.0+maint.om/Mechanics/MultiBody/Joints.mo:269:5-279:3:writable] Warning: Variable j1.phi has attribute stateSelect=StateSelect.always, but can't be selected as a state. // " // {"Files Equal!"} // "Warning: 'compareSimulationResults' is deprecated. It is recommended to use 'diffSimulationResults' instead. diff --git a/testsuite/simulation/libraries/msl32/Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder.mos b/testsuite/simulation/libraries/msl32/Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder.mos index e91e41ae542..4b58c017873 100644 --- a/testsuite/simulation/libraries/msl32/Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder.mos +++ b/testsuite/simulation/libraries/msl32/Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder.mos @@ -81,11 +81,11 @@ runScript(modelTesting);getErrorString(); // Simulation options: startTime = 0.0, stopTime = 1e-09, numberOfIntervals = 999, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder', options = '', outputFormat = 'mat', variableFilter = 'time|X1.X1.X1.X1.Q1.vbe|X1.X1.X1.X1.Q2.vbc|X1.X1.X1.X1.Q2.vbe|X1.X1.X1.X1.Q3.vbc|X1.X1.X1.X1.Q3.vbe|X1.X1.X1.X1.Q4.vbc|X1.X1.X1.X1.Q4.vbe|X1.X1.X1.X1.Q5.vbc|X1.X1.X1.X1.Q5.vbe|X1.X1.X1.X2.Q1.vbc|X1.X1.X1.X2.Q1.vbe|X1.X1.X1.X2.Q2.vbe|X1.X1.X1.X2.Q3.vbc|X1.X1.X1.X2.Q3.vbe|X1.X1.X1.X2.Q4.vbc|X1.X1.X1.X2.Q4.vbe|X1.X1.X1.X2.Q5.vbc|X1.X1.X1.X2.Q5.vbe|X1.X1.X2.X3.Q1.vbc|X1.X1.X2.X3.Q1.vbe|X1.X1.X2.X3.Q2.vbe|X1.X1.X2.X3.Q3.vbc|X1.X1.X2.X3.Q3.vbe|X1.X1.X2.X3.Q4.vbc|X1.X1.X2.X3.Q4.vbe|X1.X1.X2.X3.Q5.vbe|X1.X1.X2.X4.Q1.vbc|X1.X1.X2.X4.Q1.vbe|X1.X1.X2.X4.Q2.vbc|X1.X1.X2.X4.Q2.vbe|X1.X1.X2.X4.Q3.vbc|X1.X1.X2.X4.Q3.vbe|X1.X1.X2.X4.Q4.vbc|X1.X1.X2.X4.Q4.vbe|X1.X1.X2.X4.Q5.vbc|X1.X1.X2.X4.Q5.vbe|X1.X2.X2.X9.Q1.vbc|X1.X2.X2.X9.Q1.vbe|X1.X2.X2.X9.Q2.vbc|X1.X2.X2.X9.Q2.vbe|X1.X2.X2.X9.Q3.vbc|X1.X2.X2.X9.Q3.vbe|X1.X2.X2.X9.Q4.vbc|X1.X2.X2.X9.Q4.vbe|X1.X2.X2.X9.Q5.vbc|X1.X2.X2.X9.Q5.vbe', cflags = '', simflags = ' -abortSlowSimulation -alarm=360 -emit_protected' // Result file: Modelica.Electrical.Spice3.Examples.Spice3BenchmarkFourBitBinaryAdder_res.mat // Messages: stdout | info | Using sparse solver for linear system 12, -// | | | | because density of 0.175 remains under threshold of 0.200. +// | | | | because density of 0.158 remains under threshold of 0.200. // stdout | info | Using sparse solver for linear system 25, -// | | | | because density of 0.179 remains under threshold of 0.200. +// | | | | because density of 0.158 remains under threshold of 0.200. // stdout | info | Using sparse solver for linear system 38, -// | | | | because density of 0.179 remains under threshold of 0.200. +// | | | | because density of 0.186 remains under threshold of 0.200. // stdout | info | Using sparse solver for linear system 51, // | | | | because density of 0.186 remains under threshold of 0.200. // stdout | info | Using sparse solver for linear system 75, diff --git a/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint.mos b/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint.mos index 80d9a060dac..35a99a4d8fe 100644 --- a/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint.mos +++ b/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint.mos @@ -39,32 +39,6 @@ runScript(modelTesting);getErrorString(); // // Files Equal! // Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. -// Warning: The linear system: -// 1 : bodyOfConstraint.v_0[1] = 0.2148655148851041 * freeMotionScalarInit.v_rel_a_1 + (-0.5318108111446446) * freeMotionScalarInit.v_rel_a_2 + 0.8191520442889918 * freeMotionScalarInit.v_rel_a_3 -// 2 : 0.0 = 0.8191520442889918 * bodyOfConstraint.v_0[1] + (-0.09960050292505122) * bodyOfConstraint.v_0[2] + 0.5648625214636235 * bodyOfConstraint.v_0[3] -// 3 : bodyOfConstraint.v_0[2] = 0.9663834860128886 * freeMotionScalarInit.v_rel_a_1 + 0.2370288965055821 * freeMotionScalarInit.v_rel_a_2 + (-0.09960050292505122) * freeMotionScalarInit.v_rel_a_3 -// 4 : bodyOfConstraint.v_0[3] = (-0.1411940808771254) * freeMotionScalarInit.v_rel_a_1 + 0.8130157214783864 * freeMotionScalarInit.v_rel_a_2 + 0.5648625214636235 * freeMotionScalarInit.v_rel_a_3 -// [ -// 0.0 , -0.2148655148851041 , 0.0 , 1.0 ; -// -0.5648625214636235 , 0.0 , 0.09960050292505122 , -0.8191520442889918 ; -// 0.0 , -0.9663834860128886 , 1.0 , 0.0 ; -// 1.0 , 0.1411940808771254 , 0.0 , 0.0 -// ] -// * -// [ -// bodyOfConstraint.v_0[3] ; -// freeMotionScalarInit.v_rel_a_1 ; -// bodyOfConstraint.v_0[2] ; -// bodyOfConstraint.v_0[1] -// ] -// = -// [ -// (-0.5318108111446446) * freeMotionScalarInit.v_rel_a_2 + 0.8191520442889918 * freeMotionScalarInit.v_rel_a_3 ; -// -0.0 ; -// 0.2370288965055821 * freeMotionScalarInit.v_rel_a_2 + (-0.09960050292505122) * freeMotionScalarInit.v_rel_a_3 ; -// 0.8130157214783864 * freeMotionScalarInit.v_rel_a_2 + 0.5648625214636235 * freeMotionScalarInit.v_rel_a_3 -// ] -// might be structurally or numerically singular for variable bodyOfConstraint.v_0[1] since U(4,4) = 0.0. It might be hard to solve. Compilation continues anyway. // // "true // " diff --git a/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6.mos b/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6.mos index 87284da196c..165c62fd1af 100644 --- a/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6.mos +++ b/testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6.mos @@ -65,7 +65,7 @@ runScript(modelTesting);getErrorString(); // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 7 systems -// {(27,757,17.6%), (2,11,100.0%), (2,11,100.0%), (3,10,88.9%), (2,11,100.0%), (2,11,100.0%), (2,11,100.0%)} +// {(27,757,17.6%), (3,10,88.9%), (3,10,88.9%), (3,10,88.9%), (2,11,100.0%), (3,10,88.9%), (3,10,88.9%)} // * Non-linear torn systems (#iteration vars, #inner vars): 6 systems // {(2,12), (2,12), (2,12), (2,12), (2,12), (2,12)} // Notification: Model statistics after passing the back-end for simulation: diff --git a/testsuite/simulation/modelica/algorithms_functions/InverseAlgorithm4.mos b/testsuite/simulation/modelica/algorithms_functions/InverseAlgorithm4.mos index c138f3ef81a..851d426d85f 100644 --- a/testsuite/simulation/modelica/algorithms_functions/InverseAlgorithm4.mos +++ b/testsuite/simulation/modelica/algorithms_functions/InverseAlgorithm4.mos @@ -38,7 +38,7 @@ simulate(InverseAlgorithm4, simflags="-lv=LOG_SOTI"); getErrorString(); // | | | | | | [3] Real w(start=0, nominal=1) = 0 (pre: 0) // | | | | | integer variables // | | | | | | [1] Integer y(start=0) = 10 (pre: 10) -// | | | | | | [2] Integer z(start=0) = 10 (pre: 10) +// | | | | | | [2] Integer z(start=0) = 0 (pre: 0) // | | | | | boolean variables // | | | | | | [1] Boolean $whenCondition1(start=true) = false (pre: true) // LOG_SUCCESS | info | The initialization finished successfully without homotopy method. diff --git a/testsuite/simulation/modelica/algorithms_functions/algorithms.mos b/testsuite/simulation/modelica/algorithms_functions/algorithms.mos index b245e8f82cb..4eb9a7d49f1 100644 --- a/testsuite/simulation/modelica/algorithms_functions/algorithms.mos +++ b/testsuite/simulation/modelica/algorithms_functions/algorithms.mos @@ -102,8 +102,8 @@ val(x4,1.0); // " // end SimulationResult; // "Warning: Assuming fixed start value for the following 2 variables: -// x2:VARIABLE(fixed = true ) type: Real // x1:VARIABLE(fixed = true ) type: Real +// x2:VARIABLE(fixed = true ) type: Real // " // 0.0 // 0.1224090895290663 diff --git a/testsuite/simulation/modelica/commonSubExp/cse1.mos b/testsuite/simulation/modelica/commonSubExp/cse1.mos index 5772c6c7bc3..78d27a8fa83 100644 --- a/testsuite/simulation/modelica/commonSubExp/cse1.mos +++ b/testsuite/simulation/modelica/commonSubExp/cse1.mos @@ -47,7 +47,7 @@ simulate(Tearing15); getErrorString(); // // ########### Updated Variable List (jacobian) (6) // ======================================== -// 1: v7.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE(start = 3.0 ) type: Real +// 1: v3.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE(start = 1.0 ) type: Real // 2: v2.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE(start = 1.0 ) type: Real // 3: $res_NLSJac0_2.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE() type: Real unreplaceable // 4: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0:VARIABLE() type: Real unreplaceable @@ -57,9 +57,9 @@ simulate(Tearing15); getErrorString(); // // ########### Updated Equation List (jacobian) (6, 6) // ======================================== -// 1/1 (1): $res_NLSJac0_2.$pDERNLSJac0.dummyVarNLSJac0 = 2.0 * (v1 * $cse1 * v1.SeedNLSJac0 + v1.SeedNLSJac0 * $cse2) + v2.$pDERNLSJac0.dummyVarNLSJac0 + v7.$pDERNLSJac0.dummyVarNLSJac0 - v3.SeedNLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0 = 3.0 * (v1 * $cse1 * v1.SeedNLSJac0 + v1.SeedNLSJac0 * $cse2) + (-7.0) * v2.$pDERNLSJac0.dummyVarNLSJac0 + (-2.0) * v3.SeedNLSJac0 + 3.0 * source * v7.$pDERNLSJac0.dummyVarNLSJac0 [dynamic |0|0|0|0|] -// 3/3 (1): v1 * $cse1 * v1.SeedNLSJac0 + v1.SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 + (-v3.SeedNLSJac0) * source - v7.$pDERNLSJac0.dummyVarNLSJac0 = 0.0 [dynamic |0|0|0|0|] +// 1/1 (1): $res_NLSJac0_2.$pDERNLSJac0.dummyVarNLSJac0 = v1 * $cse1 * v1.SeedNLSJac0 + v1.SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 + (-v3.$pDERNLSJac0.dummyVarNLSJac0) * source - v7.SeedNLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0 = 2.0 * (v1 * $cse1 * v1.SeedNLSJac0 + v1.SeedNLSJac0 * $cse2) + v2.$pDERNLSJac0.dummyVarNLSJac0 + v7.SeedNLSJac0 - v3.$pDERNLSJac0.dummyVarNLSJac0 [dynamic |0|0|0|0|] +// 3/3 (1): 3.0 * (v1 * $cse1 * v1.SeedNLSJac0 + v1.SeedNLSJac0 * $cse2) + (-7.0) * v2.$pDERNLSJac0.dummyVarNLSJac0 + (-2.0) * v3.$pDERNLSJac0.dummyVarNLSJac0 + 3.0 * source * v7.SeedNLSJac0 = 0.0 [dynamic |0|0|0|0|] // 4/4 (1): v1 * $cse1 * v1.SeedNLSJac0 + v1.SeedNLSJac0 * $cse2 + v2.$pDERNLSJac0.dummyVarNLSJac0 = 0.0 [dynamic |0|0|0|0|] // 5/5 (1): $cse2 = sin(v1) [unknown |0|0|0|0|] // 6/6 (1): $cse1 = cos(v1) [unknown |0|0|0|0|] @@ -70,9 +70,9 @@ simulate(Tearing15); getErrorString(); // 1: $res_NLSJac0_1:VARIABLE() type: Real // 2: $res_NLSJac0_2:VARIABLE() type: Real // 3: v2:VARIABLE(start = 1.0 ) type: Real -// 4: v7:VARIABLE(start = 3.0 ) type: Real +// 4: v3:VARIABLE(start = 1.0 ) type: Real // 5: input v1.SeedNLSJac0:STATE_DER() type: Real unreplaceable -// 6: input v3.SeedNLSJac0:STATE_DER() type: Real unreplaceable +// 6: input v7.SeedNLSJac0:STATE_DER() type: Real unreplaceable // // // ########### CSE Replacements (2/46) diff --git a/testsuite/simulation/modelica/commonSubExp/cseFunctionCall8.mos b/testsuite/simulation/modelica/commonSubExp/cseFunctionCall8.mos index 8a510524892..251a7429725 100644 --- a/testsuite/simulation/modelica/commonSubExp/cseFunctionCall8.mos +++ b/testsuite/simulation/modelica/commonSubExp/cseFunctionCall8.mos @@ -86,8 +86,8 @@ simulate(CSE.FunctionCallTest8); getErrorString(); // // ########### Updated Equation List (jacobian) (5, 5) // ======================================== -// 1/1 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = C * $DER.u2.$pDERLSJac0.dummyVarLSJac0 - i.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] -// 2/2 (1): i.$pDERLSJac0.dummyVarLSJac0 = C * $DER.u1.SeedLSJac0 [dynamic |0|0|0|0|] +// 1/1 (1): $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 = C * $DER.u1.SeedLSJac0 - i.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] +// 2/2 (1): i.$pDERLSJac0.dummyVarLSJac0 = C * $DER.u2.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // 3/3 (1): 0.0 = $cse1 * $DER.u1.SeedLSJac0 + $DER.u2.$pDERLSJac0.dummyVarLSJac0 [dynamic |0|0|0|0|] // 4/4 (1): $cse2 = CSE.FunctionCallTest8.g(time ^ 2.0) [unknown |0|0|0|0|] // 5/5 (1): $cse1 = CSE.FunctionCallTest8.f(time, $cse2) [unknown |0|0|0|0|] diff --git a/testsuite/simulation/modelica/daemode/testDAE10.mos b/testsuite/simulation/modelica/daemode/testDAE10.mos index b101d69ef72..f18001a3d77 100644 --- a/testsuite/simulation/modelica/daemode/testDAE10.mos +++ b/testsuite/simulation/modelica/daemode/testDAE10.mos @@ -36,6 +36,6 @@ val(x,1.0); // " // end SimulationResult; // "" -// 1.09815932969972e-05 -// -1.209895926295427e-11 +// 9.10614673541745 +// -9.999500137448521e-05 // endResult diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Electrical.Test3PhaseSystemsFullInitial.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Electrical.Test3PhaseSystemsFullInitial.mos index b117a666b17..96887569061 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Electrical.Test3PhaseSystemsFullInitial.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Electrical.Test3PhaseSystemsFullInitial.mos @@ -19,8 +19,8 @@ buildModel(OverdeterminedInitialization.Electrical.Test3PhaseSystemsFullInitial) // {"OverdeterminedInitialization.Electrical.Test3PhaseSystemsFullInitial","OverdeterminedInitialization.Electrical.Test3PhaseSystemsFullInitial_init.xml"} // "Notification: It was not possible to check the given initialization system for consistency symbolically, because the relevant equations are part of an algebraic loop. This is not supported yet. // Warning: The initial conditions are over specified. The following 3 initial equations are redundant, so they are removed from the initialization sytem: -// $DER.LR1.i_dq0[1] = 0.0 -// $DER.LR1.i_dq0[2] = 0.0 -// $DER.LR1.i_dq0[3] = 0.0. +// $DER.LR2.i_dq0[1] = 0.0 +// $DER.LR2.i_dq0[2] = 0.0 +// $DER.LR2.i_dq0[3] = 0.0. // " // endResult diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipeLumpedPressureInitialization.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipeLumpedPressureInitialization.mos index 0b4df8a6bc7..d4ae0e20daa 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipeLumpedPressureInitialization.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipeLumpedPressureInitialization.mos @@ -24,6 +24,6 @@ buildModel(OverdeterminedInitialization.Fluid.DynamicPipeLumpedPressureInitializ // $DER.pipe.mediums[1].p = 0.0 // $DER.pipe.mediums[2].p = 0.0 // $DER.pipe.mediums[3].p = 0.0 -// $DER.pipe.mediums[5].p = 0.0. +// $DER.pipe.mediums[4].p = 0.0. // " // endResult diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesLargeNSteadyStateInitial.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesLargeNSteadyStateInitial.mos index 65d1cb720a0..41e68742d81 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesLargeNSteadyStateInitial.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesLargeNSteadyStateInitial.mos @@ -20,6 +20,6 @@ buildModel(OverdeterminedInitialization.Fluid.DynamicPipesSeriesLargeNSteadyStat // "Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. // Notification: The following initial equation is redundant and consistent due to simplifications in RemoveSimpleEquations and therefore removed from the initialization problem: der(pipe1.mediums[1].p) = 0.0 -> 0.0 = 0.0 // Warning: The initial conditions are over specified. The following 1 initial equations are redundant, so they are removed from the initialization sytem: -// $DER.pipe2.mediums[1].p = 0.0. +// $DER.pipe1.mediums[50].p = 0.0. // " // endResult diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesSteadyStateInitial.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesSteadyStateInitial.mos index 91309cadeec..576dc673cb2 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesSteadyStateInitial.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.DynamicPipesSeriesSteadyStateInitial.mos @@ -20,6 +20,6 @@ buildModel(OverdeterminedInitialization.Fluid.DynamicPipesSeriesSteadyStateIniti // "Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. // Notification: The following initial equation is redundant and consistent due to simplifications in RemoveSimpleEquations and therefore removed from the initialization problem: der(pipe1.mediums[1].p) = 0.0 -> 0.0 = 0.0 // Warning: The initial conditions are over specified. The following 1 initial equations are redundant, so they are removed from the initialization sytem: -// $DER.pipe2.mediums[1].p = 0.0. +// $DER.pipe1.mediums[5].p = 0.0. // " // endResult diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.TwoVolumesEquationsFullSteadyStateMassAndEnergy.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.TwoVolumesEquationsFullSteadyStateMassAndEnergy.mos index 6f08c636e7b..b63ad151f66 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.TwoVolumesEquationsFullSteadyStateMassAndEnergy.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Fluid.TwoVolumesEquationsFullSteadyStateMassAndEnergy.mos @@ -17,20 +17,19 @@ buildModel(OverdeterminedInitialization.Fluid.TwoVolumesEquationsFullSteadyState // true // "" // -// Nonlinear iteration variables with default zero start attribute in NLSJac0. (6) +// Nonlinear iteration variables with default zero start attribute in NLSJac0. (5) // ======================================== -// 1: $DER.T1:VARIABLE(stateSelect=StateSelect.prefer ) type: Real -// 2: $DER.p1:VARIABLE(stateSelect=StateSelect.prefer ) type: Real -// 3: $DER.T2:VARIABLE(stateSelect=StateSelect.prefer ) type: Real +// 1: $DER.T2:VARIABLE(stateSelect=StateSelect.prefer ) type: Real +// 2: T2:VARIABLE(stateSelect=StateSelect.prefer ) type: Real +// 3: $DER.T1:VARIABLE(stateSelect=StateSelect.prefer ) type: Real // 4: T1:VARIABLE(stateSelect=StateSelect.prefer ) type: Real -// 5: p1:VARIABLE(stateSelect=StateSelect.prefer ) type: Real -// 6: T2:VARIABLE(stateSelect=StateSelect.prefer ) type: Real +// 5: $DER.p1:VARIABLE(stateSelect=StateSelect.prefer ) type: Real // // Info: Only non-linear iteration variables in non-linear eqation systems require start values. All other start values have no influence on convergence and are ignored. Use "-d=dumpLoops" to show all loops. In OMEdit Tools->Options->Simulation->Additional Translation Flags, in OMNotebook call setCommandLineOptions("-d=dumpLoops") // // {"OverdeterminedInitialization.Fluid.TwoVolumesEquationsFullSteadyStateMassAndEnergy","OverdeterminedInitialization.Fluid.TwoVolumesEquationsFullSteadyStateMassAndEnergy_init.xml"} // "Notification: It was not possible to check the given initialization system for consistency symbolically, because the relevant equations are part of an algebraic loop. This is not supported yet. // Warning: The initial conditions are over specified. The following 1 initial equations are redundant, so they are removed from the initialization sytem: -// $DER.M1 = 0.0. +// $DER.E1 = 0.0. // " // endResult diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitial.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitial.mos index e89bdbbeeed..d81dce44815 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitial.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitial.mos @@ -23,10 +23,10 @@ simulate(OverdeterminedInitialization.Mechanical.TwoMassesFullInitial); getError // LOG_SUCCESS | info | The simulation finished successfully. // " // end SimulationResult; -// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass2.v = $START.mass2.v ($START.mass1.v = $START.mass2.v) +// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass1.v = $START.mass1.v ($START.mass2.v = $START.mass1.v) // Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass2.s = $START.mass2.s ($START.mass1.s + 0.5 * (mass1.L + mass2.L) = $START.mass2.s) // Warning: The initial conditions are over specified. The following 2 initial equations are redundant, so they are removed from the initialization sytem: -// mass2.v = $START.mass2.v +// mass1.v = $START.mass1.v // mass2.s = $START.mass2.s. // Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. // " diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitialInconsistent.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitialInconsistent.mos index 4d38aff8624..499ea2baba8 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitialInconsistent.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullInitialInconsistent.mos @@ -25,10 +25,10 @@ simulate(OverdeterminedInitialization.Mechanical.TwoMassesFullInitialInconsisten // | | | | Use -lv=LOG_INIT -w for more information. // " // end SimulationResult; -// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass2.v = $START.mass2.v ($START.mass1.v = $START.mass2.v) +// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass1.v = $START.mass1.v ($START.mass2.v = $START.mass1.v) // Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass2.s = $START.mass2.s ($START.mass1.s + 0.5 * (mass1.L + mass2.L) = $START.mass2.s) // Warning: The initial conditions are over specified. The following 2 initial equations are redundant, so they are removed from the initialization sytem: -// mass2.v = $START.mass2.v +// mass1.v = $START.mass1.v // mass2.s = $START.mass2.s. // Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. // " diff --git a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullSteadyState.mos b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullSteadyState.mos index bcd83d77cb0..15f43914c2c 100644 --- a/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullSteadyState.mos +++ b/testsuite/simulation/modelica/initialization/OverdeterminedInitialization.Mechanical.TwoMassesFullSteadyState.mos @@ -17,11 +17,11 @@ buildModel(OverdeterminedInitialization.Mechanical.TwoMassesFullSteadyState); ge // true // "" // {"OverdeterminedInitialization.Mechanical.TwoMassesFullSteadyState","OverdeterminedInitialization.Mechanical.TwoMassesFullSteadyState_init.xml"} -// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass2.v = $START.mass2.v ($START.mass1.v = $START.mass2.v) -// Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass1.a = $START.mass1.a ($START.mass2.a = $START.mass1.a) +// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass1.v = $START.mass1.v ($START.mass2.v = $START.mass1.v) +// Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: mass2.a = $START.mass2.a ($START.mass1.a = $START.mass2.a) // Warning: The initial conditions are over specified. The following 2 initial equations are redundant, so they are removed from the initialization sytem: -// mass2.v = $START.mass2.v -// mass1.a = $START.mass1.a. +// mass1.v = $START.mass1.v +// mass2.a = $START.mass2.a. // Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. // " // endResult diff --git a/testsuite/simulation/modelica/initialization/autoFixed.mos b/testsuite/simulation/modelica/initialization/autoFixed.mos index 7ca4fee0fc7..5c526832170 100644 --- a/testsuite/simulation/modelica/initialization/autoFixed.mos +++ b/testsuite/simulation/modelica/initialization/autoFixed.mos @@ -126,7 +126,7 @@ res := readSimulationResult("initializationTests.autoFixed.test6_res.mat", {time // " // end SimulationResult; // "Warning: Assuming fixed start value for the following 1 variables: -// b:VARIABLE(start = 2.0 fixed = true ) \"comment b\" type: Real +// a:DISCRETE(start = 1.0 fixed = true ) \"comment a\" type: Real // " // record SimulationResult // resultFile = "initializationTests.autoFixed.test5_res.mat", diff --git a/testsuite/simulation/modelica/initialization/bug_2263.mos b/testsuite/simulation/modelica/initialization/bug_2263.mos index 878af928ff7..dbfe0eda99a 100644 --- a/testsuite/simulation/modelica/initialization/bug_2263.mos +++ b/testsuite/simulation/modelica/initialization/bug_2263.mos @@ -43,12 +43,12 @@ simulate(initializationTests.bug_2263, startTime=0.0, stopTime=0.0, simflags="-i // resultFile = "", // simulationOptions = "startTime = 0.0, stopTime = 0.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'initializationTests.bug_2263', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-iim=symbolic'", // messages = "Simulation execution failed for model: initializationTests.bug_2263 -// LOG_INIT | error | The initialization problem is inconsistent due to the following equation: 0 != 1 = $START.x - x +// LOG_INIT | error | The initialization problem is inconsistent due to the following equation: 0 != -1 = -1.0 - $PRE.x // stdout | warning | Error in initialization. Storing results and exiting. // | | | | Use -lv=LOG_INIT -w for more information. // " // end SimulationResult; -// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: x = $START.x (-1.0 = $START.x) +// "Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: $PRE.x = -1.0 ($START.x = -1.0) // Warning: The initial conditions are over specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " // endResult diff --git a/testsuite/simulation/modelica/initialization/homotopy2.mos b/testsuite/simulation/modelica/initialization/homotopy2.mos index 4c00d06eca0..6f2a6dbfb27 100644 --- a/testsuite/simulation/modelica/initialization/homotopy2.mos +++ b/testsuite/simulation/modelica/initialization/homotopy2.mos @@ -59,9 +59,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // // columnVars(3) // ---------------------- -// index: 1: y.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac1_1.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac1_1.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -87,9 +87,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // // columnVars(3) // ---------------------- -// index: 1: y.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac1_1.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac1_1.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -103,20 +103,20 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // initialEquations: (1) // ======================================== // 7: (NONLINEAR) index:0 jacobian: true -// crefs: y -// 1: z=10.0 + y * (__HOM_LAMBDA - 1.0) + y ^ 2.0 * __HOM_LAMBDA - 10.0 [Real] -// 2: x=z - (9.0 + y) [Real] -// 3: x ^ 2.0 * __HOM_LAMBDA + x * (1.0 - __HOM_LAMBDA) - z (RESIDUAL) +// crefs: x +// 1: z=5.0 + x * (1.0 - __HOM_LAMBDA) + x ^ 2.0 * __HOM_LAMBDA - 5.0 [Real] +// 2: y=z - (9.0 + x) [Real] +// 3: y ^ 2.0 * __HOM_LAMBDA + y * (-1.0 + __HOM_LAMBDA) - z (RESIDUAL) // Jacobian idx: 0 -// 4: z.$pDERNLSJac0.dummyVarNLSJac0=y.SeedNLSJac0 * (-1.0 + 2.0 * y * __HOM_LAMBDA + __HOM_LAMBDA) [Real] -// 5: x.$pDERNLSJac0.dummyVarNLSJac0=z.$pDERNLSJac0.dummyVarNLSJac0 - y.SeedNLSJac0 [Real] -// 6: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0=2.0 * x * x.$pDERNLSJac0.dummyVarNLSJac0 * __HOM_LAMBDA + x.$pDERNLSJac0.dummyVarNLSJac0 * (1.0 - __HOM_LAMBDA) - z.$pDERNLSJac0.dummyVarNLSJac0 [Real] +// 4: z.$pDERNLSJac0.dummyVarNLSJac0=x.SeedNLSJac0 * (1.0 - __HOM_LAMBDA) + 2.0 * x * x.SeedNLSJac0 * __HOM_LAMBDA [Real] +// 5: y.$pDERNLSJac0.dummyVarNLSJac0=z.$pDERNLSJac0.dummyVarNLSJac0 - x.SeedNLSJac0 [Real] +// 6: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0=2.0 * y * y.$pDERNLSJac0.dummyVarNLSJac0 * __HOM_LAMBDA + y.$pDERNLSJac0.dummyVarNLSJac0 * (-1.0 + __HOM_LAMBDA) - z.$pDERNLSJac0.dummyVarNLSJac0 [Real] // // columnVars(3) // ---------------------- -// index: 1: x.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -158,15 +158,15 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // jacobianMatrices: // ======================================== // Jacobian idx: 0 -// 4: z.$pDERNLSJac0.dummyVarNLSJac0=y.SeedNLSJac0 * (-1.0 + 2.0 * y * __HOM_LAMBDA + __HOM_LAMBDA) [Real] -// 5: x.$pDERNLSJac0.dummyVarNLSJac0=z.$pDERNLSJac0.dummyVarNLSJac0 - y.SeedNLSJac0 [Real] -// 6: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0=2.0 * x * x.$pDERNLSJac0.dummyVarNLSJac0 * __HOM_LAMBDA + x.$pDERNLSJac0.dummyVarNLSJac0 * (1.0 - __HOM_LAMBDA) - z.$pDERNLSJac0.dummyVarNLSJac0 [Real] +// 4: z.$pDERNLSJac0.dummyVarNLSJac0=x.SeedNLSJac0 * (1.0 - __HOM_LAMBDA) + 2.0 * x * x.SeedNLSJac0 * __HOM_LAMBDA [Real] +// 5: y.$pDERNLSJac0.dummyVarNLSJac0=z.$pDERNLSJac0.dummyVarNLSJac0 - x.SeedNLSJac0 [Real] +// 6: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0=2.0 * y * y.$pDERNLSJac0.dummyVarNLSJac0 * __HOM_LAMBDA + y.$pDERNLSJac0.dummyVarNLSJac0 * (-1.0 + __HOM_LAMBDA) - z.$pDERNLSJac0.dummyVarNLSJac0 [Real] // // columnVars(3) // ---------------------- -// index: 1: x.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac0_1.$pDERNLSJac0.dummyVarNLSJac0 (no alias) initial: no arrCref index:() [] // Jacobian idx: 1 // 11: z.$pDERNLSJac1.dummyVarNLSJac1=2.0 * x * x.SeedNLSJac1 [Real] // 12: y.$pDERNLSJac1.dummyVarNLSJac1=z.$pDERNLSJac1.dummyVarNLSJac1 - x.SeedNLSJac1 [Real] @@ -174,9 +174,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // // columnVars(3) // ---------------------- -// index: 1: y.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac1_1.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac1_1.$pDERNLSJac1.dummyVarNLSJac1 (no alias) initial: no arrCref index:() [] // Jacobian idx: 2 // // Jacobian idx: 3 @@ -192,9 +192,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // ======================================== // algVars (3) // ---------------------- -// index: 0: x (no alias) initial: no arrCref index:(1) [] -// index: 1: y (no alias) initial: no arrCref index:(2) [] -// index: 2: z (no alias) initial: no arrCref index:(3) [] +// index:0: x (no alias) initial: no arrCref index:(1) [] +// index:1: y (no alias) initial: no arrCref index:(2) [] +// index:2: z (no alias) initial: no arrCref index:(3) [] // functions: // ----------- // @@ -207,7 +207,7 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // end SimulationResult; // "Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac0. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " -// {{0.0,0.0},{3.0,3.0},{-3.0,-3.0},{9.0,9.0}} +// {{0.0,0.0},{4.162277660168379,4.162277660168379},{4.162277660168378,4.162277660168378},{17.32455532033676,17.32455532033676}} // "" // true // "" @@ -233,9 +233,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // // columnVars(3) // ---------------------- -// index: 1: y.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac4_1.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac4_1.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -261,9 +261,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // // columnVars(3) // ---------------------- -// index: 1: y.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac4_1.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac4_1.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -277,20 +277,20 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // initialEquations: (1) // ======================================== // 7: (NONLINEAR) index:0 jacobian: true -// crefs: y -// 1: z=10.0 + y * (__HOM_LAMBDA - 1.0) + y ^ 2.0 * __HOM_LAMBDA - 10.0 [Real] -// 2: x=z - (9.0 + y) [Real] -// 3: x ^ 2.0 * __HOM_LAMBDA + x * (1.0 - __HOM_LAMBDA) - z (RESIDUAL) +// crefs: x +// 1: z=5.0 + x * (1.0 - __HOM_LAMBDA) + x ^ 2.0 * __HOM_LAMBDA - 5.0 [Real] +// 2: y=z - (9.0 + x) [Real] +// 3: y ^ 2.0 * __HOM_LAMBDA + y * (-1.0 + __HOM_LAMBDA) - z (RESIDUAL) // Jacobian idx: 0 -// 4: z.$pDERNLSJac2.dummyVarNLSJac2=y.SeedNLSJac2 * (-1.0 + 2.0 * y * __HOM_LAMBDA + __HOM_LAMBDA) [Real] -// 5: x.$pDERNLSJac2.dummyVarNLSJac2=z.$pDERNLSJac2.dummyVarNLSJac2 - y.SeedNLSJac2 [Real] -// 6: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2=2.0 * x * x.$pDERNLSJac2.dummyVarNLSJac2 * __HOM_LAMBDA + x.$pDERNLSJac2.dummyVarNLSJac2 * (1.0 - __HOM_LAMBDA) - z.$pDERNLSJac2.dummyVarNLSJac2 [Real] +// 4: z.$pDERNLSJac2.dummyVarNLSJac2=x.SeedNLSJac2 * (1.0 - __HOM_LAMBDA) + 2.0 * x * x.SeedNLSJac2 * __HOM_LAMBDA [Real] +// 5: y.$pDERNLSJac2.dummyVarNLSJac2=z.$pDERNLSJac2.dummyVarNLSJac2 - x.SeedNLSJac2 [Real] +// 6: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2=2.0 * y * y.$pDERNLSJac2.dummyVarNLSJac2 * __HOM_LAMBDA + y.$pDERNLSJac2.dummyVarNLSJac2 * (-1.0 + __HOM_LAMBDA) - z.$pDERNLSJac2.dummyVarNLSJac2 [Real] // // columnVars(3) // ---------------------- -// index: 1: x.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -300,20 +300,20 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // ======================================== // 13: (LINEAR) index:0 jacobian: true // variables: -// index: -1: z (no alias) initial: no arrCref index:() [] +// index:-1: z (no alias) initial: no arrCref index:() [] // b-vector: -// 8: y=10.0 - (10.0 + z) [Real] -// 9: x=z - (9.0 + y) [Real] -// 10: z - x (RESIDUAL) +// 8: x=5.0 + z - 5.0 [Real] +// 9: y=z - (9.0 + x) [Real] +// 10: z + y (RESIDUAL) // Jacobian idx: 1 -// 11: x.$pDERLSJac3.dummyVarLSJac3=2.0 * z.SeedLSJac3 [Real] -// 12: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3=z.SeedLSJac3 - x.$pDERLSJac3.dummyVarLSJac3 [Real] +// 11: y.$pDERLSJac3.dummyVarLSJac3=0.0 [Real] +// 12: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3=z.SeedLSJac3 + y.$pDERLSJac3.dummyVarLSJac3 [Real] // // columnVars(3) // ---------------------- -// index: 1: x.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] -// index: 0: y.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] +// index:0: x.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] // simJac: // // @@ -351,24 +351,24 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // jacobianMatrices: // ======================================== // Jacobian idx: 0 -// 4: z.$pDERNLSJac2.dummyVarNLSJac2=y.SeedNLSJac2 * (-1.0 + 2.0 * y * __HOM_LAMBDA + __HOM_LAMBDA) [Real] -// 5: x.$pDERNLSJac2.dummyVarNLSJac2=z.$pDERNLSJac2.dummyVarNLSJac2 - y.SeedNLSJac2 [Real] -// 6: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2=2.0 * x * x.$pDERNLSJac2.dummyVarNLSJac2 * __HOM_LAMBDA + x.$pDERNLSJac2.dummyVarNLSJac2 * (1.0 - __HOM_LAMBDA) - z.$pDERNLSJac2.dummyVarNLSJac2 [Real] +// 4: z.$pDERNLSJac2.dummyVarNLSJac2=x.SeedNLSJac2 * (1.0 - __HOM_LAMBDA) + 2.0 * x * x.SeedNLSJac2 * __HOM_LAMBDA [Real] +// 5: y.$pDERNLSJac2.dummyVarNLSJac2=z.$pDERNLSJac2.dummyVarNLSJac2 - x.SeedNLSJac2 [Real] +// 6: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2=2.0 * y * y.$pDERNLSJac2.dummyVarNLSJac2 * __HOM_LAMBDA + y.$pDERNLSJac2.dummyVarNLSJac2 * (-1.0 + __HOM_LAMBDA) - z.$pDERNLSJac2.dummyVarNLSJac2 [Real] // // columnVars(3) // ---------------------- -// index: 1: x.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac2_1.$pDERNLSJac2.dummyVarNLSJac2 (no alias) initial: no arrCref index:() [] // Jacobian idx: 1 -// 11: x.$pDERLSJac3.dummyVarLSJac3=2.0 * z.SeedLSJac3 [Real] -// 12: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3=z.SeedLSJac3 - x.$pDERLSJac3.dummyVarLSJac3 [Real] +// 11: y.$pDERLSJac3.dummyVarLSJac3=0.0 [Real] +// 12: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3=z.SeedLSJac3 + y.$pDERLSJac3.dummyVarLSJac3 [Real] // // columnVars(3) // ---------------------- -// index: 1: x.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] -// index: 0: y.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] +// index:0: x.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac3_1.$pDERLSJac3.dummyVarLSJac3 (no alias) initial: no arrCref index:() [] // Jacobian idx: 2 // 17: z.$pDERNLSJac4.dummyVarNLSJac4=2.0 * x * x.SeedNLSJac4 [Real] // 18: y.$pDERNLSJac4.dummyVarNLSJac4=z.$pDERNLSJac4.dummyVarNLSJac4 - x.SeedNLSJac4 [Real] @@ -376,9 +376,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // // columnVars(3) // ---------------------- -// index: 1: y.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] -// index: 0: z.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] -// index: 0: $res_NLSJac4_1.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:1: y.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:0: z.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] +// index:0: $res_NLSJac4_1.$pDERNLSJac4.dummyVarNLSJac4 (no alias) initial: no arrCref index:() [] // Jacobian idx: 3 // // Jacobian idx: 4 @@ -394,9 +394,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // ======================================== // algVars (3) // ---------------------- -// index: 0: x (no alias) initial: no arrCref index:(1) [] -// index: 1: y (no alias) initial: no arrCref index:(2) [] -// index: 2: z (no alias) initial: no arrCref index:(3) [] +// index:0: x (no alias) initial: no arrCref index:(1) [] +// index:1: y (no alias) initial: no arrCref index:(2) [] +// index:2: z (no alias) initial: no arrCref index:(3) [] // functions: // ----------- // @@ -409,6 +409,6 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.homotopy // end SimulationResult; // "Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac2. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " -// {{0.0,0.0},{3.0,3.0},{-3.0,-3.0},{9.0,9.0}} +// {{0.0,0.0},{4.162277660168379,4.162277660168379},{4.162277660168378,4.162277660168378},{17.32455532033676,17.32455532033676}} // "" // endResult diff --git a/testsuite/simulation/modelica/initialization/scaling1.mos b/testsuite/simulation/modelica/initialization/scaling1.mos index 42d636a643a..f005f52ed07 100644 --- a/testsuite/simulation/modelica/initialization/scaling1.mos +++ b/testsuite/simulation/modelica/initialization/scaling1.mos @@ -59,6 +59,6 @@ res := readSimulationResult("initializationTests.forest_res.mat", {time, foxes, // end SimulationResult; // "Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac0. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " -// {{0.0,0.0},{6.051192201167479,6.051192201167479},{841.0267641520732,841.0267641520732}} +// {{0.0,0.0},{52.88214113216586,52.88214113216586},{255.6399025145935,255.6399025145935}} // "" // endResult diff --git a/testsuite/simulation/modelica/initialization/scaling2.mos b/testsuite/simulation/modelica/initialization/scaling2.mos index 42b9f9fe265..02d6ffc7c86 100644 --- a/testsuite/simulation/modelica/initialization/scaling2.mos +++ b/testsuite/simulation/modelica/initialization/scaling2.mos @@ -59,6 +59,6 @@ res := readSimulationResult("initializationTests.forest_res.mat", {time, foxes, // end SimulationResult; // "Warning: There are nonlinear iteration variables with default zero start attribute found in NLSJac0. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " -// {{0.0,0.0},{6.051192201167479,6.051192201167479},{841.0267641520732,841.0267641520732}} +// {{0.0,0.0},{52.88214113216586,52.88214113216586},{255.6399025145935,255.6399025145935}} // "" // endResult diff --git a/testsuite/simulation/modelica/initialization/underdeterminedTest6.mos b/testsuite/simulation/modelica/initialization/underdeterminedTest6.mos index c8a35c242c4..51270f9e3df 100644 --- a/testsuite/simulation/modelica/initialization/underdeterminedTest6.mos +++ b/testsuite/simulation/modelica/initialization/underdeterminedTest6.mos @@ -55,9 +55,9 @@ res := OpenModelica.Scripting.readSimulationResult("initializationTests.underdet // " // end SimulationResult; // "Warning: Assuming fixed start value for the following 2 variables: -// y:VARIABLE(start = -4.0 fixed = true ) type: Real -// x:VARIABLE(start = -3.0 fixed = true ) type: Real +// b:DISCRETE(start = -2.0 fixed = true ) type: Real +// a:DISCRETE(start = -1.0 fixed = true ) type: Real // " -// {{0.0,0.0},{-3.0,-3.0},{1.0,1.0},{-3.0,-3.0},{-4.0,-4.0}} +// {{0.0,0.0},{-1.0,-1.0},{1.0,1.0},{-1.0,-1.0},{-2.0,-2.0}} // "" // endResult diff --git a/testsuite/simulation/modelica/inlineFunction/forceComplexEq2.mos b/testsuite/simulation/modelica/inlineFunction/forceComplexEq2.mos index 87d969e9ed1..3189743bdaf 100644 --- a/testsuite/simulation/modelica/inlineFunction/forceComplexEq2.mos +++ b/testsuite/simulation/modelica/inlineFunction/forceComplexEq2.mos @@ -86,8 +86,8 @@ val(x3,{0,1}); // 2: x1:VARIABLE() type: Real // // residual vars (2) -// 1: x3:VARIABLE() type: Real -// 2: x2:VARIABLE() type: Real +// 1: x2:VARIABLE() type: Real +// 2: x3:VARIABLE() type: Real // // internal equations (2) // 1/1 (1): x2 = 3.0 * (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) [dynamic |0|0|0|0|] diff --git a/testsuite/simulation/modelica/inlineFunction/forceComplexEq3.mos b/testsuite/simulation/modelica/inlineFunction/forceComplexEq3.mos index be37d80c95d..4ddbbf3d990 100644 --- a/testsuite/simulation/modelica/inlineFunction/forceComplexEq3.mos +++ b/testsuite/simulation/modelica/inlineFunction/forceComplexEq3.mos @@ -106,11 +106,11 @@ val(x3,{0,1}); // 3: a$$Pfoo$Pf6:VARIABLE() type: Real // 4: b$$Pfoo$Pf7:VARIABLE() type: Real // 5: y1$$Pfoo$Pf4:VARIABLE() type: Real -// 6: x4:VARIABLE() type: Real -// 7: a$$Pfoo$Pf2:VARIABLE() type: Real -// 8: y2$$Pfoo$Pf1:VARIABLE() type: Real -// 9: b$$Pfoo$Pf3:VARIABLE() type: Real -// 10: y1$$Pfoo$Pf0:VARIABLE() type: Real +// 6: y1$$Pfoo$Pf0:VARIABLE() type: Real +// 7: x4:VARIABLE() type: Real +// 8: a$$Pfoo$Pf2:VARIABLE() type: Real +// 9: y2$$Pfoo$Pf1:VARIABLE() type: Real +// 10: b$$Pfoo$Pf3:VARIABLE() type: Real // // residual vars (2) // 1: x2:VARIABLE() type: Real @@ -122,15 +122,15 @@ val(x3,{0,1}); // 3/3 (1): a$$Pfoo$Pf6 = 10.0 + sin(time) - (x1 + x3 - x2) [unknown |0|0|0|0|] // 4/4 (1): b$$Pfoo$Pf7 = 23.0 * a$$Pfoo$Pf6 [unknown |0|0|0|0|] // 5/5 (1): y1$$Pfoo$Pf4 = b$$Pfoo$Pf7 * (x1 + x3 - x2) - a$$Pfoo$Pf6 [unknown |0|0|0|0|] -// 6/6 (1): x4 = y1$$Pfoo$Pf4 [dynamic |0|0|0|0|] -// 7/7 (1): a$$Pfoo$Pf2 = 10.0 + 3.0 * x1 + cos(time) - (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) [unknown |0|0|0|0|] -// 8/8 (1): y2$$Pfoo$Pf1 = -5.0 + 3.0 * (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) [unknown |0|0|0|0|] -// 9/9 (1): b$$Pfoo$Pf3 = 23.0 * a$$Pfoo$Pf2 [unknown |0|0|0|0|] -// 10/10 (1): y1$$Pfoo$Pf0 = b$$Pfoo$Pf3 * (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) - a$$Pfoo$Pf2 [unknown |0|0|0|0|] +// 6/6 (1): x1 = y1$$Pfoo$Pf0 [dynamic |0|0|0|0|] +// 7/7 (1): x4 = y1$$Pfoo$Pf4 [dynamic |0|0|0|0|] +// 8/8 (1): a$$Pfoo$Pf2 = 10.0 + 3.0 * x1 + cos(time) - (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) [unknown |0|0|0|0|] +// 9/9 (1): y2$$Pfoo$Pf1 = -5.0 + 3.0 * (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) [unknown |0|0|0|0|] +// 10/10 (1): b$$Pfoo$Pf3 = 23.0 * a$$Pfoo$Pf2 [unknown |0|0|0|0|] // // residual equations (2) // 1/1 (1): x2 = y2$$Pfoo$Pf1 [dynamic |0|0|0|0|] -// 2/2 (1): x1 = y1$$Pfoo$Pf0 [dynamic |0|0|0|0|] +// 2/2 (1): y1$$Pfoo$Pf0 = b$$Pfoo$Pf3 * (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) - a$$Pfoo$Pf2 [unknown |0|0|0|0|] // // record SimulationResult // resultFile = "foo_res.mat", diff --git a/testsuite/simulation/modelica/inlineFunction/forceComplexEq4.mos b/testsuite/simulation/modelica/inlineFunction/forceComplexEq4.mos index 8122e434c13..a809c88bae0 100644 --- a/testsuite/simulation/modelica/inlineFunction/forceComplexEq4.mos +++ b/testsuite/simulation/modelica/inlineFunction/forceComplexEq4.mos @@ -89,8 +89,8 @@ val(x3,{0,1}); // 2: x1:VARIABLE() type: Real // // residual vars (2) -// 1: x3:VARIABLE() type: Real -// 2: x2:VARIABLE() type: Real +// 1: x2:VARIABLE() type: Real +// 2: x3:VARIABLE() type: Real // // internal equations (2) // 1/1 (1): x2 = -5.0 + 3.0 * (1.0 + 3.0 * x2 + x3 + (-5.0) * x4) [dynamic |0|0|0|0|] diff --git a/testsuite/simulation/modelica/linear_system/problem2.mos b/testsuite/simulation/modelica/linear_system/problem2.mos index 4f4a0de5914..243edff78cc 100644 --- a/testsuite/simulation/modelica/linear_system/problem2.mos +++ b/testsuite/simulation/modelica/linear_system/problem2.mos @@ -201,13 +201,13 @@ val(i2, 1.0); // 0.0 // 0.2804903282692988 // true -// INeqn => i3 = u2 / r3[1] -// INeqn => i2 = u2 / r2[2] +// INeqn => i2 = u2 / r2[1] +// INeqn => i3 = u2 / r3[2] // INeqn => i1 = i3 + i2[3] // INeqn => u1 = r1 * i1[4] // INres => u1 + u2 = u0[1] -// OUTeqn => i3 = u2 / r3[0] -// OUTeqn => i2 = u2 / r2[1] +// OUTeqn => i2 = u2 / r2[0] +// OUTeqn => i3 = u2 / r3[1] // OUTeqn => i1 = __OMC__1$RTEARINGF * u2[2] // OUTeqn => u1 = __OMC__2$RTEARINGF * u2[3] // OUTres => __OMC__3$RTEARINGF * u2 = u0[0] @@ -284,9 +284,9 @@ val(i2, 1.0); // " // end SimulationResult; // "" -// 9.518569369879021e-28 +// 4.259848888193464e-29 // 2.804903282692988 -// 2.655481430415245e-28 +// 3.954165287420322e-29 // 0.2804903282692989 // record SimulationResult // resultFile = "linear_system.problem2_res.mat", @@ -310,6 +310,6 @@ val(i2, 1.0); // "" // 0.0 // 2.804903282692988 -// 0.0 -// 0.2804903282692988 +// -0.0 +// 0.2804903282692989 // endResult diff --git a/testsuite/simulation/modelica/nonlinear_system/Makefile b/testsuite/simulation/modelica/nonlinear_system/Makefile index c4138f1b665..7d7cdb68ddc 100644 --- a/testsuite/simulation/modelica/nonlinear_system/Makefile +++ b/testsuite/simulation/modelica/nonlinear_system/Makefile @@ -42,7 +42,6 @@ problem7_symjac.mos \ problem7_symjac_tearing.mos \ problem8_newton.mos \ problem9.mos \ -problem10.mos \ problem11.mos \ problem12.mos \ TestInputIteration.mos \ diff --git a/testsuite/simulation/modelica/nonlinear_system/bug_2841.mos b/testsuite/simulation/modelica/nonlinear_system/bug_2841.mos index 687581d5c99..eea486f93b0 100644 --- a/testsuite/simulation/modelica/nonlinear_system/bug_2841.mos +++ b/testsuite/simulation/modelica/nonlinear_system/bug_2841.mos @@ -47,40 +47,40 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_INIT_HOMOTOPY | info | Model contains homotopy operator: Use adaptive homotopy method to solve initialization problem. To disable initialization with homotopy operator use \"-noHomotopyOnFirstTry\". // LOG_NLS | info | ############ Solve nonlinear system 7 at time 0 ############ // | | | | | initial variable values: -// | | | | | | [ 1] x = 50000 nom = 100000 -// | | | | | | [ 2] y = 5e-06 nom = 1e-05 +// | | | | | | [ 1] y = 5e-06 nom = 1e-05 +// | | | | | | [ 2] x = 50000 nom = 100000 // LOG_NLS_V | info | ------------------------------------------------------ // LOG_NLS_V | info | SOLVING NON-LINEAR SYSTEM USING MIXED SOLVER (Newton/Homotopy solver) // LOG_NLS_V | info | EQUATION NUMBER: 7 // LOG_NLS_V | info | TIME: 0.0000000000e+00 // LOG_NLS_V | info | number of function calls (so far!): 0 // LOG_NLS_V | info | System values [2-dim] -// | | | | | 50000 5e-06 +// | | | | | 5e-06 50000 // LOG_NLS_V | info | Nominal values [2-dim] -// | | | | | 100000 1e-05 +// | | | | | 1e-05 100000 // LOG_NLS_V | info | Scaling values [3-dim] -// | | | | | 100000 1e-05 1 +// | | | | | 1e-05 100000 1 // LOG_NLS_V | info | x0 [2-dim] -// | | | | | 50000 5e-06 +// | | | | | 5e-06 50000 // LOG_NLS_V | info | indRow: [2-dim] // | | | | | 0 1 // LOG_NLS_V | info | indCol: [3-dim] -// | | | | | 1 0 2 +// | | | | | 0 1 2 // LOG_NLS_V | info | vector x (solution): [3-dim] -// | | | | | -2.5510381 -0.51701271 1 +// | | | | | -0.51701271 -2.5510381 1 // LOG_NLS_V | info | regular initial point!!! // LOG_NLS_V | info | ****************************************************** // LOG_NLS_V | info | NEWTON SOLVER STARTED! equation number: 7 // LOG_NLS_V | info | maximum number of function evaluation: 200 // LOG_NLS_V | info | nls status // | | | | | variables -// | | | | | [ 1] x = 50000 nom = 100000 min = -1.7976931e+308 max = 1.7976931e+308 -// | | | | | [ 2] y = 5e-06 nom = 1e-05 min = -1.7976931e+308 max = 1.7976931e+308 +// | | | | | [ 1] y = 5e-06 nom = 1e-05 min = -1.7976931e+308 max = 1.7976931e+308 +// | | | | | [ 2] x = 50000 nom = 100000 min = -1.7976931e+308 max = 1.7976931e+308 // LOG_NLS_V | info | Iteration: 1 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -205103.81 step = -255103.81 old = 50000 -// | | | | | [ 2] y = -1.7012708e-07 step = -5.1701271e-06 old = 5e-06 +// | | | | | [ 1] y = -1.7012708e-07 step = -5.1701271e-06 old = 5e-06 +// | | | | | [ 2] x = -205103.81 step = -255103.81 old = 50000 // LOG_NLS_V | info | Need to damp, grad_f = -4.3608668960e+00 // LOG_NLS_V | info | Need to damp, error_f = 1.4766290827e+00 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 @@ -100,8 +100,8 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 2 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -46310.553 step = 158793.26 old = -205103.81 -// | | | | | [ 2] y = 1.0588367e-06 step = 1.2289638e-06 old = -1.7012708e-07 +// | | | | | [ 1] y = 1.0588367e-06 step = 1.2289638e-06 old = -1.7012708e-07 +// | | | | | [ 2] x = -46310.553 step = 158793.26 old = -205103.81 // LOG_NLS_V | info | Need to damp, grad_f = -4.4776262184e+00 // LOG_NLS_V | info | Need to damp, error_f = 1.4962663898e+00 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 @@ -121,8 +121,8 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 3 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -85181.842 step = -38871.289 old = -46310.553 -// | | | | | [ 2] y = 4.8481624e-06 step = 3.7893257e-06 old = 1.0588367e-06 +// | | | | | [ 1] y = 4.8481624e-06 step = 3.7893257e-06 old = 1.0588367e-06 +// | | | | | [ 2] x = -85181.842 step = -38871.289 old = -46310.553 // LOG_NLS_V | info | Need to damp, grad_f = -1.8494141676e+00 // LOG_NLS_V | info | Need to damp, error_f = 9.6161691115e-01 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 @@ -144,8 +144,8 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 4 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -77891.638 step = -10705.397 old = -67186.241 -// | | | | | [ 2] y = 3.3408112e-06 step = 2.4693046e-07 old = 3.0938807e-06 +// | | | | | [ 1] y = 3.3408112e-06 step = 2.4693046e-07 old = 3.0938807e-06 +// | | | | | [ 2] x = -77891.638 step = -10705.397 old = -67186.241 // LOG_NLS_V | info | Need to damp, grad_f = -1.2077471379e-01 // LOG_NLS_V | info | Need to damp, error_f = 2.4573839117e-01 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 @@ -165,8 +165,8 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 5 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -77392.651 step = 498.98725 old = -77891.638 -// | | | | | [ 2] y = 3.312016e-06 step = -2.8795153e-08 old = 3.3408112e-06 +// | | | | | [ 1] y = 3.312016e-06 step = -2.8795153e-08 old = 3.3408112e-06 +// | | | | | [ 2] x = -77392.651 step = 498.98725 old = -77891.638 // LOG_NLS_V | info | Need to damp, grad_f = -7.7943645363e-04 // LOG_NLS_V | info | Need to damp, error_f = 1.9741282299e-02 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 @@ -186,41 +186,41 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 6 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -77390.689 step = 1.9617465 old = -77392.651 -// | | | | | [ 2] y = 3.3118158e-06 step = -2.0020165e-10 old = 3.312016e-06 +// | | | | | [ 1] y = 3.3118158e-06 step = -2.0020165e-10 old = 3.312016e-06 +// | | | | | [ 2] x = -77390.689 step = 1.9617465 old = -77392.651 // LOG_NLS_V | info | Need to damp, grad_f = -2.4520373942e-08 // LOG_NLS_V | info | Need to damp, error_f = 1.1072572859e-04 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 -// LOG_NLS_V | info | Need to damp, error_f1 = 3.3977697965e-09 +// LOG_NLS_V | info | Need to damp, error_f1 = 3.3977700044e-09 // LOG_NLS_V | info | Need to damp, forced error = 9.8081495766e-09 // LOG_NLS_V | info | function values: [2-dim] -// | | | | | 3.1818097e-09 1.1920263e-09 +// | | | | | 3.1818099e-09 1.1920263e-09 // LOG_NLS_V | info | scaled function values: [2-dim] -// | | | | | 6.3385044e-10 4.9722581e-10 +// | | | | | 6.3385048e-10 4.9722581e-10 // LOG_NLS_V | info | error measurements: // LOG_NLS_V | info | delta_x = 1.9617464993e+00 // LOG_NLS_V | info | delta_x_scaled = 2.8029483704e-05 // LOG_NLS_V | info | newtonXTol = 1.0000000000e-12 -// LOG_NLS_V | info | error_f = 3.3977697965e-09 -// LOG_NLS_V | info | error_f_scaled = 8.0560528943e-10 +// LOG_NLS_V | info | error_f = 3.3977700044e-09 +// LOG_NLS_V | info | error_f_scaled = 8.0560532423e-10 // LOG_NLS_V | info | newtonFTol = 1.0000000000e-12 // LOG_NLS_V | info | Iteration: 7 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -77390.689 step = 4.0495539e-05 old = -77390.689 -// | | | | | [ 2] y = 3.3118158e-06 step = -6.9084715e-15 old = 3.3118158e-06 -// LOG_NLS_V | info | Need to damp, grad_f = -2.3089679180e-17 -// LOG_NLS_V | info | Need to damp, error_f = 3.3977697965e-09 +// | | | | | [ 1] y = 3.3118158e-06 step = -6.9084721e-15 old = 3.3118158e-06 +// | | | | | [ 2] x = -77390.689 step = 4.0495536e-05 old = -77390.689 +// LOG_NLS_V | info | Need to damp, grad_f = -2.3089682006e-17 +// LOG_NLS_V | info | Need to damp, error_f = 3.3977700044e-09 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 // LOG_NLS_V | info | Need to damp, error_f1 = 2.2204460493e-16 -// LOG_NLS_V | info | Need to damp, forced error = 9.2358716720e-18 +// LOG_NLS_V | info | Need to damp, forced error = 9.2358728024e-18 // LOG_NLS_V | info | function values: [2-dim] -// | | | | | 2.220446e-16 0 +// | | | | | -2.220446e-16 0 // LOG_NLS_V | info | scaled function values: [2-dim] -// | | | | | 4.4236473e-17 0 +// | | | | | -4.4236473e-17 0 // LOG_NLS_V | info | error measurements: -// LOG_NLS_V | info | delta_x = 4.0495538608e-05 -// LOG_NLS_V | info | delta_x_scaled = 8.0078626897e-10 +// LOG_NLS_V | info | delta_x = 4.0495535620e-05 +// LOG_NLS_V | info | delta_x_scaled = 8.0078630793e-10 // LOG_NLS_V | info | newtonXTol = 1.0000000000e-12 // LOG_NLS_V | info | error_f = 2.2204460493e-16 // LOG_NLS_V | info | error_f_scaled = 4.4236472988e-17 @@ -228,17 +228,17 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 8 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -77390.689 step = -2.9880129e-12 old = -77390.689 -// | | | | | [ 2] y = 3.3118158e-06 step = -6.2675771e-22 old = 3.3118158e-06 +// | | | | | [ 1] y = 3.3118158e-06 step = 6.2675771e-22 old = 3.3118158e-06 +// | | | | | [ 2] x = -77390.689 step = 2.9880129e-12 old = -77390.689 // LOG_NLS_V | info | Need to damp, grad_f = -9.8607613153e-32 // LOG_NLS_V | info | Need to damp, error_f = 2.2204460493e-16 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 // LOG_NLS_V | info | Need to damp, error_f1 = 2.2204460493e-16 // LOG_NLS_V | info | Need to damp, forced error = 3.9443045261e-32 // LOG_NLS_V | info | function values: [2-dim] -// | | | | | -2.220446e-16 0 +// | | | | | 2.220446e-16 0 // LOG_NLS_V | info | scaled function values: [2-dim] -// | | | | | -4.4236473e-17 0 +// | | | | | 4.4236473e-17 0 // LOG_NLS_V | info | error measurements: // LOG_NLS_V | info | delta_x = 2.9880129153e-12 // LOG_NLS_V | info | delta_x_scaled = 6.9433956834e-17 @@ -250,26 +250,26 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | NEWTON SOLVER DID CONVERGE TO A SOLUTION!!! // LOG_NLS_V | info | nls status // | | | | | variables -// | | | | | [ 1] x = -77390.689 nom = 100000 min = -1.7976931e+308 max = 1.7976931e+308 -// | | | | | [ 2] y = 3.3118158e-06 nom = 1e-05 min = -1.7976931e+308 max = 1.7976931e+308 +// | | | | | [ 1] y = 3.3118158e-06 nom = 1e-05 min = -1.7976931e+308 max = 1.7976931e+308 +// | | | | | [ 2] x = -77390.689 nom = 100000 min = -1.7976931e+308 max = 1.7976931e+308 // LOG_NLS_V | info | ****************************************************** // LOG_NLS_V | info | SYSTEM SOLVED // LOG_NLS_V | info | homotopy method: 0 // LOG_NLS_V | info | number of function calls: 10 // LOG_NLS_V | info | nls status // | | | | | variables -// | | | | | [ 1] x = -77390.689 nom = 100000 min = -1.7976931e+308 max = 1.7976931e+308 -// | | | | | [ 2] y = 3.3118158e-06 nom = 1e-05 min = -1.7976931e+308 max = 1.7976931e+308 +// | | | | | [ 1] y = 3.3118158e-06 nom = 1e-05 min = -1.7976931e+308 max = 1.7976931e+308 +// | | | | | [ 2] x = -77390.689 nom = 100000 min = -1.7976931e+308 max = 1.7976931e+308 // LOG_NLS_V | info | ------------------------------------------------------ // LOG_NLS_V | info | Solution [2-dim] -// | | | | | -77390.689 3.3118158e-06 +// | | | | | 3.3118158e-06 -77390.689 // LOG_NLS | info | | Solution status: SOLVED // | | | | | | number of iterations : 8 // | | | | | | number of function evaluations : 10 // | | | | | | number of jacobian evaluations : 8 // | | | | | | solution values: -// | | | | | | [ 1] x = -77390.689 -// | | | | | | [ 2] y = 3.3118158e-06 +// | | | | | | [ 1] y = 3.3118158e-06 +// | | | | | | [ 2] x = -77390.689 // LOG_INIT_V | info | parameter values // | | | | | real parameters // | | | | | | [1] parameter Real xn(start=100000, fixed=true) = 100000 @@ -303,7 +303,7 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | indCol: [3-dim] // | | | | | 1 0 2 // LOG_NLS_V | info | vector x (solution): [3-dim] -// | | | | | 2.9880129e-17 6.2675771e-17 1 +// | | | | | -2.9880129e-17 -6.2675771e-17 1 // LOG_NLS_V | info | regular initial point!!! // LOG_NLS_V | info | ****************************************************** // LOG_NLS_V | info | NEWTON SOLVER STARTED! equation number: 18 @@ -315,17 +315,17 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 1 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -77390.689 step = 2.9880129e-12 old = -77390.689 -// | | | | | [ 2] y = 3.3118158e-06 step = 6.2675771e-22 old = 3.3118158e-06 +// | | | | | [ 1] x = -77390.689 step = -2.9880129e-12 old = -77390.689 +// | | | | | [ 2] y = 3.3118158e-06 step = -6.2675771e-22 old = 3.3118158e-06 // LOG_NLS_V | info | Need to damp, grad_f = -9.8607613153e-32 // LOG_NLS_V | info | Need to damp, error_f = 2.2204460493e-16 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 // LOG_NLS_V | info | Need to damp, error_f1 = 2.2204460493e-16 // LOG_NLS_V | info | Need to damp, forced error = 3.9443045261e-32 // LOG_NLS_V | info | function values: [2-dim] -// | | | | | 2.220446e-16 0 +// | | | | | -2.220446e-16 0 // LOG_NLS_V | info | scaled function values: [2-dim] -// | | | | | 4.4236473e-17 0 +// | | | | | -4.4236473e-17 0 // LOG_NLS_V | info | error measurements: // LOG_NLS_V | info | delta_x = 2.9880129153e-12 // LOG_NLS_V | info | delta_x_scaled = 6.9433956834e-17 @@ -380,7 +380,7 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | indCol: [3-dim] // | | | | | 1 0 2 // LOG_NLS_V | info | vector x (solution): [3-dim] -// | | | | | -2.9880129e-17 -6.2675771e-17 1 +// | | | | | 2.9880129e-17 6.2675771e-17 1 // LOG_NLS_V | info | regular initial point!!! // LOG_NLS_V | info | ****************************************************** // LOG_NLS_V | info | NEWTON SOLVER STARTED! equation number: 18 @@ -392,17 +392,17 @@ simulate(nonlinearSolverTests.bug_2841, stopTime=0.0, simflags="-lv=LOG_INIT_V,L // LOG_NLS_V | info | Iteration: 1 // LOG_NLS_V | info | newton step // | | | | | variables -// | | | | | [ 1] x = -77390.689 step = -2.9880129e-12 old = -77390.689 -// | | | | | [ 2] y = 3.3118158e-06 step = -6.2675771e-22 old = 3.3118158e-06 +// | | | | | [ 1] x = -77390.689 step = 2.9880129e-12 old = -77390.689 +// | | | | | [ 2] y = 3.3118158e-06 step = 6.2675771e-22 old = 3.3118158e-06 // LOG_NLS_V | info | Need to damp, grad_f = -9.8607613153e-32 // LOG_NLS_V | info | Need to damp, error_f = 2.2204460493e-16 // LOG_NLS_V | info | Need to damp this!! lambda1 = 1.0000000000e+00 // LOG_NLS_V | info | Need to damp, error_f1 = 2.2204460493e-16 // LOG_NLS_V | info | Need to damp, forced error = 3.9443045261e-32 // LOG_NLS_V | info | function values: [2-dim] -// | | | | | -2.220446e-16 0 +// | | | | | 2.220446e-16 0 // LOG_NLS_V | info | scaled function values: [2-dim] -// | | | | | -4.4236473e-17 0 +// | | | | | 4.4236473e-17 0 // LOG_NLS_V | info | error measurements: // LOG_NLS_V | info | delta_x = 2.9880129153e-12 // LOG_NLS_V | info | delta_x_scaled = 6.9433956834e-17 diff --git a/testsuite/simulation/modelica/nonlinear_system/nonlinearDelayTest.mos b/testsuite/simulation/modelica/nonlinear_system/nonlinearDelayTest.mos index 1848a5414e5..a86fd4f0a63 100644 --- a/testsuite/simulation/modelica/nonlinear_system/nonlinearDelayTest.mos +++ b/testsuite/simulation/modelica/nonlinear_system/nonlinearDelayTest.mos @@ -41,7 +41,7 @@ val(y, {0.0,0.25,0.5,0.75,1.0}); // // Nonlinear iteration variables with default zero start attribute in NLSJac0. (1) // ======================================== -// 1: x2:VARIABLE() type: Real +// 1: x1:VARIABLE() type: Real // // Info: Only non-linear iteration variables in non-linear eqation systems require start values. All other start values have no influence on convergence and are ignored. Use "-d=dumpLoops" to show all loops. In OMEdit Tools->Options->Simulation->Additional Translation Flags, in OMNotebook call setCommandLineOptions("-d=dumpLoops") // @@ -55,7 +55,7 @@ val(y, {0.0,0.25,0.5,0.75,1.0}); // "Warning: Assuming fixed start value for the following 1 variables: // y:VARIABLE(fixed = true ) type: Real // " -// {-1.572302755514847,-1.618421380238098,-1.738059371463845,-1.818945608412304,-1.907039392827518} -// {0.7861513777574233,0.7500029985869119,0.6996133736697597,0.609294856314359,0.4995556640036673} -// {0.0,-0.201552919327918,-0.4383459284777347,-0.7178289496303617,-1.04466743649189} +// {1.572302755514847,1.618421380238098,1.738059371463845,1.818945608412304,1.907039392827518} +// {-0.7861513777574233,-0.7500029985869119,-0.6996133736697597,-0.609294856314359,-0.4995556640036673} +// {0.0,0.201552919327918,0.4383459284777347,0.7178289496303617,1.04466743649189} // endResult diff --git a/testsuite/simulation/modelica/nonlinear_system/problem10.mos b/testsuite/simulation/modelica/nonlinear_system/problem10.mos deleted file mode 100644 index 8ef13f290dc..00000000000 --- a/testsuite/simulation/modelica/nonlinear_system/problem10.mos +++ /dev/null @@ -1,32 +0,0 @@ -// name: problem10 -// status: correct -// teardown_command: rm -f nonlinear_system.problem10* _nonlinear_system.problem10* output.log -// cflags: -d=-newInst - -loadFile("nlsTestPackage.mo"); getErrorString(); -setDebugFlags("NLSanalyticJacobian"); getErrorString(); - -simulate(nonlinear_system.problem10, stopTime=0); getErrorString(); - -val(x, 0); -val(y, 0); - -getErrorString(); - -// Result: -// true -// "" -// true -// "" -// record SimulationResult -// resultFile = "nonlinear_system.problem10_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 0.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'nonlinear_system.problem10', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", -// messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. -// LOG_SUCCESS | info | The simulation finished successfully. -// " -// end SimulationResult; -// "" -// 100000.0 -// 0.001 -// "" -// endResult diff --git a/testsuite/simulation/modelica/nonlinear_system/problem4.mos b/testsuite/simulation/modelica/nonlinear_system/problem4.mos index 04fe8096ec4..04c452b06a3 100644 --- a/testsuite/simulation/modelica/nonlinear_system/problem4.mos +++ b/testsuite/simulation/modelica/nonlinear_system/problem4.mos @@ -20,6 +20,6 @@ val(x2,{0.0}); // " // end SimulationResult; // "" -// {1.098159329699769e-05} // {9.106146739866926} +// {1.098159329699769e-05} // endResult diff --git a/testsuite/simulation/modelica/nonlinear_system/problem4_symjac.mos b/testsuite/simulation/modelica/nonlinear_system/problem4_symjac.mos index d73f7dcff43..654673407f9 100644 --- a/testsuite/simulation/modelica/nonlinear_system/problem4_symjac.mos +++ b/testsuite/simulation/modelica/nonlinear_system/problem4_symjac.mos @@ -26,6 +26,6 @@ val(x2,{0.0}); // " // end SimulationResult; // "" -// {1.098159329699769e-05} -// {9.106146739866926} +// {9.106146739866842} +// {1.098159329699779e-05} // endResult diff --git a/testsuite/simulation/modelica/nonlinear_system/problem4_symjac_tearing.mos b/testsuite/simulation/modelica/nonlinear_system/problem4_symjac_tearing.mos index 067500cad4c..606bafb054b 100644 --- a/testsuite/simulation/modelica/nonlinear_system/problem4_symjac_tearing.mos +++ b/testsuite/simulation/modelica/nonlinear_system/problem4_symjac_tearing.mos @@ -23,6 +23,6 @@ val(x2,{0.0}); // " // end SimulationResult; // "" -// {1.098159329699769e-05} // {9.106146739866926} +// {1.098159329699769e-05} // endResult diff --git a/testsuite/simulation/modelica/resolveLoops/NPendulum2.mos b/testsuite/simulation/modelica/resolveLoops/NPendulum2.mos index 6cbc8b8af74..94bb5ebb489 100644 --- a/testsuite/simulation/modelica/resolveLoops/NPendulum2.mos +++ b/testsuite/simulation/modelica/resolveLoops/NPendulum2.mos @@ -52,7 +52,7 @@ res := OpenModelica.Scripting.compareSimulationResults("Pendulum.Pendulum2_res.m // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 1 system -// {(3,35,88.9%)} +// {(2,36,100.0%)} // * Non-linear torn systems (#iteration vars, #inner vars): 0 systems // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 4 diff --git a/testsuite/simulation/modelica/resolveLoops/NPendulum3.mos b/testsuite/simulation/modelica/resolveLoops/NPendulum3.mos index cccb7f8c6a7..1da8e38fbad 100644 --- a/testsuite/simulation/modelica/resolveLoops/NPendulum3.mos +++ b/testsuite/simulation/modelica/resolveLoops/NPendulum3.mos @@ -55,7 +55,7 @@ res := OpenModelica.Scripting.compareSimulationResults("Pendulum.Pendulum3_res.m // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 1 system -// {(4,64,93.8%)} +// {(5,63,84.0%)} // * Non-linear torn systems (#iteration vars, #inner vars): 0 systems // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 4 diff --git a/testsuite/simulation/modelica/start_value_selection/UnevaluateableFixedAttribute.mos b/testsuite/simulation/modelica/start_value_selection/UnevaluateableFixedAttribute.mos index dd20d462435..29bfb0e3788 100644 --- a/testsuite/simulation/modelica/start_value_selection/UnevaluateableFixedAttribute.mos +++ b/testsuite/simulation/modelica/start_value_selection/UnevaluateableFixedAttribute.mos @@ -19,7 +19,7 @@ simulate(UnevaluateableFixedAttribute); getErrorString(); // end SimulationResult; // "[simulation/modelica/start_value_selection/UnevaluateableFixedAttribute.mo:7:3-7:46:writable] Warning: z has unevaluateable fixed attribute value \"preferredStatesUnfixedStart\" use values from start attribute(s) \"true\" // [simulation/modelica/start_value_selection/UnevaluateableFixedAttribute.mo:6:3-6:41:writable] Warning: y has unevaluateable fixed attribute value \"preferredStatesUnfixed\" use values from start attribute(s) \"false\" -// Notification: It was not possible to check the given initialization system for consistency symbolically, because the relevant equations are part of an algebraic loop. This is not supported yet. +// Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: x = $START.x (-$START.z ^ 2.0 = $START.x) // Warning: The initial conditions are over specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->Show additional information from the initialization process, in OMNotebook call setCommandLineOptions(\"-d=initialization\"). // " // endResult diff --git a/testsuite/simulation/modelica/tearing/Tearing12-cel.mos b/testsuite/simulation/modelica/tearing/Tearing12-cel.mos index d853eb06456..1dde002a595 100644 --- a/testsuite/simulation/modelica/tearing/Tearing12-cel.mos +++ b/testsuite/simulation/modelica/tearing/Tearing12-cel.mos @@ -52,7 +52,7 @@ simulate(Tearing12); getErrorString(); // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 1 system -// {(60,848,77.4%)} +// {(59,849,78.3%)} // * Non-linear torn systems (#iteration vars, #inner vars): 0 systems // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 4 diff --git a/testsuite/simulation/modelica/tearing/Tearing12-celMC3.mos b/testsuite/simulation/modelica/tearing/Tearing12-celMC3.mos index 39da65b08f2..201a607b8e9 100644 --- a/testsuite/simulation/modelica/tearing/Tearing12-celMC3.mos +++ b/testsuite/simulation/modelica/tearing/Tearing12-celMC3.mos @@ -53,7 +53,7 @@ simulate(Tearing12); getErrorString(); // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 1 system -// {(52,856,81.2%)} +// {(48,860,82.6%)} // * Non-linear torn systems (#iteration vars, #inner vars): 0 systems // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 4 diff --git a/testsuite/simulation/modelica/tearing/Tearing12-omc.mos b/testsuite/simulation/modelica/tearing/Tearing12-omc.mos index 5271b1249a5..ad380c7f0f3 100644 --- a/testsuite/simulation/modelica/tearing/Tearing12-omc.mos +++ b/testsuite/simulation/modelica/tearing/Tearing12-omc.mos @@ -51,7 +51,7 @@ simulate(Tearing12); getErrorString(); // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 1 system -// {(122,786,33.5%)} +// {(125,783,36.0%)} // * Non-linear torn systems (#iteration vars, #inner vars): 0 systems // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 4 diff --git a/testsuite/simulation/modelica/tearing/Tearing16-cel.mos b/testsuite/simulation/modelica/tearing/Tearing16-cel.mos index 07cf28a304a..13e1102599b 100644 --- a/testsuite/simulation/modelica/tearing/Tearing16-cel.mos +++ b/testsuite/simulation/modelica/tearing/Tearing16-cel.mos @@ -56,7 +56,7 @@ val(i3,0.0); getErrorString(); // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 0 systems // * Non-linear torn systems (#iteration vars, #inner vars): 1 system -// {(2,4)} +// {(3,3)} // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 1 // * Number of states: 0 ('-d=stateselection' for list of states) @@ -79,15 +79,15 @@ val(i3,0.0); getErrorString(); // * Non-linear torn systems (#iteration vars, #inner vars): 1 system // {(2,5)} // " -// 1.090933356950908e-24 +// 1.17951120141919e-24 // "" // 0.0 // "" // 0.0 // "" -// 3.302928029719854e-13 +// 3.434401259927544e-13 // "" -// 3.302928029719854e-13 +// 3.434401259927544e-13 // "" // 0.0 // "" diff --git a/testsuite/simulation/modelica/tearing/Tearing7-omc.mos b/testsuite/simulation/modelica/tearing/Tearing7-omc.mos index c0794c972d6..9d5a62fb80e 100644 --- a/testsuite/simulation/modelica/tearing/Tearing7-omc.mos +++ b/testsuite/simulation/modelica/tearing/Tearing7-omc.mos @@ -62,7 +62,7 @@ val(R1.v,0.2); getErrorString(); // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 1 system -// {(2,18,100.0%)} +// {(3,17,100.0%)} // * Non-linear torn systems (#iteration vars, #inner vars): 0 systems // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 1 diff --git a/testsuite/simulation/modelica/tearing/Tearing8-celMC3sorted.mos b/testsuite/simulation/modelica/tearing/Tearing8-celMC3sorted.mos index 1d858429a6e..84fc7226764 100644 --- a/testsuite/simulation/modelica/tearing/Tearing8-celMC3sorted.mos +++ b/testsuite/simulation/modelica/tearing/Tearing8-celMC3sorted.mos @@ -70,7 +70,7 @@ val(R1.v,0.2); getErrorString(); // * Mixed (continuous/discrete) equation systems: 0 // Notification: Torn system details for strict tearing set: // * Linear torn systems (#iteration vars, #inner vars, density): 1 system -// {(3,26,100.0%)} +// {(2,27,100.0%)} // * Non-linear torn systems (#iteration vars, #inner vars): 0 systems // Notification: Model statistics after passing the back-end for simulation: // * Number of independent subsystems: 1 diff --git a/testsuite/simulation/modelica/tearing/dynamicTearing2.mos b/testsuite/simulation/modelica/tearing/dynamicTearing2.mos index f96d4c1e2b4..64c8a2d25aa 100644 --- a/testsuite/simulation/modelica/tearing/dynamicTearing2.mos +++ b/testsuite/simulation/modelica/tearing/dynamicTearing2.mos @@ -54,10 +54,10 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // strict set: // 39: (LINEAR) index:1 jacobian: true // variables: -// index: -1: x7 (no alias) initial: no arrCref index:() [] -// index: -1: x5 (no alias) initial: no arrCref index:() [] -// index: -1: x3 (no alias) initial: no arrCref index:() [] -// index: -1: x2 (no alias) initial: no arrCref index:() [] +// index:-1: x7 (no alias) initial: no arrCref index:() [] +// index:-1: x5 (no alias) initial: no arrCref index:() [] +// index:-1: x3 (no alias) initial: no arrCref index:() [] +// index:-1: x2 (no alias) initial: no arrCref index:() [] // b-vector: // 24: x1=(-x2) - $cse4 [Real] // 25: x4=0.25 * (-$cse5) * x2 - (-0.5) * x3 [Real] @@ -81,14 +81,14 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // // columnVars(8) // ---------------------- -// index: 3: x8.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 2: x6.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 1: x4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: x1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 3: $res_LSJac1_4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 2: $res_LSJac1_3.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 1: $res_LSJac1_2.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac1_1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:3: x8.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:2: x6.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: x4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: x1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:3: $res_LSJac1_4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:2: $res_LSJac1_3.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: $res_LSJac1_2.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac1_1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] // // casual set: // 55: (LINEAR) index:2 jacobian: true @@ -114,14 +114,14 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // // columnVars(8) // ---------------------- -// index: 6: x8.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 5: x7.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 4: x6.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 3: x5.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 2: x4.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 1: x3.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: x1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac2_1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:6: x8.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:5: x7.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:4: x6.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:3: x5.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:2: x4.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:1: x3.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: x1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac2_1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -141,10 +141,10 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // strict set: // 39: (LINEAR) index:1 jacobian: true // variables: -// index: -1: x7 (no alias) initial: no arrCref index:() [] -// index: -1: x5 (no alias) initial: no arrCref index:() [] -// index: -1: x3 (no alias) initial: no arrCref index:() [] -// index: -1: x2 (no alias) initial: no arrCref index:() [] +// index:-1: x7 (no alias) initial: no arrCref index:() [] +// index:-1: x5 (no alias) initial: no arrCref index:() [] +// index:-1: x3 (no alias) initial: no arrCref index:() [] +// index:-1: x2 (no alias) initial: no arrCref index:() [] // b-vector: // 24: x1=(-x2) - $cse4 [Real] // 25: x4=0.25 * (-$cse5) * x2 - (-0.5) * x3 [Real] @@ -168,14 +168,14 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // // columnVars(8) // ---------------------- -// index: 3: x8.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 2: x6.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 1: x4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: x1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 3: $res_LSJac1_4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 2: $res_LSJac1_3.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 1: $res_LSJac1_2.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac1_1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:3: x8.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:2: x6.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: x4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: x1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:3: $res_LSJac1_4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:2: $res_LSJac1_3.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: $res_LSJac1_2.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac1_1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] // // casual set: // 55: (LINEAR) index:2 jacobian: true @@ -201,14 +201,14 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // // columnVars(8) // ---------------------- -// index: 6: x8.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 5: x7.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 4: x6.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 3: x5.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 2: x4.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 1: x3.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: x1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac2_1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:6: x8.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:5: x7.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:4: x6.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:3: x5.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:2: x4.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:1: x3.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: x1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac2_1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] // // ======================================== // @@ -223,45 +223,45 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // ======================================== // 20: (LINEAR) index:0 jacobian: true // variables: -// index: -1: x2 (no alias) initial: no arrCref index:() [] -// index: -1: x4 (no alias) initial: no arrCref index:() [] -// index: -1: x6 (no alias) initial: no arrCref index:() [] -// index: -1: x7 (no alias) initial: no arrCref index:() [] +// index:-1: x2 (no alias) initial: no arrCref index:() [] +// index:-1: x3 (no alias) initial: no arrCref index:() [] +// index:-1: x5 (no alias) initial: no arrCref index:() [] +// index:-1: x7 (no alias) initial: no arrCref index:() [] // b-vector: // 1: x8=(sin(time) - x7) / (-7.0) [Real] -// 2: x5=(-x6) - 0.5 * sin(2.0 * time) * x7 [Real] -// 3: x3=cos(time) * x5 - (-2.0) * x4 [Real] +// 2: x6=(-x5) - 0.5 * sin(2.0 * time) * x7 [Real] +// 3: x4=(-0.5) * (cos(time) * x5 - x3) [Real] // 4: x1=sin(time) * x3 - 2.0 * x2 [Real] -// 8: x7 - x8 + cos(time) * x6 (RESIDUAL) -// 7: sin(time) + x2 + x1 (RESIDUAL) -// 6: 4.0 * x4 + (-2.0) * x3 + cos(time) * x2 (RESIDUAL) -// 5: 5.0 * x5 - x6 + sin(time) * x4 (RESIDUAL) +// 8: 5.0 * x5 - x6 + sin(time) * x4 (RESIDUAL) +// 7: 4.0 * x4 + (-2.0) * x3 + cos(time) * x2 (RESIDUAL) +// 6: sin(time) + x2 + x1 (RESIDUAL) +// 5: x7 - x8 + cos(time) * x6 (RESIDUAL) // Jacobian idx: 0 -// 9: $cse1=sin(time) [Real] -// 10: $cse2=cos(time) [Real] +// 9: $cse1=cos(time) [Real] +// 10: $cse2=sin(time) [Real] // 11: $cse3=sin(2.0 * time) [Real] // 12: x8.$pDERLSJac0.dummyVarLSJac0=(-x7.SeedLSJac0) / (-7.0) [Real] -// 13: x5.$pDERLSJac0.dummyVarLSJac0=(-x6.SeedLSJac0) - 0.5 * $cse3 * x7.SeedLSJac0 [Real] -// 14: x3.$pDERLSJac0.dummyVarLSJac0=$cse2 * x5.$pDERLSJac0.dummyVarLSJac0 - (-2.0) * x4.SeedLSJac0 [Real] -// 15: x1.$pDERLSJac0.dummyVarLSJac0=$cse1 * x3.$pDERLSJac0.dummyVarLSJac0 - 2.0 * x2.SeedLSJac0 [Real] -// 16: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0=$cse2 * x6.SeedLSJac0 + x7.SeedLSJac0 - x8.$pDERLSJac0.dummyVarLSJac0 [Real] -// 17: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0=x1.$pDERLSJac0.dummyVarLSJac0 + x2.SeedLSJac0 [Real] -// 18: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0=$cse2 * x2.SeedLSJac0 + (-2.0) * x3.$pDERLSJac0.dummyVarLSJac0 + 4.0 * x4.SeedLSJac0 [Real] -// 19: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0=$cse1 * x4.SeedLSJac0 + 5.0 * x5.$pDERLSJac0.dummyVarLSJac0 - x6.SeedLSJac0 [Real] +// 13: x6.$pDERLSJac0.dummyVarLSJac0=(-x5.SeedLSJac0) - 0.5 * $cse3 * x7.SeedLSJac0 [Real] +// 14: x4.$pDERLSJac0.dummyVarLSJac0=(-0.5) * ($cse1 * x5.SeedLSJac0 - x3.SeedLSJac0) [Real] +// 15: x1.$pDERLSJac0.dummyVarLSJac0=$cse2 * x3.SeedLSJac0 - 2.0 * x2.SeedLSJac0 [Real] +// 16: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0=$cse2 * x4.$pDERLSJac0.dummyVarLSJac0 + 5.0 * x5.SeedLSJac0 - x6.$pDERLSJac0.dummyVarLSJac0 [Real] +// 17: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0=$cse1 * x2.SeedLSJac0 + (-2.0) * x3.SeedLSJac0 + 4.0 * x4.$pDERLSJac0.dummyVarLSJac0 [Real] +// 18: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0=x1.$pDERLSJac0.dummyVarLSJac0 + x2.SeedLSJac0 [Real] +// 19: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0=$cse1 * x6.$pDERLSJac0.dummyVarLSJac0 + x7.SeedLSJac0 - x8.$pDERLSJac0.dummyVarLSJac0 [Real] // // columnVars(11) // ---------------------- -// index: 6: x1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 5: x3.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 4: x5.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 3: x8.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: $cse3 (no alias) protected hideResult initial: no arrCref index:() [] -// index: 1: $cse2 (no alias) protected hideResult initial: no arrCref index:() [] -// index: 2: $cse1 (no alias) protected hideResult initial: no arrCref index:() [] -// index: 3: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 2: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 1: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:6: x1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:5: x4.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:4: x6.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:3: x8.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: $cse3 (no alias) protected hideResult initial: no arrCref index:() [] +// index:1: $cse2 (no alias) protected hideResult initial: no arrCref index:() [] +// index:2: $cse1 (no alias) protected hideResult initial: no arrCref index:() [] +// index:3: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:2: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:1: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] // simJac: // // @@ -305,31 +305,31 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // jacobianMatrices: // ======================================== // Jacobian idx: 0 -// 9: $cse1=sin(time) [Real] -// 10: $cse2=cos(time) [Real] +// 9: $cse1=cos(time) [Real] +// 10: $cse2=sin(time) [Real] // 11: $cse3=sin(2.0 * time) [Real] // 12: x8.$pDERLSJac0.dummyVarLSJac0=(-x7.SeedLSJac0) / (-7.0) [Real] -// 13: x5.$pDERLSJac0.dummyVarLSJac0=(-x6.SeedLSJac0) - 0.5 * $cse3 * x7.SeedLSJac0 [Real] -// 14: x3.$pDERLSJac0.dummyVarLSJac0=$cse2 * x5.$pDERLSJac0.dummyVarLSJac0 - (-2.0) * x4.SeedLSJac0 [Real] -// 15: x1.$pDERLSJac0.dummyVarLSJac0=$cse1 * x3.$pDERLSJac0.dummyVarLSJac0 - 2.0 * x2.SeedLSJac0 [Real] -// 16: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0=$cse2 * x6.SeedLSJac0 + x7.SeedLSJac0 - x8.$pDERLSJac0.dummyVarLSJac0 [Real] -// 17: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0=x1.$pDERLSJac0.dummyVarLSJac0 + x2.SeedLSJac0 [Real] -// 18: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0=$cse2 * x2.SeedLSJac0 + (-2.0) * x3.$pDERLSJac0.dummyVarLSJac0 + 4.0 * x4.SeedLSJac0 [Real] -// 19: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0=$cse1 * x4.SeedLSJac0 + 5.0 * x5.$pDERLSJac0.dummyVarLSJac0 - x6.SeedLSJac0 [Real] +// 13: x6.$pDERLSJac0.dummyVarLSJac0=(-x5.SeedLSJac0) - 0.5 * $cse3 * x7.SeedLSJac0 [Real] +// 14: x4.$pDERLSJac0.dummyVarLSJac0=(-0.5) * ($cse1 * x5.SeedLSJac0 - x3.SeedLSJac0) [Real] +// 15: x1.$pDERLSJac0.dummyVarLSJac0=$cse2 * x3.SeedLSJac0 - 2.0 * x2.SeedLSJac0 [Real] +// 16: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0=$cse2 * x4.$pDERLSJac0.dummyVarLSJac0 + 5.0 * x5.SeedLSJac0 - x6.$pDERLSJac0.dummyVarLSJac0 [Real] +// 17: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0=$cse1 * x2.SeedLSJac0 + (-2.0) * x3.SeedLSJac0 + 4.0 * x4.$pDERLSJac0.dummyVarLSJac0 [Real] +// 18: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0=x1.$pDERLSJac0.dummyVarLSJac0 + x2.SeedLSJac0 [Real] +// 19: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0=$cse1 * x6.$pDERLSJac0.dummyVarLSJac0 + x7.SeedLSJac0 - x8.$pDERLSJac0.dummyVarLSJac0 [Real] // // columnVars(11) // ---------------------- -// index: 6: x1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 5: x3.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 4: x5.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 3: x8.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: $cse3 (no alias) protected hideResult initial: no arrCref index:() [] -// index: 1: $cse2 (no alias) protected hideResult initial: no arrCref index:() [] -// index: 2: $cse1 (no alias) protected hideResult initial: no arrCref index:() [] -// index: 3: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 2: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 1: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:6: x1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:5: x4.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:4: x6.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:3: x8.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: $cse3 (no alias) protected hideResult initial: no arrCref index:() [] +// index:1: $cse2 (no alias) protected hideResult initial: no arrCref index:() [] +// index:2: $cse1 (no alias) protected hideResult initial: no arrCref index:() [] +// index:3: $res_LSJac0_4.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:2: $res_LSJac0_3.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:1: $res_LSJac0_2.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac0_1.$pDERLSJac0.dummyVarLSJac0 (no alias) initial: no arrCref index:() [] // Jacobian idx: 1 // 32: $res_LSJac1_1.$pDERLSJac1.dummyVarLSJac1=x2.SeedLSJac1 - $cse4 * x3.SeedLSJac1 [Real] // 33: x4.$pDERLSJac1.dummyVarLSJac1=0.25 * (-$cse5) * x2.SeedLSJac1 - (-0.5) * x3.SeedLSJac1 [Real] @@ -341,14 +341,14 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // // columnVars(8) // ---------------------- -// index: 3: x8.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 2: x6.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 1: x4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: x1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 3: $res_LSJac1_4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 2: $res_LSJac1_3.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 1: $res_LSJac1_2.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac1_1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:3: x8.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:2: x6.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: x4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: x1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:3: $res_LSJac1_4.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:2: $res_LSJac1_3.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:1: $res_LSJac1_2.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac1_1.$pDERLSJac1.dummyVarLSJac1 (no alias) initial: no arrCref index:() [] // Jacobian idx: 2 // 48: x3.$pDERLSJac2.dummyVarLSJac2=x2.SeedLSJac2 / $cse4 [Real] // 49: x4.$pDERLSJac2.dummyVarLSJac2=0.25 * (-$cse5) * x2.SeedLSJac2 - (-0.5) * x3.$pDERLSJac2.dummyVarLSJac2 [Real] @@ -360,14 +360,14 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // // columnVars(8) // ---------------------- -// index: 6: x8.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 5: x7.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 4: x6.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 3: x5.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 2: x4.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 1: x3.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: x1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] -// index: 0: $res_LSJac2_1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:6: x8.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:5: x7.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:4: x6.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:3: x5.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:2: x4.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:1: x3.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: x1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] +// index:0: $res_LSJac2_1.$pDERLSJac2.dummyVarLSJac2 (no alias) initial: no arrCref index:() [] // Jacobian idx: 3 // // Jacobian idx: 4 @@ -383,17 +383,17 @@ simulate(dynamicTearing2, simflags="-lv=LOG_DT_CONS"); getErrorString(); // ======================================== // algVars (11) // ---------------------- -// index: 0: $cse4 (no alias) protected hideResult initial: no arrCref index:(1) [] -// index: 1: $cse5 (no alias) protected hideResult initial: no arrCref index:(2) [] -// index: 2: $cse6 (no alias) protected hideResult initial: no arrCref index:(3) [] -// index: 3: x1 (no alias) initial: no arrCref index:(4) [] -// index: 4: x2 (no alias) initial: no arrCref index:(5) [] -// index: 5: x3 (no alias) initial: no arrCref index:(6) [] -// index: 6: x4 (no alias) initial: no arrCref index:(7) [] -// index: 7: x5 (no alias) initial: no arrCref index:(8) [] -// index: 8: x6 (no alias) initial: no arrCref index:(9) [] -// index: 9: x7 (no alias) initial: no arrCref index:(10) [] -// index: 10: x8 (no alias) initial: no arrCref index:(11) [] +// index:0: $cse4 (no alias) protected hideResult initial: no arrCref index:(1) [] +// index:1: $cse5 (no alias) protected hideResult initial: no arrCref index:(2) [] +// index:2: $cse6 (no alias) protected hideResult initial: no arrCref index:(3) [] +// index:3: x1 (no alias) initial: no arrCref index:(4) [] +// index:4: x2 (no alias) initial: no arrCref index:(5) [] +// index:5: x3 (no alias) initial: no arrCref index:(6) [] +// index:6: x4 (no alias) initial: no arrCref index:(7) [] +// index:7: x5 (no alias) initial: no arrCref index:(8) [] +// index:8: x6 (no alias) initial: no arrCref index:(9) [] +// index:9: x7 (no alias) initial: no arrCref index:(10) [] +// index:10: x8 (no alias) initial: no arrCref index:(11) [] // functions: // ----------- // diff --git a/testsuite/simulation/modelica/tearing/dynamicTearing3.mos b/testsuite/simulation/modelica/tearing/dynamicTearing3.mos index f46da95eb17..386b8645054 100644 --- a/testsuite/simulation/modelica/tearing/dynamicTearing3.mos +++ b/testsuite/simulation/modelica/tearing/dynamicTearing3.mos @@ -60,9 +60,9 @@ simulate(dynamicTearing3,startTime=0,stopTime=2,numberOfIntervals=500,simflags=" // Variables (4) // ======================================== // 1: z:VARIABLE() type: Real -// 2: a:VARIABLE() type: Real -// 3: y:VARIABLE() type: Real -// 4: x:VARIABLE() type: Real +// 2: y:VARIABLE() type: Real +// 3: x:VARIABLE() type: Real +// 4: a:VARIABLE() type: Real // // // Equations (4, 4) @@ -72,25 +72,25 @@ simulate(dynamicTearing3,startTime=0,stopTime=2,numberOfIntervals=500,simflags=" // a := 2.0 * x; // [dynamic |0|0|0|0|] // 2/2 (1): g * a * x + time - y ^ 2.0 = 0.0 [dynamic |0|0|0|0|] -// 3/3 (1): a + 2.0 * y - k * z = 0.0 [dynamic |0|0|0|0|] -// 4/4 (1): g * a + x * z - y = 0.0 [dynamic |0|0|0|0|] +// 3/3 (1): g * a + x * z - y = 0.0 [dynamic |0|0|0|0|] +// 4/4 (1): a + 2.0 * y - k * z = 0.0 [dynamic |0|0|0|0|] // // // Adjacency Matrix (row: equation) // ======================================== // number of rows: 4 -// 1: 4 2 +// 1: 4 3 // 2: 4 3 2 -// 3: 3 2 1 -// 4: 4 3 2 1 +// 3: 4 3 2 1 +// 4: 4 2 1 // // Transposed Adjacency Matrix (row: variable) // ======================================== // number of rows: 4 // 1: 4 3 -// 2: 4 3 2 1 -// 3: 4 3 2 -// 4: 4 2 1 +// 2: 4 3 2 +// 3: 3 2 1 +// 4: 4 3 2 1 // // no matching // @@ -109,38 +109,38 @@ simulate(dynamicTearing3,startTime=0,stopTime=2,numberOfIntervals=500,simflags=" // Adjacency Matrix Enhanced (row == equation) // ==================================== // number of rows: 4 -// 1:(4,unsolvable) (2,solved) -// 2:(2,variable(false)) (4,variable(false)) (3,nonlinear) -// 3:(2,constone) (3,const(true)) (1,param(true)) -// 4:(2,param(false)) (4,variable(true)) (1,variable(true)) (3,constone) +// 1:(3,unsolvable) (4,solved) +// 2:(4,variable(false)) (3,variable(false)) (2,nonlinear) +// 3:(4,param(false)) (3,variable(true)) (1,variable(true)) (2,constone) +// 4:(4,constone) (2,const(true)) (1,param(true)) // // AdjacencyMatrixTransposedEnhanced: // Transpose Adjacency Matrix Enhanced (row == var) // ===================================== // number of rows: 4 -// 1:(4,variable(true)) (3,param(true)) -// 2:(4,param(false)) (3,constone) (2,variable(false)) (1,solved) -// 3:(4,constone) (3,const(true)) (2,nonlinear) -// 4:(4,variable(true)) (2,variable(false)) (1,unsolvable) +// 1:(4,param(true)) (3,variable(true)) +// 2:(4,const(true)) (3,constone) (2,nonlinear) +// 3:(3,variable(true)) (2,variable(false)) (1,unsolvable) +// 4:(4,constone) (3,param(false)) (2,variable(false)) (1,solved) // // eqLinPoints: -// 100,150,17,62 +// 100,150,62,17 // // // Forced selection of Tearing Variables: // ======================================== -// Unsolvables as tVars: 4 +// Unsolvables as tVars: 3 // Variables with annotation attribute 'always' as tVars: // // Matching // ======================================== // 4 variables and equations // var 1 is solved in eqn 8 -// var 2 is solved in eqn 1 -// var 3 is solved in eqn 4 -// var 4 is solved in eqn 8 +// var 2 is solved in eqn 3 +// var 3 is solved in eqn 8 +// var 4 is solved in eqn 1 // -// order: 1,4 +// order: 1,3 // ======================================== // // @@ -151,12 +151,12 @@ simulate(dynamicTearing3,startTime=0,stopTime=2,numberOfIntervals=500,simflags=" // * No of equations in strong component: 4 // * No of tVars: 2 // * -// * tVars: 4,1 +// * tVars: 3,1 // * -// * resEq: 3,2 +// * resEq: 4,2 // * // * innerEquations ({eqn,vars}): -// * {1:2}, {4:3} +// * {1:4}, {3:2} // * // **************************************** //