Opened 16 years ago
Last modified 16 years ago
#1119 closed defect (fixed)
Vectorization of array equality fails in some cases
| Reported by: | Adrian Pop | Owned by: | Adrian Pop |
|---|---|---|---|
| Priority: | critical | Milestone: | |
| Component: | Instantiation | Version: | 1.5.0RC2 |
| Keywords: | Cc: | Adrian Pop, Adrian Pop, Per Östlund |
Description
Instantiation of this model:
package Modelica
package Icons
type TypeReal "Icon for a Real type"
extends Real;
annotation(Icon(Rectangle(extent=[-100,100; 100,-100], style(color=0,rgbcolor={0,0,0},fillColor=8,rgbfillColor={181,181,181})),
Text(extent=[-94,94; 94,-94],style(color=0,rgbcolor={0,0,0},fillColor=8,rgbfillColor={181,181,181}),string="R")));
end TypeReal;
end Icons;
end Modelica;
package Types
type AngularVelocity_degs = Modelica.Icons.TypeReal(final quantity="AngularVelocity", final unit="deg/s") "Angular velocity type in deg/s";
end Types;
model VectorizationBug
// works if parameter is replaced with constant.
// does not work if parameter is removed.
parameter Types.AngularVelocity_degs w_0_start[3]={0,0,0};
end VectorizationBug;
gives this error:
// Error processing file: VectorizationBug.mo // [VectorizationBug.mo:19:2-19:59:readonly] Error: Variable w_0_start: Type mismatch in equation w_0_start[1]=0 of // type (TypeReal type bc:Real(quantity="AngularVelocity", unit="deg/s")[3])=Integer
The model we reported the issue about is as following;
package Modelica
package Icons
type TypeReal "Icon for a Real type"
extends Real;
end TypeReal;
end Icons;
end Modelica;
package DimensionBug
package Types
type myType= Real(final unit="N.m/(rad.m)", final min=0) "Torsional stiffness constant";
type myType2= Modelica.Icons.TypeReal(final unit="N.m/(rad.m)", final min=0) "Torsional stiffness constant";
end Types;
model testModel
parameter DimensionBug.Types.myType b[2,2]={{1,1},{1,1}};
parameter DimensionBug.Types.myType2 c[2,2]={{1,1},{1,1}};
end testModel;
end DimensionBug;
model test
extends DimensionBug.testModel;
end test;
and the output from Openmodelica is;
Error processing file: temp.mo
[temp.mo:1328:5-1328:62:readonly] Error: Variable c: Type mismatch in equation c[1,1]=1 of type (Modelica.Icons.TypeReal type bc:Real(unit="N.m/(rad.m)", min=0.0)[2, 2])=Integer # Error encountered! Exiting... # Please check the error message and the flags. Execution failed!
Reopening ticket
Change History (3)
comment:1 by , 16 years ago
comment:3 by , 16 years ago
I had only fixed this bug for one-dimensional vectors previously, but it should now work for any dimensions.
Note:
See TracTickets
for help on using tickets.

MathCore TRAC: http://intranet/trac/mathmodelica/ticket/2713