Skip to content

Commit 0202416

Browse files
authored
Merge pull request #51 from cse-sim/DWHR2
Dwhr2
2 parents a9898d2 + cc1b9c1 commit 0202416

File tree

13 files changed

+2486
-1234
lines changed

13 files changed

+2486
-1234
lines changed

doc/src/records/dhwheatrec.md

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ Optional name of device; give after the word “DHWHEATREC” if desired.
1212

1313
**wrMult=*integer***
1414

15-
Number of identical heat recovery devices of this type. Any value $>1$ is equivalent to repeated entry of the same DHWHEATREC.
15+
Number of identical heat recovery devices of this type. Any value >1 is equivalent to repeated entry of the same DHWHEATREC.
1616

1717
**Units** **Legal Range** **Default** **Required** **Variability**
1818
----------- ----------------- ------------- -------------- -----------------
19-
$>$ 0 1 No constant
19+
$>$ 0 1 No constant
2020

2121
**wrHWEndUse=*choice***
2222

@@ -39,12 +39,20 @@ Hot water end use to which this DHWHEATREC is applied: one of Shower, Bath, CWas
3939

4040
**wrType=*choice***
4141

42-
Specifies the type of heat recovery device: Vertical or Horizontal. Currently, wrType has no effect on model results.
42+
Specifies the type of heat recovery device: Vertical, Horizontal, or SetEF. Horizontal and Vertical derive effectiveness from wrCSARatedEF, flow rates, and water temperatures. As of Feb. 2019, the same correlation is used for both Horizontal and Vertical, so these choices have effect on results. Choice SetEF uses wrCSARatedEF without modification as the effectiveness (note hourly variability).
4343

44-
**Units** **Legal Range** **Default** *Required** **Variability**
44+
**Units** **Legal Range** **Default** **Required** **Variability**
4545
----------- -------------------- ---------------- -------------- -----------------
4646
-- one of above choices Vertical No constant
4747

48+
**wrCSARatedEF=*float***
49+
50+
Specifies the heat recovery effectiveness, generally determined using CSA B55.2 rating conditions. This value is modified during simulation based on water flow rates and temperatures. If wrType=SetEF, wsCSARatedEF is used without modification.
51+
52+
**Units** **Legal Range** **Default** **Required** **Variability**
53+
----------------- -------------------- ------------- -------------- -----------------
54+
-- 0 $\le$ x $\le$ 1 -- Yes hourly
55+
4856
**wrConfig=*choice***
4957

5058
Specifies the plumbing configuration:
@@ -58,14 +66,22 @@ Specifies the plumbing configuration:
5866
----------- ---------------------- ------------- -------------- -----------------
5967
one of above choices Equal No constant
6068

61-
**wrCSARatedEF=*float***
6269

63-
Specifies the heat recovery effectiveness determined using CSA B55.2 rating conditions.
70+
**wrTDInDiff=*float***
6471

65-
**Units** **Legal Range** **Default** **Required** **Variability**
72+
Temperature drop between the fixture drain and DHWHEATREC drain-side inlet. The drain-side inlet temperature is thus DHWUSE wuTemp - wrTDInDiff.
73+
74+
**Units** **Legal Range** **Default** **Required** **Variability**
6675
----------------- -------------------- ------------- -------------- -----------------
67-
-- 0 $\le$ x $\le$ 1 -- Yes hourly
76+
^o^F $\ge$ 0 4.6 ^o^F N hourly
6877

78+
**wrTDInWarmup=*float***
79+
80+
Drain-side inlet water temperature during warmup. During the warmup portion of a draw (if any), the drain-side inlet temperature will initially be lower than that based on DHWUSE wuTemp. wrTDInWarmup allows input of user estimates for this temperature. Note wrTDInWarmup is *not* adjusted by wrTDInDiff.
81+
82+
**Units** **Legal Range** **Default** **Required** **Variability**
83+
----------------- -------------------- ------------- -------------- -----------------
84+
^o^F $\gt$ 0 65 ^o^F N hourly
6985

