In IDEAS.Buildings.Components.BaseClasses.ConvectiveHeatTransfer.ExteriorConvection, the convection coefficient switches suddenly for ceilings and floors when dT passes zero. This generates an event and can even cause chattering. Can we introduce the noEvent() operator?
if isCeiling then
if dT > 0 then
C = C_horz_buoyant;
else
C = C_horz_stable;
end if;
elseif isFloor then
if ndT < 0 then
C = C_horz_buoyant;
else
C = C_horz_stable;
end if;
else
C = C_vertical;
end if;
Changing the code is just changing it to:
if isCeiling then
if noEvent(dT > 0) then
C = C_horz_buoyant;
else
C = C_horz_stable;
end if;
elseif isFloor then
if noEvent(dT < 0) then
C = C_horz_buoyant;
else
C = C_horz_stable;
end if;
else
C = C_vertical;
end if;
But I have little idea on the impact on reference results now. Anyway, I feel like actually forcing an additional calculation at the exact time it passes zero isn't nececarry and it is worth consisdering iit n light of simulation speed.
In IDEAS.Buildings.Components.BaseClasses.ConvectiveHeatTransfer.ExteriorConvection, the convection coefficient switches suddenly for ceilings and floors when dT passes zero. This generates an event and can even cause chattering. Can we introduce the
noEvent()operator?Changing the code is just changing it to:
But I have little idea on the impact on reference results now. Anyway, I feel like actually forcing an additional calculation at the exact time it passes zero isn't nececarry and it is worth consisdering iit n light of simulation speed.