Conversation
|
|
|
| termUnitSizing.InducRat = indUnit.InducRatio; | ||
| if (indUnit.heatCoilType == HVAC::CoilType::CoolingWater || | ||
| indUnit.heatCoilType == HVAC::CoilType::CoolingWaterDetailed) { | ||
| WaterCoils::SetCoilDesFlow(state, indUnit.heatCoilNum, termUnitSizing.AirVolFlow); |
There was a problem hiding this comment.
The diffs with 5ZoneFPIU is here. SetCoilDesFlow was called for heating and detailed cooling coils. This branch munged that call.
if (indUnit.heatCoilType == HVAC::CoilType::HeatingWater ||
indUnit.coolCoilType == HVAC::CoilType::CoolingWaterDetailed) {
| state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesCoolVolFlow); | ||
| WaterCoils::SetCoilDesFlow(state, | ||
| fanCoil.HeatCoilNum, | ||
| state.dataSize->FinalZoneSizing(state.dataSize->CurZoneEqNum).DesHeatVolFlow); |
There was a problem hiding this comment.
Diffs for FanCoilAutoSize_ASHRAE90VariableFan is here. There are 2 heating coils with HeatCoilNum = 1, one is an electric heating coil and the other is a water heating coil. When the first fan coil is processed, which has the electric heating coil, the air flow for zone 1 is passed to water heating coil 1. Then when the next fan coil calls SetCoilDesFlow for the water heating coil, it does not get set because water heating coil 1 was already set from fan coil 1 with electric heating coil num = 1.
void SetCoilDesFlow(EnergyPlusData &state, int const coilNum, Real64 const CoilDesFlow)
{
assert(coilNum > 0 && coilNum <= state.dataWaterCoils->NumWaterCoils);
if (state.dataWaterCoils->WaterCoil(coilNum).DesAirVolFlowRate <= 0.0) { <-- WaterCoil(1).DesAirVolFlowRate was set by the electric heating coil from fan coil 1
state.dataWaterCoils->WaterCoil(coilNum).DesAirVolFlowRate = CoilDesFlow;
}
}
Allowed coil types:
A11, \field Cooling Coil Object Type
\required-field
\type choice
\key Coil:Cooling:Water
\key Coil:Cooling:Water:DetailedGeometry
\key CoilSystem:Cooling:Water:HeatExchangerAssisted
A13, \field Heating Coil Object Type
\required-field
\type choice
\key Coil:Heating:Water
\key Coil:Heating:Electric
|
|
|
||
| if (HeatPump.bIsIHP) { | ||
| VSCoilNum = state.dataIntegratedHP->IntegratedHeatPumps(VSCoilNum).SCWHCoilIndex; | ||
| } |
There was a problem hiding this comment.
Issue/crash here for ASIHPMixedTank.idf where VSCoilNum is uninitialized (e.g., -858993460) when used at new line 8841. Should be:
int VSCoilNum = (HeatPump.bIsIHP) ? state.dataIntegratedHP->IntegratedHeatPumps(HeatPump.DXCoilNum)
|
|
|
|
|
|
@amirroth @Myoldmopar it has been 28 days since this pull request was last updated. |
|
|
|
@amirroth @Myoldmopar it has been 29 days since this pull request was last updated. |
1 similar comment
|
@amirroth @Myoldmopar it has been 29 days since this pull request was last updated. |
|
@amirroth @Myoldmopar it has been 38 days since this pull request was last updated. |
|
@amirroth @Myoldmopar it has been 33 days since this pull request was last updated. |
|
@amirroth @Myoldmopar it has been 28 days since this pull request was last updated. |
2 similar comments
|
@amirroth @Myoldmopar it has been 28 days since this pull request was last updated. |
|
@amirroth @Myoldmopar it has been 28 days since this pull request was last updated. |
|
@amirroth @Myoldmopar it has been 28 days since this pull request was last updated. |
|
|
|
@amirroth it has been 28 days since this pull request was last updated. |
|
This PR is too big, there are too many conflicts, and too many diffs. I will try to break this up into multiple smaller PRs as I have done with other PRs recently. Bye for now. |
I'm going to try to get this into 26.1, wish me luck.
This is a simple but wide-ranging refactor because it touches coils. The main changes are:
HVAC::Coil_xfake enumeration toHVAC::CoilType::xreal enumeration, and all of the attendantgetInputconversions.HtgCoilType,ClgCoilTypeand other subset types of the mainHVAC::CoilTypeenumeration.GetCoilIndex(std::string const & coilName)andGetCoilX(int const coilNum)rather thanGetCoilX(HVAC::CoilType coilType, std::string const & coilName)pattern.HXAssistedCoolingCoilAPI.ReportCoilSelectionintermediate object (there is no need to wrap all of the data into a separate object whenstate.dataReportCoilSelectionis already an object. Propagate coil API pattern toReportCoilSelection.The next step would/could/should be making all Coils child classes of a single CoilBase (insert CoinBase joke here) class, moving them all to a single array, and then eliminating the various
switch (coil.coilType)constructs with single calls. I did not feel like doing that here.