Opened 15 years ago

Last modified 14 years ago

#1230 closed defect (fixed)

TwoTanks model fails to build

Reported by: Per Östlund Owned by: Per Östlund
Priority: high Milestone:
Component: Version:
Keywords: Cc: Per Östlund, AlexeyLebedev

Description

The attached TwoTanks model gives a lot of these messages:

-differentiate_equation_time on algorithm not impl yet.
-differentiate_equation_time failed
-differentiate_eqns failed
eqns =179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157

and ends with a "Error: Model is structurally singular, error found sorting equations" before printing a lot of debug output.

Attachments (1)

TwoTanks.zip (374.6 KB ) - added by Per Östlund 15 years ago.

Download all attachments as: .zip

Change History (3)

by Per Östlund, 15 years ago

Attachment: TwoTanks.zip added

comment:1 by AlexeyLebedev, 15 years ago

Some technical details of what happens in DAELow while processing this model:

The function Derive.differentiateEquationTime gets a DAELow.ALGORITHM as the first argument. It has only one case to process this starting with
{{{case (DAELow.ALGORITHM(index = index,in_=in_,out=out,source=source),timevars,inFunctions,al,inDerivedAlgs,ae,inDerivedMultiEqn)
equation
DAE.ALGORITHM_STMTS(statementLst= {DAE.STMT_TUPLE_ASSIGN(type_=exptyp,expExpLst=expExpLst,exp = e1)}) = al[index+1];}}}

But index has the value 24, while the array al contains only one element with statementLst equal to NIL. So not only does not al[index+1] have the needed form, it does not exist, so Derive.differentiateEquationTime fails. This leads to failures in the stack of functions - DAELow.differentiateEqns, DAELow.reduceIndexDummyDer etc.

comment:2 by Martin Sjölund, 14 years ago

This was previously fixed by Willi (using method=dassl2)

Note: See TracTickets for help on using tickets.