Issue overview
AirTerminal:SingleDuct:VAV:Reheat and AirTerminal:SingleDuct:VAV:NoReheat take a Zone Minimum Air Flow Input Method (Constant / FixedFlowRate / Scheduled) and read only the matching input field. During get-input, when the non-selected field is non-blank, a warning is issued:
** Warning ** Since Zone Minimum Air Flow Input Method = CONSTANT, input for Fixed Minimum Air Flow Rate will be ignored.
** ~~~ ** Occurs in AirTerminal:SingleDuct:VAV:Reheat = ZONE CORRIDOR - HOSPITAL A - STORY MID VAV TERMINAL
The gate is lNumericBlanks(n) alone, in GetSysInput in src/EnergyPlus/SingleDuct.cc — four structurally identical blocks:
Because Autosize in an autosizable numeric field is not blank, and 0 is not blank, the warning fires for field contents that carry no user intent at all. In both of those cases the warning branch then assigns exactly the value the blank path would have produced (0.0), so the warning reports that a no-op is being ignored.
How the issue was found / conditions that trigger it. Every model exported by OpenStudio contains one of these warnings per VAV terminal, because the OpenStudio model API constructs every AirTerminalSingleDuctVAVReheat with Constant Minimum Air Flow Fraction = 0.3 and Fixed Minimum Air Flow Rate = 0.0 concretely set, provides no reset method for either field, and its ForwardTranslator writes a blanked autosizable field as Autosize. We exhausted every route through OpenStudio 3.10.0 / EnergyPlus 25.1.0 against a real 63-terminal hospital model:
| ignored field content |
method |
warning fires |
fixed = 0 (constructor default) |
Constant |
yes (63/63 terminals) |
fixed = Autosize |
Constant |
yes (63/63) |
fraction = 0.3 (constructor default) |
FixedFlowRate |
yes (63/63) |
fraction = Autosize (via autosizeConstantMinimumAirFlowFraction) |
FixedFlowRate |
yes (63/63) |
fraction blanked via setString(idx, "") |
FixedFlowRate |
yes — the ForwardTranslator emits Autosize for the blanked field |
Workaround for users of the current version. None from the interface side; the warnings are cosmetic and must be ignored, which at fleet scale (ComStock/ResStock-style runs) buries actionable warnings.
Suggested fix. Warn only when the ignored field carries a value that would have done something — non-blank, not AutoSize, and not zero — while keeping the unconditional zeroing the code already does. For the VAV:Reheat fixed-rate block (same shape for the other three):
} else {
airTerm.FixedMinAirSetByUser = true;
airTerm.DesignMinAirFrac = Numbers(3);
if (airTerm.ZoneMinAirFracMethod == MinFlowFraction::Constant) {
if (Numbers(3) != DataSizing::AutoSize && Numbers(3) != 0.0) {
ShowWarningError(state, std::format("Since {} = {}, input for {} will be ignored.", cAlphaFields(5), Alphas(5), cNumericFields(3)));
ShowContinueError(state, std::format("Occurs in {} = {}", airTerm.sysType, airTerm.SysName));
}
airTerm.ZoneFixedMinAir = 0.0;
}
}
An alternative with the same effect for the Autosize case is to treat Autosize in the ignored field as blank (taking the lNumericBlanks path), since Autosize is precisely the "no user statement" placeholder interfaces emit for these autosizable fields. The 0.0 case still needs the explicit exclusion either way.
This changes no simulation behavior: the ConstantMinAirFracSetByUser / FixedMinAirSetByUser flags these blocks set are consumed only by the Scheduled-method sizing logic (SizeSys, L2771-L2786), which is unreachable when the warning fires (the method is Constant or FixedFlowRate).
How to validate the fix is complete. Run the MCVE below (and its three variants: fixed = Autosize under Constant; fraction = 0.3 / Autosize under FixedFlowRate): no "will be ignored" warning appears, sizing results are unchanged, and a genuinely meaningful ignored value (e.g. fixed = 0.5 under Constant) still warns.
Operating System (Multiple choices)
Any
Operating System Version
Any (observed on Windows 11)
Version of EnergyPlus
25.1.0; also present in develop @ a98cb64024fffe4164ce8ae06508821b3677aa55
Unmethours link or helpdesk ticket number
N/A
Defect file
Minimal trigger — any file with a VAV reheat terminal whose ignored minimum-flow field holds
0 or Autosize. Starting from an ExampleFiles VAV model (e.g. 5ZoneAutoDXVAV.idf), set
on any terminal:
AirTerminal:SingleDuct:VAV:Reheat,
Zone1 VAV Terminal, !- Name
, !- Availability Schedule Name
Zone1 Damper Outlet, !- Damper Air Outlet Node Name
Zone1 Terminal Inlet, !- Air Inlet Node Name
Autosize, !- Maximum Air Flow Rate {m3/s}
Constant, !- Zone Minimum Air Flow Input Method
0.3, !- Constant Minimum Air Flow Fraction
0, !- Fixed Minimum Air Flow Rate {m3/s} <- ignored no-op, still warns
...
Expected: no warning — the ignored field states nothing.
Actual: Since Zone Minimum Air Flow Input Method = CONSTANT, input for Fixed Minimum Air Flow Rate will be ignored. once per terminal.
Issue overview
AirTerminal:SingleDuct:VAV:ReheatandAirTerminal:SingleDuct:VAV:NoReheattake aZone Minimum Air Flow Input Method(Constant/FixedFlowRate/Scheduled) and read only the matching input field. During get-input, when the non-selected field is non-blank, a warning is issued:The gate is
lNumericBlanks(n)alone, inGetSysInputinsrc/EnergyPlus/SingleDuct.cc— four structurally identical blocks:FixedFlowRate:https://github.com/NREL/EnergyPlus/blob/a98cb64024fffe4164ce8ae06508821b3677aa55/src/EnergyPlus/SingleDuct.cc#L451-L464
(warning at L459)
Constant:https://github.com/NREL/EnergyPlus/blob/a98cb64024fffe4164ce8ae06508821b3677aa55/src/EnergyPlus/SingleDuct.cc#L465-L478
(warning at L473)
FixedFlowRate:https://github.com/NREL/EnergyPlus/blob/a98cb64024fffe4164ce8ae06508821b3677aa55/src/EnergyPlus/SingleDuct.cc#L1369-L1382
(warning at L1377)
Constant:https://github.com/NREL/EnergyPlus/blob/a98cb64024fffe4164ce8ae06508821b3677aa55/src/EnergyPlus/SingleDuct.cc#L1383-L1396
(warning at L1391)
Because
Autosizein an autosizable numeric field is not blank, and0is not blank, the warning fires for field contents that carry no user intent at all. In both of those cases the warning branch then assigns exactly the value the blank path would have produced (0.0), so the warning reports that a no-op is being ignored.How the issue was found / conditions that trigger it. Every model exported by OpenStudio contains one of these warnings per VAV terminal, because the OpenStudio model API constructs every
AirTerminalSingleDuctVAVReheatwithConstant Minimum Air Flow Fraction = 0.3andFixed Minimum Air Flow Rate = 0.0concretely set, provides no reset method for either field, and its ForwardTranslator writes a blanked autosizable field asAutosize. We exhausted every route through OpenStudio 3.10.0 / EnergyPlus 25.1.0 against a real 63-terminal hospital model:0(constructor default)Autosize0.3(constructor default)Autosize(viaautosizeConstantMinimumAirFlowFraction)setString(idx, "")Autosizefor the blanked fieldWorkaround for users of the current version. None from the interface side; the warnings are cosmetic and must be ignored, which at fleet scale (ComStock/ResStock-style runs) buries actionable warnings.
Suggested fix. Warn only when the ignored field carries a value that would have done something — non-blank, not
AutoSize, and not zero — while keeping the unconditional zeroing the code already does. For the VAV:Reheat fixed-rate block (same shape for the other three):An alternative with the same effect for the
Autosizecase is to treatAutosizein the ignored field as blank (taking thelNumericBlankspath), sinceAutosizeis precisely the "no user statement" placeholder interfaces emit for these autosizable fields. The0.0case still needs the explicit exclusion either way.This changes no simulation behavior: the
ConstantMinAirFracSetByUser/FixedMinAirSetByUserflags these blocks set are consumed only by theScheduled-method sizing logic (SizeSys, L2771-L2786), which is unreachable when the warning fires (the method isConstantorFixedFlowRate).How to validate the fix is complete. Run the MCVE below (and its three variants: fixed =
AutosizeunderConstant; fraction =0.3/AutosizeunderFixedFlowRate): no "will be ignored" warning appears, sizing results are unchanged, and a genuinely meaningful ignored value (e.g. fixed =0.5underConstant) still warns.Operating System (Multiple choices)
Any
Operating System Version
Any (observed on Windows 11)
Version of EnergyPlus
25.1.0; also present in develop @
a98cb64024fffe4164ce8ae06508821b3677aa55Unmethours link or helpdesk ticket number
N/A
Defect file
Minimal trigger — any file with a VAV reheat terminal whose ignored minimum-flow field holds
0orAutosize. Starting from an ExampleFiles VAV model (e.g.5ZoneAutoDXVAV.idf), seton any terminal:
Expected: no warning — the ignored field states nothing.
Actual:
Since Zone Minimum Air Flow Input Method = CONSTANT, input for Fixed Minimum Air Flow Rate will be ignored.once per terminal.