Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions src/EnergyPlus/WaterCoils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2547,25 +2547,22 @@ void SizeWaterCoil(EnergyPlusData &state, int const CoilNum)
} else {
TempSize = DataSizing::AutoSize;
}
FieldNum = 3; // N3 , \field Rated Capacity
SizingString = state.dataWaterCoils->WaterCoilNumericFields(CoilNum).FieldNames(FieldNum) + " [W]";
ErrorsFound = false;
if (state.dataSize->CurSysNum > 0) {
FieldNum = 3; // N3 , \field Rated Capacity
SizingString = state.dataWaterCoils->WaterCoilNumericFields(CoilNum).FieldNames(FieldNum) + " [W]";
ErrorsFound = false;
HeatingCapacitySizer sizerHeatingCapacity;
sizerHeatingCapacity.overrideSizingString(SizingString);
sizerHeatingCapacity.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName);
TempSize = sizerHeatingCapacity.size(state, TempSize, ErrorsFound);
waterCoil.DesWaterHeatingCoilRate = TempSize;
waterCoil.DesTotWaterCoilLoad = TempSize;
state.dataSize->DataCapacityUsedForSizing = waterCoil.DesWaterHeatingCoilRate;
waterCoil.DesWaterHeatingCoilRate = sizerHeatingCapacity.size(state, TempSize, ErrorsFound);
} else {
WaterHeatingCapacitySizer sizerWaterHeatingCapacity;
ErrorsFound = false;
sizerWaterHeatingCapacity.overrideSizingString(SizingString);
sizerWaterHeatingCapacity.initializeWithinEP(state, CompType, CompName, bPRINT, RoutineName);
waterCoil.DesWaterHeatingCoilRate = sizerWaterHeatingCapacity.size(state, TempSize, ErrorsFound);
waterCoil.DesTotWaterCoilLoad = waterCoil.DesWaterHeatingCoilRate;
state.dataSize->DataCapacityUsedForSizing = waterCoil.DesWaterHeatingCoilRate;
}
waterCoil.DesTotWaterCoilLoad = waterCoil.DesWaterHeatingCoilRate;
state.dataSize->DataCapacityUsedForSizing = waterCoil.DesWaterHeatingCoilRate;
Copy link
Copy Markdown
Collaborator Author

@rraustad rraustad Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to reduce this further and call the same sizer function for both coil locations, airloop and zone, but this doesn't work for system coils and the autosized result is 0:

WaterHeaterCapacitySizing.cc:

} else if (this->curSysNum > 0) {
    if (!this->wasAutoSized && !this->sizingDesRunThisAirSys) {
        this->autoSizedValue = _originalValue;
    } else {
        // not implemented for air loop equipment
    }

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I call the HeatingCapacity sizer, without overriding SizingString, I get a good table but the column heading is nominal_capacity, which is the field name for non-water coil types.

Coil:Heating:Water,
N3 , \field Rated Capacity

Coil:Heating:Electric,
N2 , \field Nominal Capacity

HeatingCapacitySizing.cc:

if (this->overrideSizeString) {
    if (this->isEpJSON) {
        this->sizingString = "nominal_capacity [W]";
    }
}
Image


// We now have the design load if it was autosized. For the case of CoilPerfInpMeth == NomCap, calculate the air flow rate
// specified by the NomCap inputs. This overrides all previous values
Expand Down