Opened 8 years ago

Closed 7 years ago

#4393 closed defect (fixed)

Steam pipe model from the ScalableTestSuite library broken with -daeMode

Reported by: Francesco Casella Owned by: Willi Braun
Priority: high Milestone: 1.13.0
Component: Backend Version:
Keywords: wrapFunctionCalls Cc: Patrick Täuber, Willi Braun

Description

The ScalableTestSuite.Thermal.Advection.Verification.SteamPipe model was reported broken on 10 Apr. It was still working on 7 Mar.

Here is the error report:

ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_02nls.o ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_02nls.c
ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_02nls.c:15423:43: warning: incompatible pointer types assigning to 'void (*)(struct DATA *, double *)' from 'void (void *, double *)' [-Wincompatible-pointer-types]
  nonLinearSystemData[0].getIterationVars = getIterationVarsNLS512;
                                          ^ ~~~~~~~~~~~~~~~~~~~~~~
ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_02nls.c:15437:43: warning: incompatible pointer types assigning to 'void (*)(struct DATA *, double *)' from 'void (void *, double *)' [-Wincompatible-pointer-types]
  nonLinearSystemData[1].getIterationVars = getIterationVarsNLS521;
                                          ^ ~~~~~~~~~~~~~~~~~~~~~~
...

and

ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_16dae.o ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_16dae.c
ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_16dae.c:45854:95: error: no member named 'nominal' in 'struct INTEGER_ATTRIBUTE'
  algebraicNominal[2001] = data->modelData->integerVarsData[200].attribute /* $cse1._phase */.nominal * data->simulationInfo->tolerance;
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    ^
ScalableTestSuite.Thermal.Advection.Verification.SteamPipe_16dae.c:45856:96: error: no member named 'nominal' in 'struct INTEGER_ATTRIBUTE'
  algebraicNominal[2002] = data->modelData->integerVarsData[201].attribute /* $cse1._region */.nominal * data->simulationInfo->tolerance;
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     ^
...

Possible culprits: IF97 model, daeMode, CSE.

Unfortunately I do not have any further data points between those two dates.

Change History (15)

comment:1 by Lennart Ochel, 8 years ago

@Francesco I cannot confirm that it worked on Mar 7 – using dae mode.

in reply to:  1 comment:2 by Francesco Casella, 8 years ago

Replying to lochel:

@Francesco I cannot confirm that it worked on Mar 7 – using dae mode.

You are right, that one used the causalized equations, but these two did use dae mode:

https://test.openmodelica.org/libraries/history/ScalableTestSuite_Experimental/ScalableTestSuite_Experimental-2017-01-13.html
https://test.openmodelica.org/libraries/history/ScalableTestSuite_Experimental/ScalableTestSuite_Experimental-2017-01-15.html

and the steam pipe model worked fine. Unfortunately, they are already three months old. I should run this test more frequently.

comment:3 by Lennart Ochel, 8 years ago

Cc: Patrick Täuber added

It seems to be broken due to OMCompiler#1346.

comment:4 by Lennart Ochel, 8 years ago

Component: Code GenerationBackend
Keywords: wrapFunctionCalls added

in reply to:  3 ; comment:5 by Francesco Casella, 8 years ago

Replying to lochel:

It seems to be broken due to OMCompiler#1346.

PR 1346 was committed on Jan 9, but the test
https://test.openmodelica.org/libraries/history/ScalableTestSuite_Experimental/ScalableTestSuite_Experimental-2017-01-13.html
used a version of the compiler built on Jan 13.

If I understand correctly, it is some problem in wrapFunctionCalls that was added later that we have to look for, right?

in reply to:  5 comment:6 by Lennart Ochel, 8 years ago

Replying to casella:

If I understand correctly, it is some problem in wrapFunctionCalls that was added later that we have to look for, right?

The run from Jan 13 did use --postOptModules-=wrapFunctionCalls. It's a bit confusing that the ScalableTestSuite_Experimental job is using different configurations ...

comment:7 by Francesco Casella, 8 years ago

Ok, I missed that, sorry. @wbraun ran these jobs to get results for our Modelica Conference paper. Probably he already recognized the problem and switched off the module to get successful results, I can't recall that now.

BTW, I have several experimental activities going on different fronts, and each one requires his own special flags, sometimes it's hard to keep track of everything.

Anyway, I guess it will now be better to fix the wrapFunctionCalls module also when using --daeMode

Thanks!

comment:8 by Patrick Täuber, 8 years ago

The models only fail if wrapFunctionCalls and daeMode is activated together. As far as I can remember it is a known problem in the daeMode with the discrete variables.
@wbraun Can you confirm that?

comment:9 by Patrick Täuber, 8 years ago

Cc: Willi Braun added

in reply to:  8 comment:10 by Willi Braun, 8 years ago

Owner: changed from Lennart Ochel to Willi Braun
Status: newaccepted

Replying to ptaeuber:

The models only fail if wrapFunctionCalls and daeMode is activated together. As far as I can remember it is a known problem in the daeMode with the discrete variables.

Yes.

comment:11 by Lennart Ochel, 8 years ago

What is the problem if daeMode and wrapFunctionCalls are used together?

comment:12 by Henning Kiel, 8 years ago

I tried a fix in OMCompiler#1632 (".nominal" exists only for Real variables) - everything compiles fine afterwards, but unfortunately wbraun said that it must be fixed in the backend.

comment:13 by Francesco Casella, 7 years ago

Milestone: 1.12.01.13.0
Priority: blockerhigh

comment:14 by Francesco Casella, 7 years ago

Summary: Steam pipe model from the ScalableTestSuite library brokenSteam pipe model from the ScalableTestSuite library broken with -daeMode

comment:15 by Willi Braun, 7 years ago

Resolution: fixed
Status: acceptedclosed

The steam pipe model starts working with the new daeMode including wrapFunctionCalls enabled by default after ad854a6.

Note: See TracTickets for help on using tickets.