7086
**endDHWHEATREC**
7187

doc/src/records/dhwsys.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ Hourly hot water use (at the point of use). See further info under wsDayUse.
7878

7979
Note that while DHWDAYUSE selection is updated daily, the DHWUSE values within the DHWDAYUSE can be altered hourly, providing additional scheduling flexibility.
8080

81-
**Units** **Legal Range** **Default** **Required** **Variability**
82-
----------- ----------------- ---------------------- -------------- -----------------
83-
gal $\ge$ 0 (no scheduled draws) No daily
81+
**Units** **Legal Range** **Default** **Required** **Variability**
82+
---------- ---------------------- ---------------------- -------------- -----------------
83+
*name of a DHWDAYUSE* (no scheduled draws) No daily
8484

8585
**wsTUse=*float***
8686

@@ -102,9 +102,9 @@ Hot water delivery temperature (at the point of use). Note that draws defined v
102102

103103
Specifies electrical parasitic power to represent recirculation pumps or other system-level electrical devices. Calculated energy use is accumulated to the METER specified by wsElecMtr (end use DHW). No other effect, such as heat gain to surroundings, is modeled.
104104

105-
**Units** **Legal Range** **Default** **Required** **Variability**
106-
----------- ----------------- ------------- -------------- -----------------
107-
W $>$ 0 0 No hourly
105+
**Units** **Legal Range** **Default** **Required** **Variability**
106+
----------- ------------------ ------------- --------------- -----------------
107+
W $\ge$ 0 0 No hourly
108108

109109
**wsSDLM=*float***
110110

doc/src/records/dhwuse.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DHWUSE
22

3-
Defines a single hot water draw as part of a DHWDAYUSE. See discussion and examples under DHWDAYUSE. As noted there, most DHWUSE values have hourly variability, allowing flexible representation
3+
Defines a single hot water draw as part of a DHWDAYUSE. See discussion and examples under DHWDAYUSE. As noted there, most DHWUSE values have hourly variability, allowing flexible representation.
44

55
**wuName**
66

@@ -29,7 +29,7 @@ Durations that extend beyond midnight are included in the current day.
2929

3030
**wuFlow=*float***
3131

32-
Draw flow rate at the point of use (in other words, the mixed-water flow rate). wuFlow = 0 is equivalent to omitting the DHWUSE. There is no enforced upper limit on wuFlow, however, unrealistically large values will cause runtime errors.
32+
Draw flow rate at the point of use (in other words, the mixed-water flow rate). wuFlow = 0 is equivalent to omitting the DHWUSE. There is no enforced upper limit on wuFlow, however, unrealistically large values can cause runtime errors.
3333

3434
**Units** **Legal Range** **Default** **Required** **Variability**
3535
----------- ------------------- ----------- ------------- -------------------------
@@ -48,16 +48,21 @@ Fraction of draw that is hot water. Cannot be specified with wuTemp or wuHeatRe
4848
Mixed-water use temperature at the fixture. Cannot be specified when wuHotF is given.
4949

5050
---------------------------------------------------------------------------------------------
51-
**Units** **Legal Range** **Default** **Required** **Variability**
52-
---------- ------------------- ------------- ------------------ -------------------------
53-
^o^F 0 $\le$ x 0 when wuHeatRecEF hourly
54-
is given
51+
**Units** **Legal Range** **Default** **Required** **Variability**
52+
---------- ------------------- ------------- ---------------------------- ---------------
53+
^o^F 0 $\le$ x 0 when wuHeatRecEF is given hourly
54+
or parent DHWSYS includes
55+
DHWHEATREC(s)
5556
---------------------------------------------------------------------------------------------
5657

5758

5859
**wuHeatRecEF=*float***
5960

