﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
6190	Issue with homotopy and Pantelides during initialization in Buildings	Francesco Casella	Karim Adbdelhak	"Please check [https://libraries.openmodelica.org/branches/master/Buildings_7.0.0/files/Buildings_7.0.0_Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop.err Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop]. The backend fails with
{{{
[3] 20:24:23 Translation Notification
The given system is mixed-determined.   [index = 1]

[4] 20:24:23 Translation Error
Internal error IndexReduction.pantelidesIndexReduction failed! System is structurally singular and cannot be handled because the number of unassigned equations is larger than the number of states. Use -d=bltdump to get more information.

[5] 20:24:23 Symbolic Error
Model is structurally singular, error found sorting equations
  390: ahu.cooCoi.ele[2].preDro2.dp = if {false, false, false, true} then 0.0 else 0.0
  129: ahu.cooCoi.ele[2].preDro2.dp = ahu.cooCoi.ele[3].vol2.p - ahu.cooCoi.ele[2].vol2.p
  571: ahu.cooCoi.ele[2].vol2.dynBal.mXi[1] = $START.ahu.cooCoi.ele[2].vol2.dynBal.mXi[1]
  404: ahu.cooCoi.ele[2].vol2.dynBal.m = 1.184307920059215e-05 * ahu.cooCoi.ele[2].vol2.dynBal.fluidVolume * ahu.cooCoi.ele[2].vol2.p
  403: ahu.cooCoi.ele[2].vol2.dynBal.mXi[1] = ahu.cooCoi.ele[2].vol2.dynBal.m * ahu.cooCoi.ele[2].vol2.dynBal.medium.Xi[1]
  15: ahu.cooCoi.ele[2].vol2.dynBal.medium.Xi[1] = 0.01
  570: ahu.cooCoi.ele[3].vol2.dynBal.mXi[1] = $START.ahu.cooCoi.ele[3].vol2.dynBal.mXi[1]
  22: ahu.cooCoi.ele[3].vol2.dynBal.medium.Xi[1] = 0.01
  354: ahu.cooCoi.ele[3].vol2.dynBal.mXi[1] = ahu.cooCoi.ele[3].vol2.dynBal.m * ahu.cooCoi.ele[3].vol2.dynBal.medium.Xi[1]
  341: ahu.cooCoi.ele[3].preDro2.dp = if {false, false, false, true} then 0.0 else 0.0
  355: ahu.cooCoi.ele[3].vol2.dynBal.m = 1.184307920059215e-05 * ahu.cooCoi.ele[3].vol2.dynBal.fluidVolume * ahu.cooCoi.ele[3].vol2.p
  120: ahu.cooCoi.ele[3].preDro2.dp = ahu.cooCoi.ele[4].vol2.p - ahu.cooCoi.ele[3].vol2.p
  307: ahu.cooCoi.ele[4].vol2.dynBal.m = 1.184307920059215e-05 * ahu.cooCoi.ele[4].vol2.dynBal.fluidVolume * ahu.cooCoi.ele[4].vol2.p
  29: ahu.cooCoi.ele[4].vol2.dynBal.medium.Xi[1] = 0.01
  306: ahu.cooCoi.ele[4].vol2.dynBal.mXi[1] = ahu.cooCoi.ele[4].vol2.dynBal.m * ahu.cooCoi.ele[4].vol2.dynBal.medium.Xi[1]
  7: ahu.cooCoi.ele[4].vol2.dynBal.mXi[1] = $START.ahu.cooCoi.ele[4].vol2.dynBal.mXi[1]
for variables
  362: ahu.cooCoi.ele[2].preDro2.dp:VARIABLE(start = 0.0 unit = ""Pa"" nominal = if 0.0 > 1e-15 then 0.0 else 1.0 protected = true )  ""Pressure difference between port_a and port_b""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.FixedResistances.PressureDrop type: Real [4]
  386: ahu.cooCoi.ele[2].vol2.p:VARIABLE(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))))))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))))))))) start = 101325.0 unit = ""Pa"" nominal = 100000.0 protected = true final = true )  ""Pressure of the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort type: Real [4]
  372: ahu.cooCoi.ele[2].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[2].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = ""kg"" protected = true final = true )  ""Masses of independent components in the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1]
  374: ahu.cooCoi.ele[2].vol2.dynBal.m:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[2].vol2.V * 1.2 unit = ""kg"" stateSelect=StateSelect.prefer protected = true final = true )  ""Mass of fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4]
  385: ahu.cooCoi.ele[2].vol2.dynBal.medium.Xi[1]:VARIABLE(flow=false min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))))))))))))) max = min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, 1.0))))))))))))))) start = 0.01 unit = ""1"" nominal = 0.1 protected = true )  ""Structurally independent mass fractions""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation, ahu.cooCoi.ele.vol2.dynBal.Medium.BaseProperties type: Real [4,1]
  304: ahu.cooCoi.ele[3].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[3].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = ""kg"" protected = true final = true )  ""Masses of independent components in the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1]
  317: ahu.cooCoi.ele[3].vol2.dynBal.medium.Xi[1]:VARIABLE(flow=false min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))))))))))))) max = min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, 1.0))))))))))))))) start = 0.01 unit = ""1"" nominal = 0.1 protected = true )  ""Structurally independent mass fractions""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation, ahu.cooCoi.ele.vol2.dynBal.Medium.BaseProperties type: Real [4,1]
  306: ahu.cooCoi.ele[3].vol2.dynBal.m:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[3].vol2.V * 1.2 unit = ""kg"" stateSelect=StateSelect.prefer protected = true final = true )  ""Mass of fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4]
  294: ahu.cooCoi.ele[3].preDro2.dp:VARIABLE(start = 0.0 unit = ""Pa"" nominal = if 0.0 > 1e-15 then 0.0 else 1.0 protected = true )  ""Pressure difference between port_a and port_b""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.FixedResistances.PressureDrop type: Real [4]
  318: ahu.cooCoi.ele[3].vol2.p:VARIABLE(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))))))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))))))))) start = 101325.0 unit = ""Pa"" nominal = 100000.0 protected = true final = true )  ""Pressure of the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort type: Real [4]
  256: ahu.cooCoi.ele[4].vol2.p:VARIABLE(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))))))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))))))))) start = 101325.0 unit = ""Pa"" nominal = 100000.0 protected = true final = true )  ""Pressure of the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort type: Real [4]
  244: ahu.cooCoi.ele[4].vol2.dynBal.m:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[4].vol2.V * 1.2 unit = ""kg"" stateSelect=StateSelect.prefer protected = true final = true )  ""Mass of fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4]
  255: ahu.cooCoi.ele[4].vol2.dynBal.medium.Xi[1]:VARIABLE(flow=false min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0)))))))))))))))))) max = min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, 1.0)))))))))))))))))) start = 0.01 unit = ""1"" nominal = 0.1 protected = true )  ""Structurally independent mass fractions""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation, ahu.cooCoi.ele.vol2.dynBal.Medium.BaseProperties type: Real [4,1]
  242: ahu.cooCoi.ele[4].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[4].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = ""kg"" protected = true final = true )  ""Masses of independent components in the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1]
  241: $DER.ahu.cooCoi.ele[4].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[4].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = ""kg"" protected = true final = true )  ""Masses of independent components in the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1]
  303: $DER.ahu.cooCoi.ele[3].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[3].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = ""kg"" protected = true final = true )  ""Masses of independent components in the fluid""Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1]

[6] 20:24:23 Translation Error
post-optimization module replaceHomotopyWithSimplified (initialization) failed.

[7] 20:24:23 Translation Error
No system for the symbolic initialization was generated
}}}
I turned on {{{-b=bltdump}}} to get more info.

I'm not sure I can fully make sense of the reason why Pantelides' algorithm fails and what is the role of homotopy. I compiled the model in Dymola forcing homotopy to be considered, and the simulation was successful, so it looks like the simplified system should be well-posed.

@Karim, @AnHeuermann, any idea what could be going wrong here?"	defect	closed	critical	1.18.0	Backend		fixed		Andreas Heuermann
