DHWSYS

Name Type Variability Description/Comments
calcMode choice:WSCALCMODE input time calculation mode
centralDHWSYSi TI input time
  • index of central (parent) [DHWSYS][dhwsys], 0 if none
  • child [DHWSYSs][dhwsys] specify unit-specfic draws only
  • but have no heaters etc
Name Type Variability Description/Comments
mult FLOAT_GEZ input time
  • multiplier: model as ws_mult identical systems
  • fractional values supported
elecMtri TI input time meter for system electricity use
fuelMtri TI input time meter for system fuel use
  • energy inputs for current hour, Btuh
  • NOTE: values DO NOT include [DHWHEATER][dhwheater] use
Name Type Variability Description/Comments
inElec number End of hour electricity (note not kWh)
inFuel number End of hour fuel (for generality, always 0?)
Name Type Variability Description/Comments
swTi TI input time
  • [DHWSOLARSYS][dhwsolarsys] providing preheated water to this system
  • 0 iff no solar connected
qSlr number End of hour
  • hour total water heating energy provided by
  • [DHWSOLARSYS][dhwsolarsys] (not via ws_SSF), Btu
SSFAnnualSolar DBL End of run
  • Annual solar heat added (numerator to calculate SSF), Btu
  • = SUM( ws_qSlr)
SSFAnnualReq DBL End of run Annual heat required (denominator to calculate SSF), Btu
SSFAnnual number End of run Annual solar savings fraction
Name Type Variability Description/Comments
tInlet number End of hour
  • current hour cold water inlet temp for this [DHWSYS][dhwsys], F
  • user expression or default Wthr.d.wd_tMains
  • Not modified by solar and/or [DHWHEATREC][dhwheatrec]
tInletTest number Start of subhour
  • current subhour cold water inlet temp for this [DHWSYS][dhwsys], F
  • CAUTION: ws_tInletTest is for testing and model validation only
  • Not fully integrated with full model; (probably) ignores any [DHWSOLARSYS][dhwsolarsys] and [DHWHEATREC][dhwheatrec] impacts
tInletX number End of hour
  • hour average adjusted cold water temp, F
  • reflects solar and/or [DHWHEATREC][dhwheatrec]
hwUse FLOAT_GEZ Start of hour
  • current hour hot water use (at fixtures), gal
  • (scheduled input, does NOT include [DHWDAYUSE][dhwdayuse] draws)
hwUseTest FLOAT_GEZ Start of subhour
  • current subhour additional hot water use (at fixtures), gal/subhour
  • added at tick level to other draws
  • CAUTION: ws_hwUseTest is for testing and model validation only
  • Not integrated with solar, heat recovery, etc.
tRLTest FLOAT_GEZ Start of subhour
  • current subour [DHWLOOP][dhwloop] return temp, F
  • overwrites calculated loop return temp, if any
  • CAUTION: ws_tRLTest is for testing and model validation only
volRLTest FLOAT_GEZ Start of subhour
  • current subour recirc loop flow, gal (per subhr)
  • overwrites calculated loop flow, if any
  • CAUTION: ws_volRLTest is for testing and model validation only
iTk0DWHR number End of hour 1st tick with possible DWHR
iTkNDWHR number End of hour last+1 tick with possible DWHR
qDWHR number End of hour hour all DHWHEATREC total heat to fixtures and water heaters, Btu
qDWHRWH number End of hour hour all DHWHEATREC total heat to water heater(s), Btu

DHWMTRs -- accumulates H/D/M/Y water use with ws_mult

Name Type Variability Description/Comments
WHhwMtri TI input time DHWMTR for hot water use at water heater(s) (= ws_whUse), gal
FXhwMtri TI input time DHWMTR for hot water use at fixtures (= ws_fxUseMix), gal

mixed and hot water use for this DHWSYS (w/o ws_mult)

Name Type Variability Description/Comments
whUseNoHR number End of hour
  • current hour virtual hot water use w/o heat recovery, gal
  • re verification / accounting of DWHR results
