Opened 8 years ago

Closed 5 years ago

#4316 closed defect (fixed)

Simulation of Modelica.Fluid.Examples.Pumpingsystem and HeatingSystem fail

Reported by: anonymous Owned by: casella
Priority: blocker Milestone: 2.0.0
Component: *unknown* Version: v1.12.0
Keywords: examples heatingsystem pumpingsystem Cc:

Description

Modelica Library 3.2.1 Build3
Openmodelica 1.12.0~dev-513-gc9b9653
Ubuntu 16.04

The examples PumpingSystem and HeatingSystem both fail to simulate. The process for simulating PumpingSystem ends with:

stdout | OMEditInfo | <p>/tmp/OpenModelica_briant/OMEdit/Modelica.Fluid.Examples.PumpingSystem -port=42081 -logFormat=xmltcp -override=startTime=0,stopTime=2000,stepSize=0.4,tolerance=1e-06,solver=dassl,outputFormat=mat,variableFilter=.* -r=Modelica.Fluid.Examples.PumpingSystem_res.mat -w -lv=LOG_STATS</p>
LOG_NLS | warning | <p>Matrix singular!</p>
LOG_NLS | warning | <p>under-determined linear system not solvable!</p>
LOG_NLS | warning | <p>Matrix singular!</p>
LOG_NLS | warning | <p>under-determined linear system not solvable!</p>
LOG_NLS | warning | <p>Matrix singular!</p>
LOG_NLS | warning | <p>under-determined linear system not solvable!</p>
LOG_NLS_V | warning | <p>Warning: maximal number of iteration reached but no root found</p>
stdout | warning | <p>While solving non-linear system an assertion failed during initialization.</p>
LOG_NLS_V | warning | <p>Warning: maximal number of iteration reached but no root found</p>
stdout | warning | <p>While solving non-linear system an assertion failed during initialization.</p>
stdout | warning | <p>While solving non-linear system an assertion failed during initialization.</p>
LOG_NLS | warning | <p>nonlinear system 118 fails: at t=0</p>
assert | debug | <p>Solving non-linear system 118 failed at time=0.<br>
For more information please use -lv LOG_NLS.</p>
assert | info | <p>simulation terminated by an assertion at initialization</p>
stdout | error | <p>Simulation process failed. Exited with code 255.</p>

HeatingSystem does not compile:

[1] 22:35:06 Translation Warning
Iteration variables with default zero start attribute in torn nonlinear equation system:
         $DER.pump.dp_pump:DUMMY_DER(fixed = false )  "Pressure increase" type: Real 
         $DER.pump.medium.h:DUMMY_DER(fixed = false )  "Specific enthalpy of medium" type: Real 


[2] 22:35:06 Symbolic Error
[Modelica.Fluid.Pipes: 1116:13-1116:140]: Model is structurally singular, error found sorting equations 
 18: heater.flowModel.Fs_p[1] = heater.crossAreas[1] * (heater.mediums[1].p - pump.p_b_nominal) * heater.flowModel.nParallel;
