﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
4911	Array equation eventually not flattened into scalar components by the NF	Francesco Casella	Per Östlund	"Please check [https://libraries.openmodelica.org/branches/newInst/Modelica_3.2.2/files/Modelica_3.2.2_Modelica.Mechanics.Rotational.Examples.HeatLosses.err Modelica.Mechanics.Rotational.Examples.HeatLosses.err]. The following error is reported:
{{{
[/var/lib/hudson/slave/workspace/OpenModelica_TEST_LIBS/OpenModelica/OMCompiler/Compiler/SimCode/SimCodeUtil.mo:2466:7-2466:46:writable] Error: Internal error function createNonlinearResidualEquationsComplex failed for: {{0.0, 0.0, 0.0, 0.0}} = if lossyGear.ideal then lossyGear.interpolation_result - {{1.0, 1.0, 0.0, 0.0}} else lossyGear.interpolation_result - {{Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,2], abs(inertia4.w), 1), Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,3], abs(inertia4.w), 1), Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,4], abs(inertia4.w), 1), Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,5], abs(inertia4.w), 1)}}[1]
Error: Internal error function createNonlinearResidualEquations failed
}}}

Flattening the model with the old FE gives
{{{
lossyGear.interpolation_result[1,1] = Modelica.Math.Vectors.interpolate({0.0, 1.0}, {lossyGear.lossTable[1,2], lossyGear.lossTable[2,2]}, abs(lossyGear.w_a), 1)[1];
lossyGear.interpolation_result[1,2] = Modelica.Math.Vectors.interpolate({0.0, 1.0}, {lossyGear.lossTable[1,3], lossyGear.lossTable[2,3]}, abs(lossyGear.w_a), 1)[1];
lossyGear.interpolation_result[1,3] = Modelica.Math.Vectors.interpolate({0.0, 1.0}, {lossyGear.lossTable[1,4], lossyGear.lossTable[2,4]}, abs(lossyGear.w_a), 1)[1];
lossyGear.interpolation_result[1,4] = Modelica.Math.Vectors.interpolate({0.0, 1.0}, {lossyGear.lossTable[1,5], lossyGear.lossTable[2,5]}, abs(lossyGear.w_a), 1)[1];
}}}
while the NF gives
{{{
lossyGear.interpolation_result = cat(2, {{Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,2], noEvent(abs(lossyGear.w_a)), 1)}}, {{Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,3], noEvent(abs(lossyGear.w_a)), 1)}}, {{Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,4], noEvent(abs(lossyGear.w_a)), 1)}}, {{Modelica.Math.Vectors.interpolate(lossyGear.lossTable[:,1], lossyGear.lossTable[:,5], noEvent(abs(lossyGear.w_a)), 1)}})[1];
}}}
which apparently the back-end cannot handle."	defect	closed	high	2.0.0	New Instantiation		fixed		