fxUseMix current hour total (mixed) water use at fixtures, gal
DHWMTR_IVL
Name Type Variability Description/Comments
fxUseMix.total number End of hour
  • total of following specific end uses. Code assumes precedes them.
  • Use by purpose (end use), water use, gal:
  • CAUTION: order of members MATCHES DTDHWEUCH choices (cndtypes.def)
  • for subscripting (in cnguts,cgresult.cpp) by end use -1:
fxUseMix.unknown number End of hour unknown (= DHWENDUSE 0, no associated choice)
fxUseMix.faucet number End of hour faucet use
fxUseMix.shower number End of hour shower
fxUseMix.bath number End of hour bath
fxUseMix.cwashr number End of hour clothes washer
fxUseMix.dwashr number End of hour dish washer
fxUseMixTot[index] DBL Array [NDHWENDUSESXPP] End of run annual total (mixed) water use at fixtures by end use, gal
fxUseMixLH prior hour total (mixed) water use at fixtures, gal
DHWMTR_IVL
Name Type Variability Description/Comments
fxUseMixLH.total number Start of hour
  • total of following specific end uses. Code assumes precedes them.
  • Use by purpose (end use), water use, gal:
  • CAUTION: order of members MATCHES DTDHWEUCH choices (cndtypes.def)
  • for subscripting (in cnguts,cgresult.cpp) by end use -1:
fxUseMixLH.unknown number Start of hour unknown (= DHWENDUSE 0, no associated choice)
fxUseMixLH.faucet number Start of hour faucet use
fxUseMixLH.shower number Start of hour shower
fxUseMixLH.bath number Start of hour bath
fxUseMixLH.cwashr number Start of hour clothes washer
fxUseMixLH.dwashr number Start of hour dish washer
whUse
  • current hour hot water use by end use (at ws_tUse), gal
  • water heater out = fixture hot in
  • Also frequently assumed water heater in = water heater out
  • BUT this is only approx due to e.g. mixdown and XBU.
DHWMTR_IVL
Name Type Variability Description/Comments
whUse.total number End of hour
  • total of following specific end uses. Code assumes precedes them.
  • Use by purpose (end use), water use, gal:
  • CAUTION: order of members MATCHES DTDHWEUCH choices (cndtypes.def)
  • for subscripting (in cnguts,cgresult.cpp) by end use -1:
whUse.unknown number End of hour unknown (= DHWENDUSE 0, no associated choice)
whUse.faucet number End of hour faucet use
whUse.shower number End of hour shower
whUse.bath number End of hour bath
whUse.cwashr number End of hour clothes washer
whUse.dwashr number End of hour dish washer
whUseTot[index] DBL Array [NDHWENDUSESXPP] End of run annual total hot water use by end use (at ws_tUse), gal
  • draw and load sizing info derived during C_WSCALCMODECH_PRERUN (only)
  • copied to assocated input records in ws_DoEndPreRun()
  • thus avail for use in sizing expressions during C_WSCALCMODECH_SIM input
  • >> no direct uses in calcs <<
Name Type Variability Description/Comments
drawMaxDur number input time draw duration window, hr (user input, default 4)
drawMax number input time largest draw total in any conseq ws_drawMaxDur hrs, gal
Name Type Variability Description/Comments
loadMaxDur number input time load duration window, hr (user input, default 12)
loadMax number input time largest load total in any conseq ws_loadMaxDur hrs, Btu

EcoSizer sizing algorithm

Name Type Variability Description/Comments
tSetpointDes number input time
  • design (sizing) set point temp, F (constant)
  • default = ws_tUse
tInletDes number input time
  • design (sizing) cold water inlet temp, F
  • default = annual min mains temp
ashpTSrcDes number End of run
  • design (sizing) HPWH source air temperature, F
  • default = heating design temp
heatingCapDesTopN[index] number Array [NDHWSIZEDAYS] End of run
  • top N design heating capacities
  • [ 0] = largest