17: $cse17 = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0);
19: heater.statesFM[2].phase = if heater.mediums[1].h < Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.hvl_p(heater.mediums[1].p, Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.boilingcurve_p(heater.mediums[1].p)) or heater.mediums[1].h > Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.hvl_p(heater.mediums[1].p, Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.dewcurve_p(heater.mediums[1].p)) or heater.mediums[1].p > 22064000.0 then 1 else 2;
15: heater.heatTransfer.Ts[1] = Modelica.Media.Water.IF97_Utilities.T_props_ph(heater.mediums[1].p, heater.mediums[1].h, $cse17);
33: pump.heatTransfer.states[1].phase = if pump.medium.h < Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.hvl_p(pump.p_b_nominal, Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.boilingcurve_p(pump.p_b_nominal)) or pump.medium.h > Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.hvl_p(pump.p_b_nominal, Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions.dewcurve_p(pump.p_b_nominal)) or pump.p_b_nominal > 22064000.0 then 1 else 2;
31: $cse6 = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.p_b_nominal, pump.medium.h, pump.heatTransfer.states[1].phase, 0);
10: pump.Hb_flow = m_flow * (smooth(0, tank.medium.h) - smooth(0, pump.medium.h));
8: -pump.Hb_flow = pump.W_single * /*Real*/(pump.nParallel);
5: pump.eta = Modelica.Fluid.Machines.ControlledPump$pump.efficiencyCharacteristic(pump.V_flow_single * pump.N_nominal / pump.N, 0.8);
3: pump.dp_pump = pump.p_b_nominal - tank.ports[2].p;
38: $STATESET1.J[3] = pump.W_single - pump.dp_pump * pump.V_flow_single / pump.eta;
29: pump.rho = Modelica.Media.Water.IF97_Utilities.rho_props_ph(pump.p_b_nominal, pump.medium.h, $cse6);
7: pump.V_flow_single = pump.V_flow / /*Real*/(pump.nParallel);
9: pump.V_flow = m_flow / pump.rho;
16: heater.flowModel.dps_fg[1] = -2.0 * heater.flowModel.Fs_p[1] / (heater.flowModel.nParallel * 2.0 * heater.crossAreas[1]);
14: heater.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(heater.mediums[1].p, heater.mediums[1].h, $cse17);
13: heater.flowModel.mus[2] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[2].d, heater.heatTransfer.Ts[1], heater.mediums[1].p, heater.statesFM[2].phase);
11: m_flow = $cse43 * heater.flowModel.nParallel;
25: heater.statesFM[1].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(pump.p_b_nominal, pump.medium.h, $cse27);
12: $cse43 = Modelica.Fluid.Pipes.DynamicPipe$heater.FlowModel$heater$flowModel.WallFriction.massFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent);
21: heater.flowModel.mus[1] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[1].d, heater.statesFM[1].T, pump.p_b_nominal, 0);
23: heater.statesFM[1].T = Modelica.Media.Water.IF97_Utilities.T_props_ph(pump.p_b_nominal, pump.medium.h, $cse27);
35: $cse27 = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.p_b_nominal, pump.medium.h, 0, 0);
 for variables 
 heater.flowModel.mus[1](77), $cse17.vt(86), $cse17.vp(81), $cse17.h(91), $cse17.T(83), heater.flowModel.Fs_p[1](80), $cse17.p(88), $cse17.cp(89), tank.portInDensities[2](78), $cse17.cv(92), heater.statesFM[2].phase(79), $cse17.region(84), $cse17.pt(85), $cse17.R(93), $cse17.pd(94), heater.statesFM[2].d(99), pump.dp_pump(110), $cse17.phase(82), pump.V_flow_single(106), $cse1.h(30), $cse6.region(51), $cse6.cv(41), $cse6.pd(49), $cse6.rho(44), $cse6.x(42), $cse6.phase(45), $cse6.R(38), $cse6.h(50), $cse6.p(52), $cse6.s(39), $cse6.dpT(46), $cse6.T(47), $cse6.vp(48), $cse6.cp(43), $cse6.pt(40), $cse6.vt(37), $cse8(107), heater.heatTransfer.Ts[1](98), heater.flowModel.dps_fg[1](97), $cse17.rho(96), pump.rho(54), tank.heatTransfer.states[1].d(53), pump.W_single(105), $cse43(101), pump.V_flow(104), pump.eta(108), $cse17.s(95), heater.statesFM[1].d(58), heater.flowModel.mus[2](100), $cse17.x(87), heater.statesFM[1].T(60), $cse27.rho(3), $cse27.T(4), $cse27.dpT(5), $cse27.vp(6), pump.N(113), $cse27.vt(8), $cse27.p(7), $cse27.cv(10), $cse27.R(9), $cse27.s(11), $cse27.h(13), $cse27.region(14), $cse27.pd(15), $cse27.cp(16), $cse1.pt(23), $cse1.dpT(31), pump.Hb_flow(103)

