Skip to content

Commit

Permalink
Test output-states
Browse files Browse the repository at this point in the history
  • Loading branch information
lochel authored and OpenModelica-Hudson committed Jan 25, 2019
1 parent c3b5ebb commit 6727d60
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
1 change: 1 addition & 0 deletions omsimulator/Makefile
Expand Up @@ -4,6 +4,7 @@ TESTFILES = \
DualMassOscillator_me.mos \
initialization.mos \
initialization2.mos \
outputState.mos \

FAILINGTESTFILES = \

Expand Down
71 changes: 71 additions & 0 deletions omsimulator/outputState.mos
@@ -0,0 +1,71 @@
// status: correct
// teardown_command: rm -rf outputState.lua outputState.fmu outputState.log sink.fmu sink.log temp-outputState/

loadString("
model outputState
output Real y(start=y_start, fixed=true);
parameter Real y_start = 1.0;
equation
der(y) = -1.0;
end outputState;

model sink
input Real u;
end sink;
"); getErrorString();

buildModelFMU(outputState, version="2.0", fmuType="me", platforms={"static"}); getErrorString();
buildModelFMU(sink, version="2.0", fmuType="me", platforms={"static"}); getErrorString();

writeFile("outputState.lua", "
oms_setCommandLineOption(\"--suppressPath=true\")
oms_setTempDirectory(\"./temp-outputState/\")

oms_newModel(\"test\")
oms_addSystem(\"test.root\", oms_system_sc)
oms_addSubModel(\"test.root.A\", \"outputState.fmu\")
oms_addSubModel(\"test.root.B\", \"sink.fmu\")
oms_addConnection(\"test.root.A.y\", \"test.root.B.u\")
oms_setResultFile(\"test\", \"\")

oms_instantiate(\"test\")
oms_setReal(\"test.root.A.y_start\", 1.5)

oms_initialize(\"test\")
print(\"info: Initialization\")
print(\"info: A.y: \" .. oms_getReal(\"test.root.A.y\"))
print(\"info: B.u: \" .. oms_getReal(\"test.root.B.u\"))

oms_simulate(\"test\")
print(\"info: Simulation\")
print(\"info: A.y: \" .. oms_getReal(\"test.root.A.y\"))
print(\"info: B.u: \" .. oms_getReal(\"test.root.B.u\"))

oms_terminate(\"test\")
oms_delete(\"test\")
"); getErrorString();

system(getInstallationDirectoryPath() + "/bin/OMSimulator outputState.lua");

// Result:
// true
// ""
// "outputState.fmu"
// ""
// "sink.fmu"
// ""
// true
// ""
// info: maximum step size for 'test.root': 0.100000
// info: No result file will be created
// info: Initialization
// info: A.y: 1.5
// info: B.u: 1.5
// info: Simulation
// info: A.y: 0.5
// info: B.u: 0.5
// info: Final Statistics for 'test.root':
// NumSteps = 12 NumRhsEvals = 13 NumLinSolvSetups = 3
// NumNonlinSolvIters = 12 NumNonlinSolvConvFails = 0 NumErrTestFails = 0
// 0
// endResult

0 comments on commit 6727d60

Please sign in to comment.