heatingCapDes number input time
  • design heating capacity, Btuh
  • = ws_heatingCapDesTopN[ 6] or as changed
  • defaults from EcoSizer at end of prerun if not input
  • No direct use, must be passed to [DHWHEATER][dhwheater] via [ALTER][alter]
volRunningDes FLOAT_GZ input time
  • design running volume, gal
  • = active volume (above aquastat)
  • full tank volume derived from running volume
  • in HPWHLINK::hw_DeriveVolFromVolRunning
  • defaults from EcoSizer at end of prerun if not input
  • No direct use, must be passed to [DHWHEATER][dhwheater] via [ALTER][alter]
fxDes FLOAT_GZ input time
  • DHW design excess size factor, default 1
  • Applied if/when ws_heatingCapDes and/or ws_volRunningDes
  • are defaulted from EcoSizer at end of prerun.
  • No effect if those values are input.
Name Type Variability Description/Comments
tUse number Start of run
  • hot water use temp, F
  • = temp of water delivered to fixtures or DHWLOOP(s)
  • default = 120 F
tUseTest number Start of subhour
  • current subhour test hot water use temp, F
  • CAUTION: ws_tUseTest is for testing and model validation only
  • Not consistently applied for a heater types
Name Type Variability Description/Comments
tSetpoint number Start of hour
  • [DHWHEATER][dhwheater] set point (for all [DHWHEATERs][dhwheater] using HPWH model), F
  • default = ws_tUse
tSetpointLH number Start of hour
  • [DHWLOOPHEATER][dhwloopheater] set point (for all child [DHWLOOPHEATERs][dhwloopheater] using HPWH model), F
  • default = ws_tUse
drMethod DHWDRMETH Start of run
  • DHW demand response control method
  • C_DHWDRMETH_NONE, C_DHWDRMETH_SCHED, C_DHWDRMETH_SOC
drSignal DHWDRSIG Start of hour DHW demand response control signal
drStatusHPWH number End of hour
  • DHW demand response HPWHsim base drStatus for hour
  • used iff ws_drSignal == C_DHWDRMETH_SCHED
  • may be modified at subhour or tick ivl
targetSoC FRAC_GZ Start of hour
  • target state of charge (SoC)
  • used iff ws_drSignal == C_DHWDRMETH_SOC
Name Type Variability Description/Comments
tOutPrimLT number End of subhour
  • primary water heater outlet temp, F
  • for HPWH only, re [DHWLOOPHEATER][dhwloopheater] entering temp
  • best estimate from prior 1-min tick
dayUsei TI Start of day idx of DHWDAYUSE
dayUseName CULSTR Start of day name of DHWDAYUSE (resolved at runtime)
childDHWDAYUSEFlag number Start of run nz iff at least one child DHWSYS has specified ws_dayUseName
parElec FLOAT_GEZ Start of hour
  • electrical parasitic power, W
  • for e.g. unmodeled recirculation pumps
SDLM FLOAT_GZ input time
  • standard distribution loss multiplier
  • see ACM AppE Eqn RE-5
DSM FLOAT_GZ input time distribution system multiplier (AppE table RE-2)
SSF FLOAT_GEZ Start of hour
  • user input solar savings fraction
  • valid range 0 - 0.99, see code
  • approximates savings by modifyng inlet water temp
  • not allowed (and set 0) when [DHWSOLARSYS][dhwsolarsys] is specified
WF FLOAT_GEZ Start of hour
  • waste factor applied to ws_hwUse and [DHWUSEs][dhwuse]
  • default=1. CEC procedures use 0.9 for
  • systems having within unit recirc.
drawCount[index] number Array [NDHWENDUSESPP] End of hour
  • (approx) total # of draws in run (generally full year) by end use
  • draws spanning midnight double counted
  • draws with same eventID counted individually
  • [ 0]: total (including unknown end use)
  • [ 1..]: per C_DHWEUCH_xxx
