Skip to content

Commit

Permalink
Check if delayTime is larger than delayMax (#11893)
Browse files Browse the repository at this point in the history
  • Loading branch information
phannebohm committed Feb 2, 2024
1 parent 17711b0 commit b28bd3f
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 4 deletions.
1 change: 0 additions & 1 deletion .CI/compliance.failures
Expand Up @@ -98,7 +98,6 @@ ModelicaCompliance.Operators.Events.SampleIncorrect
ModelicaCompliance.Operators.Overloading.VectorizeConstructAndApply
ModelicaCompliance.Operators.Special.Cardinality
ModelicaCompliance.Operators.Special.Delay
ModelicaCompliance.Operators.Special.DelayIncorrect3
ModelicaCompliance.Operators.Special.DerConstantIncorrect1
ModelicaCompliance.Redeclare.ClassExtends.ClassExtendsNonReplaceable
ModelicaCompliance.Redeclare.ClassExtends.NonRedeclareClassExtends
Expand Down
5 changes: 2 additions & 3 deletions OMCompiler/SimulationRuntime/c/simulation/solver/delay.c
@@ -1,7 +1,7 @@
/*
* This file is part of OpenModelica.
*
* Copyright (c) 1998-2014, Open Source Modelica Consortium (OSMC),
* Copyright (c) 1998-CurrentYear, Open Source Modelica Consortium (OSMC),
* c/o Linköpings universitet, Department of Computer and Information Science,
* SE-58183 Linköping, Sweden.
*
Expand Down Expand Up @@ -120,8 +120,6 @@ void storeDelayedExpression(DATA* data, threadData_t *threadData, int exprNumber

assertStreamPrint(threadData, exprNumber < data->modelData->nDelayExpressions, "storeDelayedExpression: invalid expression number %d", exprNumber);
assertStreamPrint(threadData, 0 <= exprNumber, "storeDelayedExpression: invalid expression number %d", exprNumber);
assertStreamPrint(threadData, data->simulationInfo->startTime <= time, "storeDelayedExpression: time is smaller than starting time.");
assertStreamPrint(threadData, delayTime >= 0, "Negative delay requested: delayTime = %g", delayTime);

/* Check if time is greater equal then last stored time in delay structure */
if (length > 0) {
Expand Down Expand Up @@ -198,6 +196,7 @@ double delayImpl(DATA* data, threadData_t *threadData, int exprNumber, double ex
assertStreamPrint(threadData, delayTime >= 0, "Negative delay requested: delayTime = %g", delayTime);
assertStreamPrint(threadData, delayTime >= DASSL_STEP_EPS, "delayImpl: delayTime is zero or too small.\n" \
"OpenModelica doesn't support delay operator with zero delay time.");
assertStreamPrint(threadData, delayTime <= delayMax, "Too large delay requested: delayTime = %g, delayMax = %g", delayTime, delayMax);

/* Return expression value before simulation start */
if(time <= data->simulationInfo->startTime)
Expand Down

0 comments on commit b28bd3f

Please sign in to comment.