60-
Heat recovery effectiveness. If non-0, wuHeatRecEF allows modeling of heat recovery devices such as drain water heat exchangers. If given, wuTemp must also be specified. Not allowed when referencing DHWSYS includes DHWHEATREC(s).
61+
Heat recovery effectiveness, allows simple modeling of heat recovery devices such as drain water heat exchangers.
62+
63+
If non-0 (evaluated hourly), hot water use is reduced based on wuTemp, DHWSYS wsTUse, and DHWSYS wsTInlet. DHWHEATREC(s), if any, are ignored for this use. wuTemp must be specified.
64+
65+
If 0, detailed heat recovery modeling *may* apply, see [DHWHEATREC](#dhwheatrec).
6166

6267
**Units** **Legal Range** **Default** **Required** **Variability**
6368
----------- --------------------- ------------- ------------- -------------------------
@@ -66,10 +71,11 @@ Heat recovery effectiveness. If non-0, wuHeatRecEF allows modeling of heat reco
6671

6772
**wuHWEndUse=*choice***
6873

69-
Hot-water end use: one of Shower, Bath, CWashr, DWashr, or Faucet. wuHWEndUse has two functions --
74+
Hot-water end use: one of Shower, Bath, CWashr, DWashr, or Faucet. wuHWEndUse has the following functions --
7075

7176
* Allocation of hot water use among multiple DHWSYSs (if more than one DHWSYS references a given DHWDAYUSE).
7277
* DHWMETER end-use accounting (via DHWSYS).
78+
* Activation of the detailed heat recovery model (available for end use Shower when wuHeatRecEF=0 and the parent DHWSYS includes DHWHEATREC(s)).
7379

7480
**Units** **Legal Range** **Default** **Required** **Variability**
7581
----------- -------------------- --------------------------- ------------- -------------------------

src/CNCULT.CPP

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ void FC iRatsFree() // free record storage for all input basAncs.
127127

128128
// added for DLL version that must always free all its storage.
129129
// calling this is safer than walking the tables for error exits
130-
// beleived redundant but harmless for normal exits.
130+
// believed redundant but harmless for normal exits.
131131
{
132132
ZiB.free();
133133
IzxiB.free();
@@ -1831,10 +1831,12 @@ CULT( "*", STAR, 0, 0, 0, 0, 0, 0,
18311831
CULT( "wrDHWSYS", DAT, DHWHEATREC_OWNTI, NO_INP|RDFLIN,0,0, TYREF, &WSiB, 0, N, N),
18321832
CULT( "wrMult", DAT, DHWHEATREC_MULT, 0, 0, VEOI, TYSI, 0, 1, N, N),
18331833
CULT( "wrType", DAT, DHWHEATREC_TYPE, 0, 0, VEOI, TYCH, 0, C_DWHRTYCH_VERT, N, N),
1834-
CULT( "wrConfig", DAT, DHWHEATREC_CONFIG, 0, 0, VEOI, TYCH, 0, C_DWHRCFGCH_EQUAL, N, N),
18351834
CULT( "wrCSARatedEF",DAT, DHWHEATREC_EFFRATED,RQD, 0, VHRLY, TYFL, 0, .5f, N, N),
1836-
CULT( "wrDTDrain", DAT, DHWHEATREC_DTDRAIN, 0, 0, VHRLY, TYFL, 0, 4.6f, N, N),
1837-
CULT( "wrFxServed", DAT, DHWHEATREC_FXSERVED,0, 0, VEOI, TYSI, 0, 1, N, N),
1835+
CULT( "wrCountFXDrain",DAT, DHWHEATREC_NFXDRAIN,0, 0, VEOI, TYSI, 0, 1, N, N),
1836+
CULT( "wrCountFXCold",DAT, DHWHEATREC_NFXCOLD, 0, 0, VEOI, TYSI, 0, 0, N, N),
1837+
CULT( "wrFeedsWH", DAT, DHWHEATREC_FEEDSWH, 0, 0, VEOI, TYCH, 0, C_NOYESCH_NO, N, N),
1838+
CULT( "wrTDInDiff", DAT, DHWHEATREC_TDINDIFF,0, 0, VHRLY, TYFL, 0, 4.6f, N, N),
1839+
CULT( "wrTDInWarmup",DAT, DHWHEATREC_TDINWARMUP, 0, 0, VHRLY, TYFL, 0, 65.f, N, N),
18381840
CULT( "wrHWEndUse", DAT, DHWHEATREC_HWENDUSE,0, 0, VEOI, TYCH, 0, C_DHWEUCH_SHOWER, N, N),
18391841
CULT( "endDHWHEATREC", ENDER, 0, 0, 0, 0, 0, 0, 0, N, N),
18401842
CULT()

src/CNCULT2.CPP

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,18 +1401,25 @@ LOCAL RC topDHW() // check DHWSYS/DHWHEATER ... copy to run rat
14011401
RC rc = RCOK;
14021402
E( WMtrR.RunDup( WMtriB));
14031403
E( WsR.RunDup( WSiB));
1404-
E( WhR.RunDup( WHiB, &WsR))
1405-
E( WtR.RunDup( WTiB, &WsR))
1406-
E( WrR.RunDup( WRiB, &WsR))
1407-
E( WpR.RunDup( WPiB, &WsR))
1408-
E( WlR.RunDup( WLiB, &WsR))
1409-
E( WgR.RunDup( WGiB, &WlR))
1410-
E( WbR.RunDup( WBiB, &WgR))
1411-
E( WlpR.RunDup( WLPiB, &WlR))
1412-
E( WduR.RunDup( WDUiB, &WsR))
1413-
E( WuR.RunDup( WUiB, &WduR))
1414-
1415-
// initialization -- do *last* -- all children in place
1404+
E(WhR.RunDup(WHiB, &WsR))
1405+
E(WtR.RunDup(WTiB, &WsR))
1406+
E(WrR.RunDup(WRiB, &WsR))
1407+
E(WpR.RunDup(WPiB, &WsR))
1408+
E(WlR.RunDup(WLiB, &WsR))
1409+
E(WgR.RunDup(WGiB, &WlR))
1410+
E(WbR.RunDup(WBiB, &WgR))
1411+
E(WlpR.RunDup(WLPiB, &WlR))
1412+
E(WduR.RunDup(WDUiB, &WsR))
1413+
E(WuR.RunDup(WUiB, &WduR))
1414+
1415+
// DHWDAYUSE one-time inits
1416+
DHWDAYUSE* pWDU;
1417+
RLUP(WduR, pWDU)
1418+
rc |= pWDU->wdu_Init( 0);
1419+
RLUP(WduR, pWDU)
1420+
rc |= pWDU->wdu_Init( 1);
1421+
1422+
// DHWSYS initialization -- do *last* -- all children in place
14161423
// multiple passes re e.g. wsLoadShareDHWSYS
14171424
DHWSYS* pWS;
14181425
RLUP( WsR, pWS)

src/CNDTYPES.DEF

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,6 @@ DUCTSEGP -- "class DUCTSEG*" 4 none
408408
}
409409
*choicb DHWLSEGTYCH { RET "return" SUP "supply" }
410410
*choicb DWHRTYCH { HORIZ "horizontal" VERT "vertical" SETEF "SetEF" }
411-
*choicb DWHRCFGCH { EQUAL "Equal" UNEQFX "UnequalFX" UNEQWH "UnequalWH" }
412411

413412
// PV choices
414413
*choicb PVMODCH {

src/CNFIELDS.DEF

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ DHWEUXCH DHWEUXCH LMNONE UNNONE
173173
DHWMODELCH DHWMODELCH LMNONE UNNONE
174174
DHWLSEGTYCH DHWLSEGTYCH LMNONE UNNONE
175175
DWHRTYCH DWHRTYCH LMNONE UNNONE
176-
DWHRCFGCH DWHRCFGCH LMNONE UNNONE
177176
PVMODCH PVMODCH LMNONE UNNONE
178177
PVARRCH PVARRCH LMNONE UNNONE
179178
MOUNTCH MOUNTCH LMNONE UNNONE

0 commit comments

Comments
 (0)