drawsPerDay[index] number Array [NDHWENDUSESPP] Start of run
Name Type Variability Description/Comments
drawDurF[index] FLOAT_GEZ Array [NDHWENDUSESPP] End of hour
  • water heater draw duration factors by end use
  • accounts for warm-up waste and pipe losses for [DHWDAYUSE][dhwdayuse] draws
  • factor = actual draw duration / nominal draw duration
  • [ 0] = unknown end use ([DHWUSEs][dhwuse] w/o wu_hwEndUse) (*not* ws_hwUse)
  • [1 ..] = per C_DHWEUCH_xxx
branchModel choice:DHWBRANCHMODEL input time
  • branch model selection
  • _T24DHW: prior ACM App-B
  • _DRAWWASTE: draw duration increase per ws_drawWaste
  • _DAYWASTE: draw duration increase per ??
drawWaste[index] number Array [NDHWENDUSESPP] Start of hour
  • water waste per draw, gal
  • converts to time added to draw duration
  • [ 0] unknown end use
  • [ 1..] = per C_DHWEUCH_xxx
dayWasteDrawF[index] number Array [NDHWENDUSESPP] input time
  • relative draw for day waste scheme
  • [ 0] unknown end use
  • [ 1..] = per C_DHWEUCH_xxx
dayWasteVol FLOAT_GEZ input time base daily total draw waste, gal/day
dayWasteBranchVolF FLOAT_GEZ input time
  • additional daily draw waste, discards/day
  • [DHWLOOPBRANCH][dhwloopbranch] volume multiplier
dayWaste FLOAT_GEZ Start of run
  • daily draw waste, gal/day
  • ws_dayWasteVol + ws_dayWasteBranchVolF * (total [DHWLOOPBRANCH][dhwloopbranch] volume)
dayWasteScale FLOAT_GEZ End of run
Name Type Variability Description/Comments
childDHWSYSCount FLOAT_GEZ Start of run
  • # of child [DHWSYSs][dhwsys] iff central system (else 0)
  • note may not be integral
whCount FLOAT_GEZ Start of run
  • # of (primary) [DHWHEATERs][dhwheater] serving this [DHWSYS][dhwsys]
  • = SUM( [DHWHEATER][dhwheater].wh_mult) (possibly non-integral)
wlhCount FLOAT_GEZ Start of run
  • # of [DHWLOOPHEATERs][dhwloopheater] in this [DHWSYS][dhwsys]
  • = SUM( [DHWLOOPHEATER][dhwloopheater].wh_mult) (possibly non-integral?)
whCountUseTS FLOAT_GEZ Start of run
  • # of [DHWHEATERs][dhwheater] serving this [DHWSYS][dhwsys] that respond to ws_tSetpoint
  • used for re "ignore" msg(s)
wlhCountUseTS FLOAT_GEZ Start of run
  • # of [DHWLOOPHEATERs][dhwloopheater] serving this [DHWSYS][dhwsys] that respond to ws_tSetpointLH
  • used for re "ignore" msg(s)
wtCount number Start of run # of child DHWTANKs
wpCount number Start of run # of child DHWPUMPs
wlCount number Start of run # of child DHWLOOPs (aka NLOOPk)
CHDHWCount number Start of run # of combined heat/DHW RSYS systems served
configChecked number Start of run
  • set non-0 when configuration has been checked (see ws_Init())
  • WHY: reduces info message when >1 [RUN][run]
  • side effect: does not re-check after [ALTER][alter]
