Opened 7 years ago
Closed 7 years ago
#5084 closed defect (fixed)
The NF does not evaluate protected parameters depending on Evaluate = true parameters through function
| Reported by: | Francesco Casella | Owned by: | Per Östlund |
|---|---|---|---|
| Priority: | high | Milestone: | 2.0.0 |
| Component: | New Instantiation | Version: | |
| Keywords: | Cc: |
Description
Consider the following test model
model TestEvaluateParameter
parameter Real n[3] = {0, 1, 0} annotation(Evaluate = true);
protected
parameter Real q[3] = Modelica.Math.Vectors.normalizeWithAssert(n);
end TestEvaluateParameter;
The old FE flattens this to
class TestEvaluateParameter parameter Real n[1] = 0.0; parameter Real n[2] = 1.0; parameter Real n[3] = 0.0; protected parameter Real q[1] = 0.0; protected parameter Real q[2] = 1.0; protected parameter Real q[3] = 0.0; end TestEvaluateParameter;
while the new FE outputs
class TestEvaluateParameter
parameter Real n[1] = 0.0;
parameter Real n[2] = 1.0;
parameter Real n[3] = 0.0;
protected parameter Real q[1] = Modelica.Math.Vectors.normalizeWithAssert({0.0, 1.0, 0.0})[1];
protected parameter Real q[2] = Modelica.Math.Vectors.normalizeWithAssert({0.0, 1.0, 0.0})[2];
protected parameter Real q[3] = Modelica.Math.Vectors.normalizeWithAssert({0.0, 1.0, 0.0})[3];
end TestEvaluateParameter;
This has a negative impact on the correct processing of MultiBody models, see #5083
Note:
See TracTickets
for help on using tickets.

This was fixed in 6654660.