Skip to content

Commit 0d43112

Browse files
authored
use max(defaultNumberOfIntervals, numberOfIntervalsInReference) for simulation so that verification works better (#152)
1 parent 54beace commit 0d43112

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

testmodel.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ def createOmcSessionNew():
235235

236236
outputFormat="mat"
237237
referenceVars=[]
238+
numberOfIntervalsInReference = 0
238239
referenceFile = conf.get("referenceFile") or ""
239240
if referenceFile != "":
240241
try:
@@ -243,8 +244,10 @@ def createOmcSessionNew():
243244
referenceVars=[s.strip() for s in open(compSignals).readlines() if (s.strip() != "")] # s.strip().lower() != "time" and ??? I guess we should check time variable...
244245
print(referenceVars)
245246
else:
246-
referenceVars=omc_new.sendExpression('readSimulationResultVars("%s", readParameters=true, openmodelicaStyle=true)' % referenceFile)
247+
referenceVars=omc_new.sendExpression('readSimulationResultVars("%s", readParameters=true, openmodelicaStyle=true)' % referenceFile)
247248
variableFilter="|".join([v.replace("[",".").replace("]",".").replace("(",".").replace(")",".").replace('"',".") for v in referenceVars])
249+
# get the number of intervals from the file
250+
numberOfIntervalsInReference = omc_new.sendExpression('readSimulationResultSize("%s")' % referenceFile)
248251
emit_protected="-emit_protected"
249252
except:
250253
referenceFile=""
@@ -334,7 +337,7 @@ def sendExpressionOldOrNew(cmd):
334337
return omc_new.sendExpression(cmd)
335338

336339
annotationSimFlags=""
337-
(startTime,stopTime,tolerance,numberOfIntervals,stepSize)=sendExpressionOldOrNew('getSimulationOptions(%s,defaultTolerance=%s,defaultNumberOfIntervals=%s)' % (conf["modelName"], conf["defaultTolerance"], conf["defaultNumberOfIntervals"]))
340+
(startTime,stopTime,tolerance,numberOfIntervals,stepSize)=sendExpressionOldOrNew('getSimulationOptions(%s,defaultTolerance=%s,defaultNumberOfIntervals=%s)' % (conf["modelName"], conf["defaultTolerance"], max(conf["defaultNumberOfIntervals"], numberOfIntervalsInReference)))
338341
if conf["simCodeTarget"]=="C" and sendExpressionOldOrNew('classAnnotationExists(%s, __OpenModelica_simulationFlags)' % conf["modelName"]):
339342
for flag in sendExpressionOldOrNew('getAnnotationNamedModifiers(%s,"__OpenModelica_simulationFlags")' % conf["modelName"]):
340343
if flag=="The searched annotation name not found":

0 commit comments

Comments
 (0)