Here:
|
assert(abs(sum(cat(1, solar_frac_cei, solar_frac_flo, solar_frac_wall, solar_frac_win_lost, solar_frac_win_abs)) - 1) < Modelica.Constants.eps, "Sum of solar fractions is not equal to 1", AssertionLevel.error); |
an extremely tight tolerance of Modelica.Constants.eps is used.
This eps is defined as "The difference between 1 and the least value greater than 1 that is representable in the given floating point type".
Is this intentional, or does it perhaps assume some larger epsilon? In earlier versions of the Modelica Standard Library, this epsilon might have had a larger value in some tools, see modelica/ModelicaStandardLibrary@866a779 .
For Wolfram System Modeler, this ends up failing, because the sum ends up as exactly eps, and it triggers the assert.
Here:
AixLib/AixLib/Utilities/HeatTransfer/SolarRadInRoom.mo
Line 162 in d53be14
an extremely tight tolerance of
Modelica.Constants.epsis used.This
epsis defined as"The difference between 1 and the least value greater than 1 that is representable in the given floating point type".Is this intentional, or does it perhaps assume some larger epsilon? In earlier versions of the Modelica Standard Library, this epsilon might have had a larger value in some tools, see modelica/ModelicaStandardLibrary@866a779 .
For Wolfram System Modeler, this ends up failing, because the sum ends up as exactly
eps, and it triggers the assert.