Name Type Variability Description/Comments
loopSegTotals aggregated totals, all child loop segments
SEGTOTS
Name Type Variability Description/Comments
loopSegTotals.count DBL Start of run # of segments included in totals
loopSegTotals.len DBL Start of run length, ft
loopSegTotals.vol DBL Start of run volume, gal
loopSegTotals.exArea DBL Start of run outside surface area (at insulation surface), ft2
loopSegTotals.UA DBL Start of run fluid-to-surround loss, Btuh/F-hr
Name Type Variability Description/Comments
branchTotals aggregated totals, all child branches
SEGTOTS
Name Type Variability Description/Comments
branchTotals.count DBL Start of run # of segments included in totals
branchTotals.len DBL Start of run length, ft
branchTotals.vol DBL Start of run volume, gal
branchTotals.exArea DBL Start of run outside surface area (at insulation surface), ft2
branchTotals.UA DBL Start of run fluid-to-surround loss, Btuh/F-hr
Name Type Variability Description/Comments
wrCount number Start of run total child DHWHEATRECs
wrFeedWHCount number Start of run
  • count of child [DHWHEATRECs][dhwheatrec] that provide
  • feed (cold) water to [DHWHEATERs][dhwheater]
  • [DHWHEATRECs][dhwheatrec] may feed fixtures or WH or both
wrFxDrainCount number Start of run count of fixture drains feeding (possibly shared) DHWHEATRECs
fxCount[index] SI_GEZ Array [NDHWENDUSESPP] Start of run
  • end-use count of fixtures served by this [DHWSYS][dhwsys]
  • non-central: user input, default 1
  • central: derived from child [DHWSYSs][dhwsys]
  • used re allocation of shared loads
  • Load sharing -- support of multiple [DHWSYSs][dhwsys] in single unit
  • draws are distributed among [DHWSYSs][dhwsys] having suitable fixtures
  • aka "deal-em-out" algorithm
Name Type Variability Description/Comments
loadShareDHWSYSi TI input time index of DHWSYS with which this DHWSYS shares load
loadShareCount[index] number Array [NDHWENDUSESPP] Start of run
  • # of [DHWSYSs][dhwsys] sharing group load by end use
  • ([ 0] = # of [DHWSYSs][dhwsys] in group)
  • NOT effected by ws_mult.
  • All [DHWSYSs][dhwsys] in group have same ws_loadShareCounts
loadShareWS0[index] number Array [NDHWENDUSESPP] End of day
  • re allocation of shared load
  • idx for ws_eventID=0 by end use, set daily based on jDay
Name Type Variability Description/Comments
drawCSV choice:NOYES input time
  • iff C_NOYESCH_YES, write tick-level draw data to
  • _<[DHWSYS][dhwsys].name>_draws.csv
Name Type Variability Description/Comments
HHWO number End of hour current total recovery load (at water heater), Btu
DLM number End of hour distribution loss multiplier (calc'd)
volRL number End of hour current hour all-DHWLOOP return volume, gal
tRL number End of hour current hour all-DHWLOOP return temp, F
HRBL number End of hour current hour all-DHWLOOPBRANCH losses, Btu
t24WL number End of hour
  • current hour all-[DHWLOOPBRANCH][dhwloopbranch] waste loss volume, gal
  • per T24DHW branch model
  • info only: associated energy is included in ws_HRBL
t24WLTot DBL End of run annual total ws_t24WL, gal
Name Type Variability Description/Comments
volCHDHW number End of subhour current subhour all-RSYS combined heat/DHW (CHDHW) draw, gal
tRCHDHW number End of subhour current subhour average combined heat/DHW (CHDHW) return temp, F
CHDHWHtgFractSH number End of subhour
  • current subhour fraction of [DHWSYS][dhwsys] output that
  • supplied CHDHW load(s)
CHDHWHtgFractAvg number End of subhour
  • fraction of [DHWSYS][dhwsys] output that supplied CHDHW load(s)
  • averaged over last ws_CHDHWHistoryHours hours
Name Type Variability Description/Comments
HRDL number End of hour
  • current hour recirculation loss, Btu
  • = ws_HRBL + [DHWLOOPSEG][dhwloopseg] losses
  • (adjusted re [DHWLOOP][dhwloop] wl_lossMakeupPwr)
HJLsh number End of subhour current subhour jacket losses (from DHWTANKs), Btu
HJL number End of hour hour total jacket losses (from DHWTANKs), Btu
HARL number End of hour hour total adjusted recovery load, Btu