[3] 22:35:06 Translation Error
Internal error Transformation Module PFPlusExt index Reduction Method Pantelides failed!

[4] 22:35:06 Translation Error
[/build/openmodelica-Mf9OLm/openmodelica-1.12.0~dev-513-gc9b9653/OMCompiler/Compiler/SimCode/SimCodeUtil.mo: 4170:9-4170:59]: Internal error function createStateSetsSets failed.

[5] 22:35:06 Translation Error
[/build/openmodelica-Mf9OLm/openmodelica-1.12.0~dev-513-gc9b9653/OMCompiler/Compiler/SimCode/SimCodeUtil.mo: 592:5-592:146]: Internal error function createSimCode failed [Transformation from optimised DAE to simulation code structure failed]

Change History (8)

comment:1 Changed 7 years ago by casella

  • Milestone changed from Future to 2.0.0
  • Priority changed from high to blocker

These models from MSL should definitely work in 2.0.0

comment:2 Changed 7 years ago by hkiel

PumpingSystem fails when doing ExpressionSolve.mo:913 f1 := Expression.expandFactors(e1) with e1=

pumps.V_flow_single / 0.0 * (-100.0 + Modelica.Fluid.Machines.PrescribedPump$pumps.flowCharacteristic(0.0, {0.0, 0.25, 0.5}, {100.0, 60.0, 0.0})) / pumps.N_nominal * pumps.N

comment:3 Changed 7 years ago by vitalij

  • Owner changed from somebody to vitalij
  • Status changed from new to assigned

comment:4 Changed 7 years ago by vitalij

  • Resolution set to fixed
  • Status changed from assigned to closed

fixed with PR2312

comment:5 Changed 6 years ago by Christoph Buchner <buchner@…>

  • Resolution fixed deleted
  • Status changed from closed to reopened

I just encountered someone having a very bad first user experience trying these two examples, both of them failing. I hoped to reassure the user that these examples have been fixed in current OM, but unfortunately, both of them fail to simulate with current master (PumpingSystem and HeatingSystem).

Truncated logs (all above notification level):

Error: post-optimization module replaceHomotopyWithSimplified (initialization) failed.
Error: No system for the symbolic initialization was generated

and

Warning: The model contains alias variables with conflicting start and/or 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: Iteration variables with default zero start attribute in torn nonlinear equation system:
         $DER.tank.ports[2].p:DUMMY_DER(flow=false fixed = false )  "Thermodynamic pressure in the connection point" type: Real  [2]
         $DER.pump.medium.h:DUMMY_DER(fixed = false )  "Specific enthalpy of medium" type: Real
[/var/lib/hudson/slave/workspace/OpenModelica_TEST_LIBS/OpenModelica/OMCompiler/Compiler/SimCode/SimCodeUtil.mo:3822:9-3822:59:writable] Error: Internal error function createStateSetsSets failed.
[/var/lib/hudson/slave/workspace/OpenModelica_TEST_LIBS/OpenModelica/OMCompiler/Compiler/SimCode/SimCodeUtil.mo:637:5-637:146:writable] Error: Internal error function createSimCode failed [Transformation from optimised DAE to simulation code structure failed]

I think there must have been a regression since this was fixed, so can somebody more knowledgeable check this?

comment:6 Changed 6 years ago by vitalij

  • Owner changed from vitalij to somebody
  • Status changed from reopened to assigned

comment:7 Changed 6 years ago by casella

  • Owner changed from somebody to casella

I'll look into this.

comment:8 Changed 5 years ago by casella

  • Resolution set to fixed
  • Status changed from assigned to closed

PumpingSystem now works fine, while the issue with HeatingSystem is described in #5459.

Note: See TracTickets for help on using tickets.