diff --git a/design/FY2019/Li_ion_battery_model_images/Simple_vs_SAM.png b/design/FY2019/Li_ion_battery_model_images/Simple_vs_SAM.png
new file mode 100644
index 00000000000..3e3d267d460
Binary files /dev/null and b/design/FY2019/Li_ion_battery_model_images/Simple_vs_SAM.png differ
diff --git a/design/FY2019/Li_ion_battery_model_images/battery_temp_degradation.png b/design/FY2019/Li_ion_battery_model_images/battery_temp_degradation.png
new file mode 100644
index 00000000000..6e97043b207
Binary files /dev/null and b/design/FY2019/Li_ion_battery_model_images/battery_temp_degradation.png differ
diff --git a/design/FY2020/NFP Li_ion battery model.md b/design/FY2020/NFP Li_ion battery model.md
new file mode 100644
index 00000000000..32a428354f4
--- /dev/null
+++ b/design/FY2020/NFP Li_ion battery model.md
@@ -0,0 +1,157 @@
+# Addition of Lithium-ion Battery Chemistry to the Energy Storage Module
+
+**Rohit Chintala**
+**Ben Polly**
+**Noel Merket**
+
+Original Date: July 2019
+Updated: August 2020
+
+## Introduction
+
+The increasing need for decarbonization has resulted in a proliferation of buildings that have incorporated decentralized power production such as photovoltaic (PV) systems to meet their energy needs. Energy storage is a crucial element to consider for such buildings as storage makes it possible to balance energy generation and consumption, in addition to improving the interaction with the electricity grid. An accurate energy storage model thus becomes essential for several research and development activities pertaining to these buildings such as battery design and capacity, sizing of PV systems, building operation control strategies, load flexibility analysis, etc. [1]. EnergyPlus can serve as a valuable tool in this regard. However, there are key limitations in the current electrical storage model which need to be addressed. This document proposes a new feature that would enhance the capabilities of the storage model by improving its accuracy, and furthermore would make it applicable to a wider range of battery chemistries.
+
+## Justification for New Feature Proposal
+From among the battery chemistries, Lithium-ion is becoming increasingly popular for use in storing renewable energy. Although, the initial costs are higher, lithium-ion batteries outperform competing technologies such as lead (Pb)-acid in terms of energy delivered and specific power. Furthermore, lithium-ion batteries may be more economical in the long run as they have longer cycle life and lower life cycle costs [2]. EnergyPlus doesn't have a storage model that can accurately simulate Li-ion battery chemistry. Having accurate models that predict various aggregate properties of the battery state allows energy modelers to make more informed decisions about selecting the right storage size and chemistry for the building under consideration. A brief summary of the limitation that exist in the current energy storage model and a description of the proposed model developed by SAM [3] is provided below.
+
+### Constant Charging and Discharging Efficiencies
+The electrical storage module in EnergyPlus currently has two models – a Simple Energy Balance model and a Kinetic Battery model. The simple energy model treats the battery as a black-box and counts the energy that is added or removed from it using constant charging and discharging efficiencies. The state of charge $$(Q_{stor})$$ at time step $$t+\Delta t$$ can be written as follows:
+$$Q_{stor}^{t+\Delta t} = Q_{stor}^t+P_{chg}\cdot \epsilon_{chg} \cdot \Delta t$$
+where $$P_{chg}$$ is the charging power, and $$\epsilon_{chg}$$ is the charging efficiency. In a more accurate model of a Li-ion battery, however, the charging efficiency is not constant but is dependent on its current state of charge and terminal voltage. Not accurately modeling the battery states or efficiencies results in discrepancies while computing the battery charging and discharging power. A comparison of the charging power required to charge the battery at a constant rate as computed by the simple energy balance model, and the proposed SAM model is shown in Figure 1.
+![](Li_ion_battery_model_images/Simple_vs_SAM.png)
+Figure 1: Charging power comparison between Simple Energy Model and SAM at constant C-rate.
+
+
+### Kinetic Battery Model is not Suited for Li-ion
+There are certain characteristics that are exhibited by batteries with Pb-acid chemistries that make them significantly different than others. One such property which makes them unique is the fact that a fraction of the total charge remains chemically bounded at any time. The bound charge must become available before it can be used [3]. The kinetic battery model which is employed by the EnergyPlus storage module assumes that the charge stored in the battery is divided into two tanks, an available charge tank and a bound-charge tank. Not all the charge that is currently stored in the battery is directly available to the load. The portion of the charge that is present in the bound-charge tank can supply electrons only to the available charge tank.
+The kinetic battery model described above is more suitable for battery chemistries such as Pb-acid with slow chemical kinetics. Li-ion have batteries have much faster dynamics enabling them to be charged and discharged much more rapidly. The proposed model treats the battery as a single tank of charge, thereby representing Li-ion chemistry more accurately.
+
+### Battery Thermal Model
+
+The electrical storage module in EnergyPlus doesn't model the battery temperature. The thermal model captures the impact of the ambient conditions not only on the battery temperature, but also the amount of heat dissipated by the battery to the surroundings. Furthermore, battery temperature has a big impact on the charge capacity and the calendar degradation. The lifecylce of a battery can be maximized by maintaining the battery temperature at room temperature. There is a significant reduction in the battery lifetime when the temperature instead is much higher or lower than the room temperature. For example, Figure 2 below shows how the capacity degradation of a typical Li-ion cell under different ambient temperatures. The figures were generated using the Li-ion capacity degradation model developed by Smith et al. in [4]. In order to determine the best dispatch strategy that also maximizes the battery's lifespan, an accurate model of both the capacity and cycle degradation is required. But as is evident from the figure, not modeling the thermal effects causes significant discrepancies in the estimation of these battery states.
+![](Li_ion_battery_model_images/battery_temp_degradation.png)
+Figure 2: Charge degradation at various ambient temperatures.
+
+### Calendar and Cycle Degradation
+There are two main mechanisms by which the battery capacity is reduced over its lifetime as listed below.
+* Loss in cyclable Lithium due to the development of a solid-electrolyte interface (SEI) with time
+* Mechanical damage to the negative electrode due to cycling
+
+The actual battery capacity can be modeled as the limiting value of these competing mechanisms [5] as shown in the equation below
+$$Q_{max} = min(Q_{max}^{Li},Q_{max}^{neg})$$
+where $$Q_{max}$$ is the modeled battery capacity, and $$Q_{max}^{Li}$$ and $$Q_{max}^{neg}$$ are the capacities modeled due to the two mechanisms listed above. Each of the two mechanisms depend on several factors such as Depth of Discharge (DoD), number of cycles, battery temperature, calendar time, State of Charge (SoC) etc. The current cycle life model in EnergyPlus, however, does not take into consideration the different mechanisms by which the battery capacity fades.
+
+## Method and Approach
+
+This section briefly describes the theory of the proposed battery model, and the programming approach that can be used to implement it in EnergyPlus.
+
+### Battery Performance and Lifetime Model
+The battery performance model is used to describe its aggregate properties which include terminal voltage, state of charge, and temperature at every time step of the simulation. The parameters of the model can be extracted from battery data-sheets. The terminal voltage $V_{term}$ is expressed as shown in the equation below.
+$$V_{term} = V_0 - I_{bat}\cdot R - K(Q_{max}/Q - \int I_{bat}\cdot dt ) +a\cdot e^{-BI_{bat}dt}$$
+A description of the variables, and the constants and their values corresponding to a Li-ion cell in the equation above are shown in Tables 1 and 2.
+
+Table 1: Description of variables in the terminal voltage equation.
+| Parameter (symbol) | Value |
+| ------ | ------ |
+| $$V_{term} (V)$$ | Terminal Voltage |
+| $$Q_{max} (Ah)$$ | Battery Capacity |
+| $$Q (Ah)$$ | Battery Charge|
+| $$I_{bat}(A)$$ | Battery current |
+| $$dt (hr)$$ | Time Step |
+
+Table 2: Parameters of the terminal voltage equation.
+| Parameter (symbol) | Description |Value|
+| ------ | ------ |------ |
+| $$V_0$$ |Open Circuit Voltage |3.7348|
+| $$R(\omega)$$ | Internal Resistance |0.09|
+| $$K(V)$$ | Polarization Voltage|0.00876|
+| $$a(V)$$ | Exponential Zone Amplitude |0.468|
+| $$B(Ah)^{-1}$$ | Exponential Zone Time Constant Inverse |3.5294|
+
+The state of charge of the battery $Q_{bat}$ at time step $$k$$ is updated using the equation below
+$$Q_{bat}(k) = Q_{bat}(k-1) + \left((I_{bat}\cdot V_{term})\cdot (1/1000)/E_{max} \right)$$
+where $$E_{max}$$ is the maximum capacity of the battery in $$kWh$$.
+
+The thermal model is generated by using an energy balance which takes into consideration the heat generated due to the internal resistance, the heat transferred to and from the surrounding, and the thermal storage of the battery and the casing. The output of interest is the battery temperature $$T_{bat}$$ and the equation governing its evolution with time is expressed in the equation below
+$$dT_{bat}/dt = (hA(T_{out} - T_{bat}) + I_{bat}^2R)/(m\cdot C_p)$$
+where $$T_{out}$$ is the ambient temperature, and $m$ and $C_p$ are the mass and specific heat capacity of the battery.
+
+The lifetime model is adopted from the paper by Smith et.al [4]. The model predicts the battery capacity degradation with time and use. The maximum capacity is computed by taking into consideration two mechanisms as was described in the previous section, the loss of cyclable Lithium due to formation of SEI $$(Q_{max}^{Li}$$, and the mechanical damage of the negative electrode due to the charge/discharge cycles $$(Q_{max}^{neg})$$. The battery capacity due to each of the mechanisms is shown in the equations below.
+$$Q_{max}^{Li} = d_0 \left[b_0 - b_1t^{1/2} - b_2N - b_3(1-exp(-t/\tau_{b_3})\right]$$
+
+$$Q_{max}^{neg} = d_0 \left[c_0^2 - 2c_2c_0N\right]^{1/2}$$
+The parameters $d_0,b_1, b_2, b_3, c_0, c_2$ depend on several factors such as depth of discharge, state of charge, number of cycles etc. These relationships were determined by Smith et.al in [4]. The capacity at any point in time is the limiting value of the estimates from the two mechanisms as shown in the equation below.
+$$Q_{max} = min(Q_{max}^{Li}, Q_{max}^{neg})$$
+
+### Programming Approach
+The System Advisor Model (SAM) already has a battery module based on the models described in the previous section. In order to incorporate this module in EnergyPlus, the battery model in SAM and all its dependencies can be imported into the third party library in EnergyPlus. The battery model and its dependencies are contained in two folders of the SAM repository, the 'ssc' folder and the 'shared' folder. The link to the github repository of the SAM model is below.
+
+https://github.com/nrel/ssc
+
+The following libraries from the SAM repository would be imported into EnergyPlus.
+1. cmod_battery.h
+2. common.h
+3. core.h
+4. lib_battery.h
+5. lib_battery_dispatch.h
+6. lib_battery_powerflow.h
+7. lib_power_electronics.h
+8. lib_resilience.h
+9. lib_shared_inverter.h
+10. lib_time.h
+11. lib_util.h
+12. lib_utility_rate.h
+13. lib_weatherfile.h
+14. 6par_newton.h
+
+A new class lifetime_calendar_t::runLithiumIonLifetimeModel has been programmed in the lib_battery module of SAM to model the capacity degradation of a lithium-ion battery based on the model described above by Smith et.al. [4]. The model outputs the updated capacity of the battery at every timestep taking into consideration the cycling history, state of charge, depth of discharge, and the ambient temperature to which the battery is exposed.
+
+The electrical storage model in EnergyPlus is present in the file ElectricPowerServiceManager.cc. The storage model in this file currently has just two cases corresponding to the simple battery model (simpleBucketStorage) and the Kinetic Battery Model (kiBaMBattery). By importing the aforementioned libraries from SAM, a more detailed and accurate capacity degaradation model for Lithium ion can be incorporated into EnergyPlus.
+
+## Inputs and Outputs
+The inputs and outputs that would be required to incorporate the Li-ion battery performance and lifetime degradation models are shown below.
+
+### Inputs
+
+* Field: Name
+* Availability schedule name
+* Zone name
+* Mass
+* Effective specific heat capacity
+* Effective conduction coefficient
+* Number of battery modules in series
+* Number of battery modules in parallel
+* Initial fractional state of charge
+* Module cut-off voltage
+* Battery nominal capacity
+* Battery usable capacity
+* Real power max continuous
+* Real power peak charging
+* Real power peak discharging
+* Nominal voltage
+
+### Outputs
+
+* Electric storage charge state
+* Electric storage charge fraction
+* Electric storage charge power
+* Electric storage charge energy
+* Electric storage discharge power
+* Electric storage discharge energy
+* Electric storage total current
+* Electric storage total voltage
+* Electric storage thermal loss rate
+* Electric storage Thermal loss energy
+* Electric storage temperature
+* Electric storage degradation fraction
+* Electric storage charge capacity
+* Electric storage internal resistance
+
+## References
+
+- [1] Berrueta, Alberto, et al. "A comprehensive model for lithium-ion batteries: From the physical principles to an electrical model." Energy 144 (2018): 286-300.
+- [2] Diouf, Boucar, and Ramchandra Pode. "Potential of lithium-ion batteries in renewable energy." Renewable Energy 76 (2015): 375-380
+- [3] DiOrio, Nicholas, et al. Technoeconomic modeling of battery energy storage in SAM. No. NREL/TP-6A20-64641. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2015.
+- [4] Smith, Kandler, et al. "Life prediction model for grid-connected Li-ion battery energy storage system." 2017 American Control Conference (ACC). IEEE, 2017
+- [5] Santhanagopalan, Shriram, et al. Design and analysis of large lithium-ion battery systems. Artech House, 2014.
+
diff --git a/design/FY2020/NFP-EnhancedOutdoorAirReporting.md b/design/FY2020/NFP-EnhancedOutdoorAirReporting.md
new file mode 100644
index 00000000000..fd64c8053cc
--- /dev/null
+++ b/design/FY2020/NFP-EnhancedOutdoorAirReporting.md
@@ -0,0 +1,732 @@
+Enhance Outdoor Air Reporting
+================
+
+**Jason Glazer and Mike Witte, GARD Analytics**
+
+ - November 20, 2019
+ - December 30, 2019 - added Outdoor Air Limiting Factor tables, new output variables, shortened some table title names, added at and above
+ minimum to Total Outdoor Air by Airloop table, added "time at minimum" and "time above minimum" and moved "time below minimum" to
+ a single table.
+ - January 23, 2020 - remove ACH (air changes per hour) tables and columns, remove minimum outdoor air during occupancy tables,
+ move and rename the required airflow rate based on 62.1 computed each timestep to Voz-dyn and the associated times,
+ added Time Above Zero When Unoccupied
+ - January 27, 2020 - changed "Dynamic Zone Outdoor Airflow - Voz-dyn" to "Dynamic Target Ventilation - Voz-dyn"
+ - April 16, 2020 - added Design Document portion
+
+
+## Justification for New Feature ##
+
+Currently, users seeking to use EnergyPlus for LEED work need to document the use of Outdoor Air (OA) in their models. While
+the current Outdoor Air Summary in EnergyPlus provides some information to help these users, it does not provide enough information.
+Users often find it difficult to compare the OA delivered for proposed vs. baseline simulations, especially with economizers
+and zone equipment.
+
+## Overview ##
+
+Specific tasks for this include:
+
+- Expand the scope of the OA Summary to include zone heating, ventilation and air conditioning (HVAC) equipment.
+
+- Add tracking and table outputs for the minimum requested OA flow in addition to the existing output for actual OA flow.
+
+- Track times when the delivered OA is less than the minimum requirement, and
+
+- Provide outputs at standard air density.
+
+An issue was started to gather further input on this topic:
+
+https://github.com/NREL/EnergyPlus/issues/5298
+
+Which stated:
+
+> Users often find it difficult to compare the outdoor air delivered for proposed vs baseline simulations. The logical place to look
+> is the Outdoor Air Summary Report and the component sizing report. The component sizing report shows the minimum outdoor air flow
+> rates for Controller:OutdoorAir objects that have autosized OA flow rates, but there is no building total. But this would only
+> cover air handlers, not zone equipment. OA flow rates show up in some other tables as well, but again, no building totals.
+> The Outdoor Air Summary report has average and minimum OA flow rates during occupied hours listed by zone, reported as ACH. It
+> would be helpful to add flow in CFM or m3/s to these tables, and to add a total row for the entire building. Economizers can
+> cloud the issue as well. Is it useful to report what the minimum flows would be if the economizer was not operating?
+
+More than a dozen people who were known to regularly submit projects under LEED using EnergyPlus were specifically asked to comment on
+the issue and provided comments:
+
+- The total minimum OA for the building needs to be compared between the Baseline and Proposed Case models.
+
+- The Controller:OutdoorAir component sizing summary only shows values if the min/max were autosized. If the user enters a hard value
+the table is empty. The hard value should be reported as well when not autosized.
+
+- Include design (not including the economizer mode where OA may equal SA) and minimum (to check that area ventilation requirement is
+modeled correctly if DCV is included) occupied ventilation by system (both zone level and air handlers) and a total for the building
+in the Outdoor Air Summary report.
+
+- If it would make more sense, this information could be included in a new report. You could label the new report as ASHRAE 62
+Ventilation Summary, Mechanical Ventilation Summary, etc.
+
+- Thinking about tabular reports (hence forgetting about tables of hour versus month (weekends v weekends too) showing OA numbers),
+I would say that two metrics would be useful: "total outdoor air volume (m3) for the run period, per zone and building" and "total
+outdoor air volume when economizer is off." That would help see whether the deviation in absolute numbers are off because of economizer
+or not. It would require setting a new output variable to keep track of OA only when econ isn't running, so annoying and probably
+tedious but doable.
+
+
+
+## E-mail and Conference Call Conclusions ##
+
+No call yet
+
+## Approach ##
+
+The current report is shown below
+
+### Current Existing Report ###
+
+
Report: Outdoor Air Summary
+For: Entire Facility
+Timestamp: 2019-11-13
+ 07:52:15
+Average Outdoor Air During Occupied Hours
+
+ |
+ Average Number of Occupants |
+ Nominal Number of Occupants |
+ Zone Volume [ft3] |
+ Mechanical Ventilation [ACH] |
+ Infiltration [ACH] |
+ AFN Infiltration [ACH] |
+ Simple Ventilation [ACH] |
+
+
+ SPACE1-1 |
+ 9.50 |
+ 11.00 |
+ 8450.18 |
+ 1.591 |
+ 0.057 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE2-1 |
+ 4.32 |
+ 5.00 |
+ 3648.94 |
+ 2.921 |
+ 0.057 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE3-1 |
+ 9.50 |
+ 11.00 |
+ 8450.18 |
+ 1.484 |
+ 0.057 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE4-1 |
+ 4.32 |
+ 5.00 |
+ 3648.94 |
+ 3.098 |
+ 0.057 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE5-1 |
+ 17.27 |
+ 20.00 |
+ 15812.07 |
+ 0.882 |
+ 0.059 |
+ 0.000 |
+ 0.000 |
+
+
+Values shown for a single zone without multipliers
+
+Minimum Outdoor Air During Occupied Hours
+
+ |
+ Average Number of Occupants |
+ Nominal Number of Occupants |
+ Zone Volume [ft3] |
+ Mechanical Ventilation [ACH] |
+ Infiltration [ACH] |
+ AFN Infiltration [ACH] |
+ Simple Ventilation [ACH] |
+
+
+ SPACE1-1 |
+ 9.50 |
+ 11.00 |
+ 8450.18 |
+ 0.030 |
+ 0.000 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE2-1 |
+ 4.32 |
+ 5.00 |
+ 3648.94 |
+ 0.058 |
+ 0.000 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE3-1 |
+ 9.50 |
+ 11.00 |
+ 8450.18 |
+ 0.028 |
+ 0.000 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE4-1 |
+ 4.32 |
+ 5.00 |
+ 3648.94 |
+ 0.068 |
+ 0.000 |
+ 0.000 |
+ 0.000 |
+
+
+ SPACE5-1 |
+ 17.27 |
+ 20.00 |
+ 15812.07 |
+ 0.016 |
+ 0.000 |
+ 0.000 |
+ 0.000 |
+
+
+Values shown for a single zone without multipliers
+
+
+After reviewing the original task as well as the input received issue #5298, the proposed updated Outdoor Air Summary report
+will appear as shown below.
+
+### Proposed New Report ###
+
+Report: Outdoor Air Summary
+For: Entire Facility
+Timestamp: 2019-11-13
+ 07:52:15
+
+Mechanical Ventilation Parameters by Zone
+
+ |
+ AirLoop Name |
+ Average Number of Occupants |
+ Nominal Number of Occupants |
+ Zone Volume [ft3] |
+ Zone Area [ft2] |
+ Design Zone Outdoor Airflow - Voz [ft3/min] |
+ Minimum Dynamic Target Ventilation - Voz-dyn-min [ft3/min] |
+
+
+ SPACE1-1 |
+ Loop-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE2-1 |
+ Loop-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE3-1 |
+ Loop-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE4-1 |
+ Loop-2 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE5-1 |
+ Loop-2 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Totals |
+ |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+Zone values shown for a single zone without multipliers at standard air density. The Totals row includes zone multipliers.
+
+
+
+Total Outdoor Air by Zone
+
+ |
+ Mechanical Ventilation [ft3] |
+ Natural Ventilation [ft3] |
+ Total Ventilation [ft3] |
+ Infiltration [ft3] |
+ Total Ventilation and Infiltration [ft3] |
+ Dynamic Target Ventilation - Voz-dyn [ft3] |
+ Time Below Voz-dyn [Hours] |
+ Time At Voz-dyn [Hours] |
+ Time Above Voz-dyn [Hours] |
+ Time Above Zero When Unoccupied [Hours] |
+
+
+ SPACE1-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE2-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE3-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE4-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE5-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Totals |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+Zone values shown for a single zone without multipliers at standard air density. The Totals row includes zone multipliers.
+
+
+Average Outdoor Air During Occupancy by Zone - Flow Rates
+
+ |
+ Mechanical Ventilation [ft3/min] |
+ Natural Ventilation [ft3/min] |
+ Total Ventilation [ft3/min] |
+ Infiltration [ft3/min] |
+ Total Ventilation and Infiltration [ft3/min] |
+ Dynamic Target Ventilation - Voz-dyn [ft3/min] |
+ Time Below Voz-dyn [Hours] |
+ Time At Voz-dyn [Hours] |
+ Time Above Voz-dyn [Hours] |
+
+
+ SPACE1-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE2-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE3-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE4-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ SPACE5-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Totals |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+Zone values shown for a single zone without multipliers at standard air density. The Totals row includes zone multipliers.
+
+
+
+Total Outdoor Air by Airloop
+
+ |
+ Mechanical Ventilation [ft3] |
+ Sum Zone Dynamic Target Ventilation - Voz-sum-dyn [ft3] |
+ Time Below Voz-sum-dyn [Hours] |
+ Time At Voz-sum-dyn [Hours] |
+ Time Above Voz-sum-dyn [Hours] |
+ Time Above Zero When Unoccupied [Hours] |
+
+
+ Loop-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Loop-2 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Totals |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+Values shown at standard air density. Infiltration and natural ventilation are not included.
+
+
+
+Average Outdoor Air During Occupancy by Airloop
+
+ |
+ Mechanical Ventilation [ft3/min] |
+ Sum Zone Dynamic Zone Outdoor Airflow - Voz-sum-dyn [ft3/min] |
+ Time Below Voz-sum-dyn [Hours] |
+ Time At Voz-sum-dyn [Hours] |
+ Time Above Voz-sum-dyn [Hours] |
+
+
+ Loop-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Loop-2 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Totals |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+Values shown at standard air density. Infiltration and natural ventilation are not included.
+
+
+
+
+Times for Outdoor Air Limiting Factors During Occupancy
+
+ |
+ No Limiting Factor [hours] |
+ High Humidity [hours] |
+ Night Ventilation [hours] |
+ Economizer [hours] |
+ Demand Controlled Ventilation [hours] |
+ Exhaust Flow [hours] |
+ Limits and Scheduled Limits [hours] |
+ Demand Limiting [hours] |
+ Energy Management System [hours] |
+
+
+ Loop-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Loop-2 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Totals |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+
+
+Average Outdoor Air For Each Outdoor Air Limiting Factors During Occupancy
+
+ |
+ No Limiting Factor [ft3/min] |
+ High Humidity [ft3/min] |
+ Night Ventilation [ft3/min] |
+ Economizer [ft3/min] |
+ Demand Controlled Ventilation [ft3/min] |
+ Exhaust Flow [ft3/min] |
+ Limits and Scheduled Limits [ft3/min] |
+ Demand Limiting [ft3/min] |
+ Energy Management System [ft3/min] |
+
+
+ Loop-1 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Loop-2 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+ Totals |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+
+
+Values shown at standard air density.
+
+
+## Testing/Validation/Data Sources ##
+
+Compare current outputs including the sum of timestep results to annual results shown in the new reports.
+
+## Input Output Reference Documentation ##
+
+Add a paragraph for each table describing the contents of the table as part of the section on Output:Table:SummaryReports.
+
+## Input Description ##
+
+No changes to input.
+
+## Outputs Description ##
+
+New output variables would include:
+
+- Zone time below minimum outdoor air
+- Zone time at minimum outdoor air
+- Zone time above minimum outdoor air
+- Airloop limiting factor for outdoor air (0 to 9 corresponding to that table)
+
+Additional output varibles will be included that correspond to columns not already defined.
+
+The OutputDetailsAndExamples documentation includes a section on eplustbl.htm containing a
+description and example of the Outdoor Air Summary which would be updated.
+
+## Engineering Reference ##
+
+No changes to the engineering reference are expected.
+
+## Example File and Transition Changes ##
+
+No changes to example files or transition files are expected.
+
+## References ##
+
+None.
+
+## Design Document ##
+
+To implement the updated outdoor air summary report the following will be done:
+
+- Update OutputReportPredefined::SetPredefinedTables() to remove unused portions of the old report, move the columns
+from the old report to the new report, and add subtables and new columns to support the new version of the report.
+
+- Update OutputReportTabular::FillRemainingPredefinedEntries() to support the new report columns and remove unused columns
+of results from the old report.
+
+- Update SystemReports::ReportMaxVentilationLoads() which calculates the OA mass flow rate for each zone for both zone
+equipment and air loops.
+
+- Update DataZoneEquipment::CalcDesignSpecificationOutdoorAir() which is called by SingleDuct.cc::CalcOAMassFlow()
+to support the new output columns.
+
+- Update MixedAir::CalcOAController to support the new output columns.
+
+Additional changes may be required to create the data needed for all the columns for the revised outdoor air summary
+report subtables.
+
diff --git a/design/FY2020/NFP-ZoneAirTransferModel.md b/design/FY2020/NFP-ZoneAirTransferModel.md
new file mode 100644
index 00000000000..cc7678294f7
--- /dev/null
+++ b/design/FY2020/NFP-ZoneAirTransferModel.md
@@ -0,0 +1,193 @@
+Zone Air Mass Flow Balance Improvement
+=====================================
+
+**Bereket Nigusse, FSEC/UCF**
+
+ - Original Date: January 19, 2021
+ - Revision Date: January 22, 2021
+
+
+## Justification for New Feature ##
+
+ZoneAirMassFlowConservation is intended to balance airflows but current design is that the procedure adjusts zone mixing and/or infiltration flow rates. User that have complex air transfer models like grocery stores, restaurants, and some big box retailers need the ability to model actual air transfer and account for ventilation movement between spaces. In these cases, users want the infiltration, zone mixing, and exhaust fan flow rates to stay fixed at user specified flows, instead adjust the system return air to balance zone air flow.
+
+This new feature provides an alternative air flow balancing method that maintains the ZoneMixing flows at user specified flow rate to allow user preferred inter-zone air flows by adjusting the zone return air flows and in some cases by modifying user specified zone infiltration air flows.
+
+## E-mail and Conference Call Conclusions ##
+
+NA
+
+###Review comments and responses on Github####:
+
+@rraustad, Comment:
+How are constant volume HVAC systems going to respond to these 2 cases? I assume OA will make up the difference between supply and return flow rates. What happens when there is no OA system? In that case the supply and return flows should match
+@Nigusse, Response:
+I am assuming that the two cases should work for constant volume and VAV systems and have to confirmed through testing.
+Regarding "What happens when there is no OA system?", I have not thought enough if it needs a special treatment. One issue is that supply and return flows may not match for zones that has exhaust fan flow, ZoneMixing and Infiltration flows. You have to adjust either the supply, infiltration, or the return flows as needed.
+
+@mjwitte, Comment:
+(1) For systems with no outdoor air, the existing return flow calculations force the return to match the corresponding supply flow for a given zone. This balance must be maintained.
+(2) For constant volume systems, are you suggesting that the system flow could be increased by this? That's going to run up against the terminal unit max flow rate.
+(3) For VAV systems, increasing the supply flow could cause temperature control problems.
+@Nigusse, Response:
+I suspected I may run into control problem when the supply air flow rates is altered. In some cases return air can be zero and we may not have other variable to change unless infiltration air flow rate is adjusted instead of supply air. In fact my original NFP draft was to adjust return air and infiltration to balance the flow while keeping the ZoneMixing object flow as specified and letting the control system deal with supply air flow rate.
+I would rather adjust return and infiltration air flow rates to balance the system and let the control system determine the supply air flow rate. What do you think? @mjwitte
+@mjwitte, Response:
+That seems safer, but that question should be answered by those who are requesting this feature and the specific use cases that it will be applied to.
+@Nigusse, Response:
+OK, I will seek input from those requested the feature.
+
+@mjwitte, Comment:
+What determines "maximum return air flow rate"?
+How will this work when there are multiple return nodes (more than one AHU serving a zone)?
+@Nigusse, Response:
+I am thinking the maximum will be determined based on the the Node's maximum Mass Flow Rate and will use the same logic for all return nodes connected to the same zone. Not sure if this causes any problem.
+@mjwitte, Response:
+I don't think return nodes have a defined maximum mass flow rate, but I may be wrong. The only value that might be used would be the overall airloop design flow rate, which will defeat the purpose of this feature when it wants to set return flow > supply.
+@Nigusse, Response:
+My thought is it allows to set zone return flow > zone supply flow but the AirLoop overall return cannot be set > the overall airloop design flow rate.
+
+@mjwitte, Comment:
+How does the proposed method model or give user control over transfer air?
+@Nigusse, Response:
+Users will specify transfer air using ZoneMixing objects and these flow rates remain the same.
+@mjwitte, Response:
+OK, but with this method, the ZoneMixing flows will occur no matter what the system flows are. It will be up to the user to schedule the ZoneMixing flows to match the HVAC system operation.
+@Nigusse, Response:
+Yes, that is my plan.
+
+@Nigusse, final comment:
+I will update the NFP based on the feedback and seek input from those requested the feature. @mjwitte and @rraustad Thank you for your review and feedback.
+
+
+## Overview ##
+
+This work will implement code changes that allow alternative approach of the zone air mass flow balance calculation method that does not alter the simple flow objects mass flow. The fundamental zone mass balance equation remains the same but what this feature requesting is which zone air mass flow component needs to be adjusted to guarantee zone air mass flow conservation.
+
+The zone mixing object flows will always remain at user specified values such that inter-zone air transfer is modeled based on user's preference only.
+
+## Approach ##
+
+Current zone air mass flow conservation equation is formulated to solve the following equation by adjusting the Zone Mixing flow, and zone infiltration flow sequentially.
+
+ 0.0 = [m_{sup} - m_{exh} - m_{ret} + m_{zmreceiving} - m_{zmsource} + m_{inf}]
+
+where,
+m_{sup} = Zone Supply Air Mass Flow Rate, [kg/s]
+m_{exh} = Zone Exhaust Air Mass Flow Rate, [kg/s]
+m_{ret} = Zone Return Air Mass Flow Rate, [kg/s]
+m_{zmreceiving} = Zone Mixing Receiving Air Mass Flow Rate, [kg/s]
+m_{zmsource} = Zone Mixing Source Air Mass Flow Rate, [kg/s]
+m_{inf} = Zone Infiltration Air Mass Flow Rate, [kg/s]
+
+The existing procedure first attempts to solve the above equation by adjusting the Zone Mixing flow only and if that does not satisfy the above equation, then the user specified zone infiltration air flow rate is adjusted as needed. The zone infiltration air flow can be adjusted using two different methods depending user preference. The zone infiltration air flow adjusting method is a choice input field in the ZoneAirMassFlowConservation object.
+
+The requested feature will be implemented by adjusting the return air mass flow but the return air mass flow rate can be varied between the minimum value of zero and a maximum flow rate limited by the airloop design supply flow rate. Since varying the return air mass flow provides limited flexibility in achieving balanced flow for the range of practical applications, the zone air flow mass balance requires two different solution scenarios: one when the zone is under positive pressure and when the zone is under negative pressure. When the zone is under positive pressure, then the zone return air flow will be adjusted to balance the zone flow; whereas when the zone is under negative pressure zone infiltration air flow will be adjusted or increased.
+
+Solving the zone air flow mass balance equation for zone return air mass flow:
+
+m_{ret} = [m_{sup} - m_{exh} + m_{zmreceiving} - m_{zmsource} + m_{inf}]
+
+Depending on the sign of the value of return air mass flow rate calculated using the above equation two different cases that require different solution scheme are formulated:
+
+Case I: [m_{ret} >= 0.0]
+
+ The zone is under positive pressure hence requires non-zero zone return air mass flow rate to balance the zone air flow. The return air flow rate will be adjusted within the bounds of 0 and a maximum zone return air flow rate that balance the zone air mass flow. The zone maximum return flow rate is determined by a check that the sum of zone return air flow of all the zones served does not exceed the design supply air flow rate of the air loop serving the zones.
+
+Case II: [m_{ret} < 0.0]
+ The zone is under negative pressure hence requires additional supply air or infiltration air is required to balance the zone air flow. There are two possibilities that can be considered: (A) increasing zone infiltration air flow or (B) increasing the zone supply air flow.
+ The preferred implementation approach is alternative IIA but both alternatives are presented for discussion.
+
+ Alternative IIA:
+ In alternative IIA the infiltration air flow is increased proportionally and the return air mass flow rate will be reset to zero to balance zone air flow.
+ [m_{inf} += m_{ret};]
+ [m_{ret} = 0.0;]
+
+ Alternative IIB:
+ In alternative IIB the supply air flow is increased proportionally and the return air mass flow rate will be reset to zero to balance zone air flow.
+ [m_{sup} += m_{ret};]
+ [m_{ret} = 0.0;]
+
+ Alternative IIB may cause convergence problem that leads to exceeding maximum iteration limits or even missing the zone thermostat set-point because of fighting between the HVAC control and zone air mass balance flow adjustment. There could also be flow balancing problem when the HVAC system is scheduled off and the ZoneMixing or zone exhaust fan are active.
+
+The ZoneMixing objects air flows are always maintained at user specified values to allow user defined inter-zone air transfer.
+
+
+## Testing/Validation/Data Sources ##
+
+(1) Any new subroutine(s) will have a unit test that validate that the subroutine is functioning properly.
+(2) Verifies the zone air flow mass balance without altering user specified ZoneMixing object flows.
+
+## Input Output Reference Documentation ##
+
+This new feature will be implemented by adding a new choice key "AdjustZoneReturnFlow” to the existing input field "Adjust Zone Mixing For Zone Air Mass Flow Balance" in the ZoneAirMassFlowConservation object.
+
+The existing input field "Adjust Zone Mixing For Zone Air Mass Flow Balance" better be renamed to "Zone Air Mass Flow Balance Method" and the two existing choice keys needs to be renamed as well for clarity. For example the "Yes" choice key will be replaced with "AdjustZoneMixingFlow" and the "No" choice key with "None". See below modified ZoneAirMassFlowConservation object.
+
+## Input Description ##
+
+See modified "ZoneAirMassFlowConservation" object:
+
+ZoneAirMassFlowConservation,
+ \memo Enforces the zone air mass flow balance by adjusting zone mixing object and/or
+ \memo infiltration object mass flow rates.
+ \memo If either mixing or infiltration is active, then the zone air mass flow
+ \memo balance calculation will attempt to enforce conservation of mass for each zone.
+ \memo If mixing is "None" and infiltration is "None", then the zone air mass flow
+ \memo calculation defaults to assume self-balanced simple flow mixing and infiltration objects.
+ \unique-object
+ \min-fields 3
+ A1, \field Zone Air Mass Flow Balance Method
+ \note If AdjutsZoneMixingFlow, Zone mixing object flow rates are adjusted to balance the zone air
+ \note mass flow and additional infiltration air flow may be added if required in order to balance
+ \note the zone air mass flow.
+ \note If AdjustZoneReturnFlow, zone return air mass flow is adjusted to balance the zone air flow
+ \note and additional infiltration air flow may be added if required in order to balance the zone
+ \note air mass flow. ZoneMixing objects air flow is always maintained at user specified value.
+ \type choice
+ \key AdjutsZoneMixingFlow
+ \key AdjustZoneReturnFlow
+ \key None
+ \default None
+ A2, \field Infiltration Balancing Method
+ \note This input field allows user to choose how zone infiltration flow is treated during
+ \note the zone air mass flow balance calculation.
+ \type choice
+ \key AddInfiltrationFlow
+ \key AdjustInfiltrationFlow
+ \key None
+ \default AddInfiltrationFlow
+ \note AddInfiltrationFlow may add infiltration to the base flow specified in the
+ \note infiltration object to balance the zone air mass flow. The additional infiltration
+ \note air mass flow is not self-balanced. The base flow is assumed to be self-balanced.
+ \note AdjustInfiltrationFlow may adjust the base flow calculated using
+ \note the base flow specified in the infiltration object to balance the zone air mass flow. If it
+ \note If no adjustment is required, then the base infiltration is assumed to be self-balanced.
+ \note None will make no changes to the base infiltration flow.
+ A3; \field Infiltration Balancing Zones
+ \note This input field allows user to choose which zones are included in infiltration balancing.
+ \note MixingSourceZonesOnly allows infiltration balancing only in zones which as source zones for mixing
+ \note which also have an infiltration object defined.
+ \note AllZones allows infiltration balancing in any zone which has an infiltration object defined.
+ \type choice
+ \key MixingSourceZonesOnly
+ \key AllZones
+ \default MixingSourceZonesOnly
+
+## Outputs Description ##
+
+No new output variables will be implemented.
+
+## Engineering Reference ##
+
+Will be updated as needed.
+
+## Example File and Transition Changes ##
+
+One new example file will be added to the test suite to demonstrate this feature is functioning properly.
+
+IDD change is required to add new choice key to an existing input field, and rename the input field and the key choices. Transition is required.
+
+## References ##
+
+NA
diff --git a/design/FY2021/NFP-ZoneAirTransferModel.md b/design/FY2021/NFP-ZoneAirTransferModel.md
new file mode 100644
index 00000000000..b7e354c3fb1
--- /dev/null
+++ b/design/FY2021/NFP-ZoneAirTransferModel.md
@@ -0,0 +1,446 @@
+Zone Air Mass Flow Balance Improvement
+=====================================
+
+**Bereket Nigusse, FSEC/UCF**
+
+ - Original Date: January 19, 2021
+ - Revision Date: January 22, 2021
+ - Revision Date: February 4, 2021
+ - Revision Date: February 15, 2021
+
+## Justification for New Feature ##
+
+ZoneAirMassFlowConservation is intended to balance airflows but current design is that the procedure adjusts zone mixing and/or infiltration flow rates. User that have complex air transfer models like grocery stores, restaurants, and some big box retailers need the ability to model actual air transfer and account for ventilation movement between spaces. In these cases, users want the infiltration, zone mixing, and exhaust fan flow rates to stay fixed at user specified flows, instead adjust the system return air to balance zone air flow.
+
+This new feature provides an alternative air flow balancing method that maintains the ZoneMixing flows at user specified flow rate to allow user preferred inter-zone air flows by adjusting the zone return air flows and in some cases by modifying user specified zone infiltration air flows.
+
+## E-mail and Conference Call Conclusions ##
+
+### E-mail Communication ###
+Brent:
+Here is my two cents to frame this. In the defect file, and the reference building restaurant example file there is a work-around that has been around for over a decade. I would like to see this project finally do the zone mass balancing needed to remove that work-around. There should be no need to add a dummy exhaust fan in the source zone, and no need to figure out a messy and confusing schedule for the balancing/unbalancing in the zone exhaust fan in the receiving zone. The input hack, which I developed way back in the day, doesn’t even work for VAV system, nor if the zone transfer air is larger than the exhaust fan flow.
+
+Bereket Response;
+(1) The current zone air mass flow balance does not require dummy exhaust fan either in the source or receiving zone. What you need is specifying ZoneMixing object.
+(2) The current zone air mass flow balance does not require schedule for the balancing/unbalancing in the zone exhaust fan in the receiving zone
+(3) In general current zone air mass flow balance works better with VAV system but I have not tested the case with zone transfer air is larger than the exhaust fan flow.
+
+Mike:
+Bereket,
+Adjusting infiltration is one option, but what's really wanted here is reduced return flow from the dining room rather than increased infiltration to the dining room.
+
+Looking at the Engineering Ref section on Zone Air Mass Flow Conservation (see attached pages),
+the last equation on the first page says that the dining return flow should be reduced to account for the mixing to the kitchen when ZoneAirmassFlowConservation is active. But it doesn't appear this is happening. mXR and mXS are the mixing flows for receiving and source.
+
+So, why isn't this happening? Looking at line 3979 in CalcZoneMassBalance there net mixing flow is included in the equation.
+https://github.com/NREL/EnergyPlus/blob/0750c2009f67a3e05268b7ae7ab6cba8781826a7/src/EnergyPlus/ZoneEquipmentManager.cc#L3979-L3995
+
+ StdTotalReturnMassFlow = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate + ZoneMixingNetAirMassFlowRate -
+ (state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate - state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ZoneExhBalanced);
+
+So, maybe ZoneMixingNetAirMassFlowRate isn't getting set correctly?
+
+Yep, it's zero at this point, ZoneMixingNetAirMassFlowRate isn't set until line 4047 and only when
+if (ZoneAirMassFlow.InfiltrationTreatment != NoInfiltrationFlow) is true
+
+If that's true, it should get set and then impact the return flow on the next time through the mass balance do loop?
+
+I'll stop here, but I think this needs to be fixed and/or new options added to ZoneAirmassFlowConservation to make this part work. And maybe getting this all to work correctly is "all" that's needed for this new feature. Not saying it will be easy . . . .
+
+Mike
+
+### Conference Call Conclusions ###
+Bereket:
+Presented the NFP.
+
+Mike:
+Currently the infiltration treament method has three choices. But what is really needed in this feature is that balancing the zone air flow by adjusting the return air flow and also make sure that the current method is also working propoerly.
+
+Brent:
+It would have been better if the zone air mass flow conservation control is applied zone by zone basis instead of global.
+
+Mike:
+For now let's address current needs and only if budget allows zone by zone basis can be considered.
+
+Bereket:
+I will update the NFP per toda's discussion and add design documentation as well.
+
+
+###Review comments and responses on Github####:
+
+@rraustad, Comment:
+How are constant volume HVAC systems going to respond to these 2 cases? I assume OA will make up the difference between supply and return flow rates. What happens when there is no OA system? In that case the supply and return flows should match
+@Nigusse, Response:
+I am assuming that the two cases should work for constant volume and VAV systems and have to confirmed through testing.
+Regarding "What happens when there is no OA system?", I have not thought enough if it needs a special treatment. One issue is that supply and return flows may not match for zones that has exhaust fan flow, ZoneMixing and Infiltration flows. You have to adjust either the supply, infiltration, or the return flows as needed.
+
+@mjwitte, Comment:
+(1) For systems with no outdoor air, the existing return flow calculations force the return to match the corresponding supply flow for a given zone. This balance must be maintained.
+(2) For constant volume systems, are you suggesting that the system flow could be increased by this? That's going to run up against the terminal unit max flow rate.
+(3) For VAV systems, increasing the supply flow could cause temperature control problems.
+@Nigusse, Response:
+I suspected I may run into control problem when the supply air flow rates is altered. In some cases return air can be zero and we may not have other variable to change unless infiltration air flow rate is adjusted instead of supply air. In fact my original NFP draft was to adjust return air and infiltration to balance the flow while keeping the ZoneMixing object flow as specified and letting the control system deal with supply air flow rate.
+I would rather adjust return and infiltration air flow rates to balance the system and let the control system determine the supply air flow rate. What do you think? @mjwitte
+@mjwitte, Response:
+That seems safer, but that question should be answered by those who are requesting this feature and the specific use cases that it will be applied to.
+@Nigusse, Response:
+OK, I will seek input from those requested the feature.
+
+@mjwitte, Comment:
+What determines "maximum return air flow rate"?
+How will this work when there are multiple return nodes (more than one AHU serving a zone)?
+@Nigusse, Response:
+I am thinking the maximum will be determined based on the the Node's maximum Mass Flow Rate and will use the same logic for all return nodes connected to the same zone. Not sure if this causes any problem.
+@mjwitte, Response:
+I don't think return nodes have a defined maximum mass flow rate, but I may be wrong. The only value that might be used would be the overall airloop design flow rate, which will defeat the purpose of this feature when it wants to set return flow > supply.
+@Nigusse, Response:
+My thought is it allows to set zone return flow > zone supply flow but the AirLoop overall return cannot be set > the overall airloop design flow rate.
+
+@mjwitte, Comment:
+How does the proposed method model or give user control over transfer air?
+@Nigusse, Response:
+Users will specify transfer air using ZoneMixing objects and these flow rates remain the same.
+@mjwitte, Response:
+OK, but with this method, the ZoneMixing flows will occur no matter what the system flows are. It will be up to the user to schedule the ZoneMixing flows to match the HVAC system operation.
+@Nigusse, Response:
+Yes, that is my plan.
+
+@Nigusse, final comment:
+I will update the NFP based on the feedback and seek input from those requested the feature. @mjwitte and @rraustad Thank you for your review and feedback.
+
+
+## Overview ##
+
+This work will implement code changes that allow alternative approach of the zone air mass flow balance calculation method that does not alter the simple flow objects mass flow. The fundamental zone mass balance equation remains the same but what this feature requesting is which zone air mass flow component needs to be adjusted to guarantee zone air mass flow conservation.
+
+The zone mixing object flows will always remain at user specified values such that inter-zone air transfer is modeled based on user's preference only.
+
+## Approach ##
+
+Current zone air mass flow conservation equation is formulated to solve the following equation by adjusting the Zone Mixing flow, and zone infiltration flow sequentially.
+
+ 0.0 = [m_{sup} - m_{exh} - m_{ret} + m_{zmreceiving} - m_{zmsource} + m_{inf}]
+
+where,
+m_{sup} = Zone Supply Air Mass Flow Rate, [kg/s]
+m_{exh} = Zone Exhaust Air Mass Flow Rate, [kg/s]
+m_{ret} = Zone Return Air Mass Flow Rate, [kg/s]
+m_{zmreceiving} = Zone Mixing Receiving Air Mass Flow Rate, [kg/s]
+m_{zmsource} = Zone Mixing Source Air Mass Flow Rate, [kg/s]
+m_{inf} = Zone Infiltration Air Mass Flow Rate, [kg/s]
+
+The existing procedure first attempts to solve the above equation by adjusting the Zone Mixing flow only and if that does not satisfy the above equation, then the user specified zone infiltration air flow rate is adjusted as needed. The zone infiltration air flow can be adjusted using two different methods depending user preference. The zone infiltration air flow adjusting method is a choice input field in the ZoneAirMassFlowConservation object.
+
+The requested feature will be implemented by adjusting the return air mass flow but the return air mass flow rate can be varied between the minimum value of zero and a maximum flow rate limited by the airloop design supply flow rate. Since varying the return air mass flow provides limited flexibility in achieving balanced flow for the range of practical applications, the zone air flow mass balance requires two different solution scenarios: one when the zone is under positive pressure and when the zone is under negative pressure. When the zone is under positive pressure, then the zone return air flow will be adjusted to balance the zone flow; whereas when the zone is under negative pressure zone infiltration air flow will be adjusted or increased.
+
+Solving the zone air flow mass balance equation for zone return air mass flow:
+
+m_{ret} = [m_{sup} - m_{exh} + m_{zmreceiving} - m_{zmsource} + m_{inf}]
+
+Depending on the sign of the value of return air mass flow rate calculated using the above equation two different cases that require different solution scheme are formulated:
+
+Case I: [m_{ret} >= 0.0]
+
+ The zone is under positive pressure hence requires non-zero zone return air mass flow rate to balance the zone air flow. The return air flow rate will be adjusted within the bounds of 0 and a maximum zone return air flow rate that balance the zone air mass flow. The zone maximum return flow rate is determined by the design supply air flow rate of the air loop serving the zones.
+
+ For zone mixing objects serveing zones in a single airloop:
+ [m_{ret} <= min(m_{ret}, m_supply_design_airloop)]
+
+ For zone mixing objects serveing zones in two or more airloops:
+ [m_{ret} <= min(m_{ret}, (m_{supply_design_airloop} - m_{airloopZoneMixingNetOutFlow}))]
+
+ where,
+ [m_{airloopZoneMixingNetOutFlow}] = net outflow of zone mixing air flow from one airloop to another airloop, [kg/s].
+
+Case II: [m_{ret} < 0.0]
+ The zone is under negative pressure hence requires additional supply air or infiltration air is required to balance the zone air flow. There are two possibilities that can be considered: (A) increasing zone infiltration air flow or (B) increasing the zone supply air flow.
+ The preferred implementation approach is alternative IIA but both alternatives are presented for discussion.
+
+ Alternative IIA:
+ In alternative IIA the infiltration air flow is increased proportionally and the return air mass flow rate will be reset to zero to balance zone air flow.
+ [m_{inf} += m_{ret};]
+ [m_{ret} = 0.0;]
+
+ The zone air infiltration rate will be determined based user selection from three infiltration treatment method available.
+
+The ZoneMixing objects air flows are always maintained at user specified values to allow user defined inter-zone air transfer.
+
+Furthermore, first the zone return air flow is estimated without the zone air infiltration term and then zone air infiltration terms is added to balance the zone air flow if needed as a second step. This approach gives the
+option of balancing the zone air flow with return air flow adjustment only, or with little change to the user specified zone infiltration air flows.
+
+Proposed Approach Limitation:
+For a case when a zone has exhaust fan flow, the zone has no user specified infiltration, and the HVAC system is off, then the zone air flow cannot be balanced unless the zone exhaust fan flow is less than the net zone mixing flow.
+
+## Testing/Validation/Data Sources ##
+
+(1) Any new subroutine(s) will have a unit test that validate that the subroutine is functioning properly.
+(2) Verifies the zone air flow mass balance without altering user specified ZoneMixing object flows.
+
+## Input Output Reference Documentation ##
+
+This new feature will be implemented by adding a new choice key "AdjustZoneReturnFlow” to the existing input field "Adjust Zone Mixing For Zone Air Mass Flow Balance" in the ZoneAirMassFlowConservation object.
+
+The existing input field "Adjust Zone Mixing For Zone Air Mass Flow Balance" better be renamed to "Zone Air Mass Flow Balance Method" and the two existing choice keys needs to be renamed as well for clarity. For example the "Yes" choice key will be replaced with "AdjustZoneMixingFlow" and the "No" choice key with "None". See below modified ZoneAirMassFlowConservation object.
+
+## Input Description ##
+
+See modified "ZoneAirMassFlowConservation" object:
+
+ZoneAirMassFlowConservation,
+ \memo Enforces the zone air mass flow balance by either adjusting zone mixing object flow only,
+ \memo adjusting zone total return flow only, zone mixing and the zone total return flows,
+ \memo or adjusting the zone total return and zone mixing object flows. Zone infiltration flow air
+ \memo flow is increased or decreased depending user selection in the infiltration treatment method.
+ \memo If either of zone mixing or zone return flow adjusting methods or infiltration is active,
+ \memo then the zone air mass flow balance calculation will attempt to enforce conservation of
+ \memo mass for each zone. If flow balancing method is "None" and infiltration is "None", then the
+ \memo zone air mass flow calculation defaults to assume self-balanced simple flow mixing and
+ \memo infiltration objects.
+ \unique-object
+ \min-fields 3
+ A1, \field Adjust Zone Mixing and Return For Air Mass Flow Balance
+ \note If "AdjustMixingOnly", zone mixing object flow rates are adjusted to balance the zone air mass
+ \note flow and zone infiltration air flow may be increased or decreased if required in order to balance
+ \note the zone air mass flow. If "AdjustReturnOnly", zone total return flow rate is adjusted to balance
+ \note the zone air mass flow and zone infiltration air flow may be increased or decreased if required
+ \note in order to balance the zone air mass flow. If "AdjustMixingThenReturn", first the zone mixing
+ \note objects flow rates are adjusted to balance the zone air flow, second zone total return flow rate
+ \note is adjusted and zone infiltration air flow may be increased or decreased if required in order to
+ \note balance the zone air mass flow. If "AdjustReturnThenMixing", first zone total return flow rate is
+ \note adjusted to balance the zone air flow, second the zone mixing object flow rates are adjusted and
+ \note infiltration air flow may be increased or decreased if required in order to balance the zone
+ \note air mass flow.
+ \type choice
+ \key AdjustMixingOnly
+ \key AdjustReturnOnly
+ \key AdjustMixingThenReturn
+ \key AdjustReturnThenMixing
+ \key None
+ \default None
+ A2, \field Infiltration Balancing Method
+ \note This input field allows user to choose how zone infiltration flow is treated during
+ \note the zone air mass flow balance calculation.
+ \type choice
+ \key AddInfiltrationFlow
+ \key AdjustInfiltrationFlow
+ \key None
+ \default AddInfiltrationFlow
+ \note AddInfiltrationFlow may add infiltration to the base flow specified in the
+ \note infiltration object to balance the zone air mass flow. The additional infiltration
+ \note air mass flow is not self-balanced. The base flow is assumed to be self-balanced.
+ \note AdjustInfiltrationFlow may adjust the base flow calculated using
+ \note the base flow specified in the infiltration object to balance the zone air mass flow. If it
+ \note If no adjustment is required, then the base infiltration is assumed to be self-balanced.
+ \note None will make no changes to the base infiltration flow.
+ A3; \field Infiltration Balancing Zones
+ \note This input field allows user to choose which zones are included in infiltration balancing.
+ \note MixingSourceZonesOnly allows infiltration balancing only in zones which as source zones for mixing
+ \note which also have an infiltration object defined.
+ \note AllZones allows infiltration balancing in any zone which has an infiltration object defined.
+ \type choice
+ \key MixingSourceZonesOnly
+ \key AllZones
+ \default MixingSourceZonesOnly
+
+## Outputs Description ##
+
+No new output variables will be implemented.
+
+## Engineering Reference ##
+
+Will be updated as needed.
+
+## Example File and Transition Changes ##
+
+One new example file will be added to the test suite to demonstrate this feature is functioning properly.
+
+IDD change is required to add new choice keys to an existing input field, and rename the input field and the key choices. Transition is required.
+
+## References ##
+
+NA
+
+
+## Design Document ##
+
+This new feature revises modules: HeatBalanceManager, ZoneEquipmentManage, DataHeatBalance, and HeatBalanceAirManager.
+
+
+### HeatBalanceManager ###
+
+The code change includes updating the GetProjectControlData() to allow new choice keys and renaming an existing input field and its choice keys.
+
+
+#### Current Get Control Data: ####
+{
+ {
+ auto const SELECT_CASE_var(AlphaName(1));
+ if (SELECT_CASE_var == "YES") {
+ ZoneAirMassFlow.BalanceMixing = true;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "Yes";
+ } else if (SELECT_CASE_var == "NO") {
+ ZoneAirMassFlow.BalanceMixing = false;
+ AlphaName(1) = "No";
+ } else {
+ ZoneAirMassFlow.BalanceMixing = false;
+ AlphaName(1) = "No";
+ ShowWarningError(state, CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(1) + ". The default choice is assigned = No");
+ }
+ }
+
+}
+
+#### Proposed Get Control Data: ####
+
+ - Replace choice key "Yes" with "AdjutsMixingOnly"
+ - Replace choice key "No" with "None"
+ - Add new choice key "AdjustReturnOnly"
+ - Add new choice key "AdjustMixingThenReturn"
+ - Add new choice key "AdjustReturnThenMixing"
+
+ Sets the zone air mass flow conservation enforcing methods as follows:
+
+{
+ auto const SELECT_CASE_var(AlphaName(1));
+ if (SELECT_CASE_var == "ADJUSTMIXINGONLY") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustMixingOnly;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "AdjustMixingOnly";
+ } else if (SELECT_CASE_var == "ADJUSTRETURNONLY") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustReturnOnly;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "AdjustReturnOnly";
+ } else if (SELECT_CASE_var == "ADJUSTMIXINGTHENRETURN") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustMixingThenReturn;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "AdjustMixingThenReturn";
+ } else if (SELECT_CASE_var == "ADJUSTRETURNTHENMIXING") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustReturnThenMixing;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "AdjustReturnThenMixing";
+ } else if (SELECT_CASE_var == "NONE") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = NoAdjustReturnAndMixing;
+ AlphaName(1) = "None";
+ } else {
+ ZoneAirMassFlow.ZoneFlowAdjustment = NoAdjustReturnAndMixing;
+ AlphaName(1) = "None";
+ ShowWarningError(state, CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(1) + ". The default choice is assigned = None");
+ }
+}
+
+
+####DataHeatBalance###
+
+Add new member variable *ZoneFlowAdjustment* to ZoneAirMassFlowConservation struct.
+
+Added parameters for zone air flow mass balancing methods selection variables to DataHeatBalance module.
+ AdjustMixingOnly;
+ AdjustReturnOnly;
+ AdjustMixingThenReturn;
+ AdjustReturnThenMixing;
+ NoAdjustReturnAndMixing;
+
+### HeatBalanceAirManager ###
+
+The code revision includes updating the SetZoneMassConservationFlag() function to allow to reset flag variables for AdjustZoneReturnFlow method.
+
+The code revision includes updating allow zonemixing and infiltrtion flow report variables for the new method in GetSimpleAirModelInputs() function.
+
+
+### ZoneEquipmentManage ###
+
+Most of code revisions are done in this module. The module code revision includes resetting either ZoneMassBalanceFlag() or AdjustZoneMassFlowFlag variable depending on the method for use with CalcAirFlowSimple() function.
+
+Do not allow the ZoneMixing object flow adjustment for the new method as shown in the proposed code snippet:
+
+##### Current Code: #####
+ // Set zone mixing incoming mass flow rate
+ if ((Iteration == 0) || !ZoneAirMassFlow.BalanceMixing) {
+ ZoneMixingAirMassFlowRate = MixingMassFlowZone(ZoneNum);
+ } else {
+ ZoneMixingAirMassFlowRate =
+ max(0.0,
+ ZoneReturnAirMassFlowRate + state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate -
+ state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate + MassConservation(ZoneNum).MixingSourceMassFlowRate);
+ }
+
+##### Proposed Code: #####
+ // Set zone mixing incoming mass flow rate
+ if ((Iteration == 0) || ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnOnly ||
+ ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnThenMixing) {
+ ZoneMixingAirMassFlowRate = MixingMassFlowZone(ZoneNum);
+ } else {
+ ZoneMixingAirMassFlowRate = max(0.0, ZoneReturnAirMassFlowRate + TotExhaustAirMassFlowRate -
+ TotInletAirMassFlowRate + MassConservation(ZoneNum).MixingSourceMassFlowRate);
+ }
+
+
+
+##### Additional Proposed Code: #####
+ if (ZoneAirMassFlow.EnforceZoneMassBalance) {
+
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustMixingOnly ||
+ ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustMixingThenReturn) {
+
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustMixingThenReturn) {
+
+ }
+ // Set zone infiltration air flow rate
+ CalcZoneInfiltrationFlows(state, ZoneNum, ZoneReturnAirMassFlowRate);
+
+ } else if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnOnly ||
+ ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnThenMixing) {
+
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnThenMixing) {
+
+ }
+ // Set zone infiltration air flow rate
+ CalcZoneInfiltrationFlows(state, ZoneNum, ZoneReturnAirMassFlowRate);
+ } else {
+ // if infiltration treatment method is not None
+ // Set zone infiltration air flow rate
+ CalcZoneInfiltrationFlows(state, ZoneNum, ZoneReturnAirMassFlowRate);
+ }
+ }
+
+##### Refactoring Current Code: #####
+
+// this require refactoring the existing infiltration flow update code section in new function CalcZoneInfiltrationFlows() as follows:
+
+ void CalcZoneInfiltrationFlows(EnergyPlusData &state,
+ int const ZoneNum, // current zone index
+ Real64 &ZoneReturnAirMassFlowRate // zone total zone return air mass flow rate
+ )
+ {
+
+ }
+
+
+##### Modify CalcZoneReturnFlows() Code: #####
+
+This function will be revised:
+ - reset the return air flow rate calculated using the air flow mass balance
+
+
+##### Refactoring Current Code: #####
+
+- add a check that the return air flow rate does not exceed the air loop supply design flow rate.
+- adds a new function that returns the design supply of the airloop that contains the zone
+
+ void ZoneReturnFlowsMaximum(EnergyPlusData &state, int const ZoneNum,
+ Real64 &MaximumZoneReturnMassFlow // maximum zone total return air mass flow rate
+ )
+ {
+ MaximumZoneReturnMassFlow = 0.0;
+ // sets the zone return node maximum flow rate to the airloop design supply flow rate
+ for (int returnNum = 1; returnNum <= state.dataZoneEquip->ZoneEquipConfig(ZoneNum).NumReturnNodes; ++returnNum) {
+ int airLoop = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ReturnNodeAirLoopNum(returnNum);
+ if (airLoop > 0) {
+ auto &thisAirLoopFlow(state.dataAirLoop->AirLoopFlow(airLoop));
+ MaximumZoneReturnMassFlow = thisAirLoopFlow.DesSupply;
+ }
+ }
+ }
+
+
\ No newline at end of file
diff --git a/doc/engineering-reference/src/integrated-solution-manager/zone-air-mass-flow-conservation.tex b/doc/engineering-reference/src/integrated-solution-manager/zone-air-mass-flow-conservation.tex
index 0336388be5b..bb2a4b9ccf2 100644
--- a/doc/engineering-reference/src/integrated-solution-manager/zone-air-mass-flow-conservation.tex
+++ b/doc/engineering-reference/src/integrated-solution-manager/zone-air-mass-flow-conservation.tex
@@ -38,6 +38,8 @@ \subsubsection{Base Zone Total Return Flow}\label{base-zone-total-return-flow}
{\dot m_{R}} = MAX\left( {0.0,\,{{\dot m}_S} - [{{\dot m}_{EX,tot}} - {\dot m_{EXF,bal}}] + [{{\dot m}_{XR}} - {{\dot m}_{XS}}]} \right)
\end{equation}
+Note that the exhaust fan balanced flow component is not required to enforce the zone air flow balance when ZoneAirMassFlowConservation is active.
+
\subsubsection{Zone Return Air Node 1}\label{zone-return-air-node1}
The first return air node is treated differently to maintain backward compatibility. If one or more Zone Return Air Node 1 Flow Rate Basis Nodes are specified in the ZoneHVAC:EquipmentConnections object, then the mass flow rate for the first return air node is:
@@ -52,6 +54,13 @@ \subsubsection{Zone Return Air Node 1}\label{zone-return-air-node1}
{\dot m_{R,1}} = ReturnFlowSchedule*{\dot m_{R}}
\end{equation}
+The zone air mass flow conservation calculation limits the zone the return node air flow rate with air loop design supply to protect from large number the solution may throw as follows:
+
+\begin{equation}
+{\dot m_{R,1}} = MIN\left( {{\dot m_{R,1}},\,{{\dot m}_{DesSupply,i}}} \right)
+\end{equation}
+
+
\subsubsection{Allocation to Multiple Return Nodes}\label{allocation-to-multiple-return-nodes}
If there are multiple return air nodes in the zone, then each return air node is assumed to be paired with one supply air inlet node. The initial flow rate at a given return air node is based on the supply air inlet node for the same airloop and the AirloopHVAC Design Return Air Flow Fraction of Supply Air Flow:
@@ -66,6 +75,12 @@ \subsubsection{Allocation to Multiple Return Nodes}\label{allocation-to-multiple
{\dot m_{R,i}} = {\dot m_{R,i}}
\end{equation}
+The zone air mass flow conservation calculation limits the zone the return node air flow rate with air loop design supply to protect from large number the solution may throw as follows:
+
+\begin{equation}
+{\dot m_{R,1}} = MIN\left( {{\dot m_{R,1}},\,{{\dot m}_{DesSupply, AirLoop}}} \right)
+\end{equation}
+
\subsubsection{Overall Return Air Balance}\label{overall-return-air-balance}
Once the initial allocation to multiple return air nodes is complete, the total return node flow is compared with the expected total zone return air mass flow rate. If the sum of the zone return node flows is greater than expected, then the surplus return flow is:
@@ -138,6 +153,8 @@ \subsubsection{Allocation of Excess Exhaust Flow}\label{allocation-of-excess-exh
\(\dot m_{AdjReturn,i}\) = total adjusted return flow for air loop i
+\(\dot m_{DesSupply,i}\) = air loop design supply air flow for air loop i
+
\subsection{Zone Mixing Flow Rate Calculations}\label{zone-mixing-flow-rate-calculations}
Figure~\ref{fig:illustration-of-zone-air-mass-flow-balance} illustrates the zone mass flow components for an air loop system providing conditioned air to the two zones connected with a zone mixing object. Since Zone 1 is a source zone only, infiltration object is defined for zone 1 only. The zone mixing object air flow rate depends on the user specified values and the zone air mass flow balance requirements. When required the zone mixing object flow rate is adjusted from the user specified value for balancing purpose.
@@ -154,7 +171,18 @@ \subsection{Zone Mixing Flow Rate Calculations}\label{zone-mixing-flow-rate-calc
{\dot m_{XS}} = \sum\nolimits_j {{{\dot m}_{XS,j}}}
\end{equation}
-Determine the zone return air mass flow rate as shown above, then adjust the zone mixing mass flow rates based on the current zone return air mass flow rate:
+Similarly, the receiving zone mixing mass flow rate is calculated by tracking the mass flow rates of ZoneMixing objects connected to a receiving zone and is given by:
+
+\begin{equation}
+{\dot m_{XR}} = \sum\nolimits_j {{{\dot m}_{XR,j}}}
+\end{equation}
+
+Zone air mass flow balance can be enforced using four options: \textit{AdjustMixingOnly}, \textit{AdjustReturnOnly}, \textit{AdjustMixingThenReturn}, or \textit{AdjustReturnThenMixing}. These options involve either adjusting zone mixing objects flows, adjusting the zone total return air flows, or a
+combination of both. The zone air mass flow balance equation formulation is described next for each of the four options.
+
+\textbf{AdjustMixingOnly:} adjusts the zone mixing object flows only to enforce zone air mass flow balance and the adjusted zone mixing mass flow rates are used to determine the zone total return air mass flow rate. Infiltration air flow can also adjusted if required depending on user preference as specified in Section \textit{Infiltration Flow rates Adjustments}.
+
+Determine the zone total return air mass flow rate as shown above, then adjust the zone mixing mass flow rates based on the zone total return air mass flow rate:
\begin{equation}
{\dot m_{XR,\,new}} = {\dot m_R} + {\dot m_{EX}} + {\dot m_{XS}} - {\dot m_S}
@@ -166,6 +194,32 @@ \subsection{Zone Mixing Flow Rate Calculations}\label{zone-mixing-flow-rate-calc
{\dot m_{XR,\,new,j}} = \left( {{{\dot m}_{XR,jDesign}}/{{\dot m}_{XR,Design}}} \right) \cdot {\dot m_{XR,\,new}}
\end{equation}
+\textbf{AdjustReturnOnly:} adjusts the zone total return air mass flow rate only to enforce zone air mass flow balance while the zone mixing object mass flow rate are kept at user specified values. Infiltration air flow can also adjusted if required depending on user preference as specified in Section \textit{Infiltration Flow rates Adjustments}.
+
+First, determine the user specified mixing object received and source air flow rates of the current zone, then determine the zone total return air flow rate as follows:
+
+\begin{equation}
+{\dot m_{XS}} = \sum\nolimits_j {{{\dot m}_{XS,j}}}
+\end{equation}
+
+\begin{equation}
+{\dot m_{XR}} = \sum\nolimits_j {{{\dot m}_{XR,j}}}
+\end{equation}
+
+If ZoneAirMassFlowConservation is active, then determine the total zone return air flow rate:
+\begin{equation}
+{\dot m_{R}} = MAX\left( {0.0,\,{{\dot m}_S} - {{\dot m}_{EX,tot}} + [{{\dot m}_{XR}} - {{\dot m}_{XS}}]} \right)
+\end{equation}
+
+Also checks that the zone total return air mass flow rate does not exceed the airloop design supply flow rate as follows:
+\begin{equation}
+{\dot m_{R}} = MIN\left( {{\dot m_{R}},\,{{\dot m}_{DesSupply,i}}} \right)
+\end{equation}
+
+\textbf{AdjustMixingThenReturn:} first adjusts the zone mixing air mass flow rates, then adjusts the zone total return air mass flow rate to enforce zone air mass flow balance. Infiltration air flow can also adjusted if required depending on user preference as specified in section \textit{Infiltration Flow rates Adjustments}. For adjusting the mixing mass flow rates the set of equations for \textit{AdjustMixingOnly} method described above are used and for adjusting the zone total return air mass flow rate the equation for \textit{AdjustReturnOnly} method is used.
+
+\textbf{AdjustReturnThenMixing:} first adjusts the zone total return air mass flow rate, then adjusts the zone mixing mass flow rates to enforce zone air mass flow balance. Infiltration air flow can also adjusted if required depending on user preference as specified in section \textit{Infiltration Flow rates Adjustments}. For adjusting the zone total return air mass flow rates the equations for \textit{AdjustReturnOnly} method described above is used and for adjusting the zone mixing mass flow rates the set of equations for \textit{AdjustMixingOnly} method are used.
+
\subsection{Infiltration Flow Rate Adjustments}\label{infiltration-flow-rate-adjustments}
There are three options for the treatement of infiltration in the zone air mass balance: None, AddInfiltrationFlow, and AdjustInfiltrationFlow. There are also two options to specify which zones are included in the infiltration adjustments: AllZones or MixingSourceZonesOnly.
@@ -175,7 +229,7 @@ \subsection{Infiltration Flow Rate Adjustments}\label{infiltration-flow-rate-adj
If a zone is included in the infiltration adjustment, the infiltration air mass flow rate required to balance the zone is determined as follows:
\begin{equation}
-{\dot m_{Inf-required}} = MAX\left( {0.0,\,{{\dot m}_{XS}} + {{\dot m}_{EX}} + {{\dot m}_{R}} - {{\dot m}_S}} \right)
+{\dot m_{Inf-required}} = MAX\left( {0.0,\,{{\dot m}_{XS}} + {{\dot m}_{EX}} + {{\dot m}_{R}} - {{\dot m}_S} - {\dot m_{XR,\,new}}} \right)
\end{equation}
This infiltration air mass flow rate calculated is either added to the base infiltration air flow, which is calculated from user inputs, or overrides the base infiltration air flow depending on user choice. For AddInfiltrationFlow, the zoneinfiltration flow rate is:
diff --git a/doc/input-output-reference/src/overview/group-air-distribution.tex b/doc/input-output-reference/src/overview/group-air-distribution.tex
index 8665c2c0388..26b136c29cd 100644
--- a/doc/input-output-reference/src/overview/group-air-distribution.tex
+++ b/doc/input-output-reference/src/overview/group-air-distribution.tex
@@ -160,6 +160,56 @@ \subsubsection{Outputs}\label{outputs-1-001}
Reports the air changes per hour in the zone due to the outside fresh air supplied by mechanical ventilation system.
+\paragraph{Zone Target Voz Ventilation Flow Rate {[}m3/s{]}}\label{zone-target-voz-ventilation-flow-rate}
+The target ventilation flow rate \(V_{oz-dyn}\) at standard density at the current timestep as defined by the zone Design Specification Outdoor Air Object (\hyperref[designspecificationoutdoorair]{DesignSpecification:OutdoorAir}).
+
+\paragraph{Zone Ventilation Below Target Voz Time {[}hr{]}}\label{zone-ventilation-below-target-voz-time}
+The time that the zone total ventilation rate (mechanical ventilation plus natural ventilation) is more than 1\% below the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Zone Ventilation At Target Voz Time {[}hr{]}}\label{zone-ventilation-at-target-voz-time}
+The time that the zone total ventilation rate (mechanical ventilation plus natural ventilation) is within 1\% of the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Zone Ventilation Above Target Voz Time {[}hr{]}}\label{zone-ventilation-above-target-voz-time}
+The time that the zone total ventilation rate (mechanical ventilation plus natural ventilation) is more than 1\% above the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Zone Ventilation When Unoccupied Time {[}hr{]}}\label{zone-ventilation-when-unoccupied-time}
+The time that the zone total ventilation rate (mechanical ventilation plus natural ventilation) is greater than zero when the zone is unoccupied.
+
+\paragraph{Facility Any Zone Ventilation Below Target Voz Time {[}hr{]}}\label{facility-any-zone-ventilation-below-target-voz-time}
+The time that any zone's total ventilation rate (mechanical ventilation plus natural ventilation) is more than 1\% below the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Facility All Zones Ventilation At Target Voz Time {[}hr{]}}\label{facility-all-zones-ventilation-at-target-voz-time}
+The time that every zone's total ventilation rate (mechanical ventilation plus natural ventilation) is within 1\% of the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Facility Any Zone Ventilation Above Target Voz Time {[}hr{]}}\label{facility-any-zone-ventilation-above-target-voz-time}
+The time that any zone's total ventilation rate (mechanical ventilation plus natural ventilation) is more than 1\% above the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Facility Any Zone Ventilation When Unoccupied Time {[}hr{]}}\label{facility-any-zone-ventilation-when-unoccupied-time}
+The time that any zone's total ventilation rate (mechanical ventilation plus natural ventilation) is greater than zero when the zone is unoccupied.
+
+\paragraph{Air System Mechanical Ventilation Flow Rate {[}m3/s{]}}\label{air-system-mechanical-ventilation-flow-rate}
+The current airloop mechanical ventilation flow rate at standard density.
+
+\paragraph{Air System Natural Ventilation Flow Rate {[}m3/s{]}}\label{air-system-natural-ventilation-flow-rate}
+The sum of the natural ventilation flow rate at standard density at the current timestep for each zone on the airloop. If any zone terminal unit has a Design Specification Air Terminal Sizing Object (\hyperref[designspecificationairterminalsizing]{DesignSpecification:AirTerminal:Sizing}) then the natural ventilation rate for that zone is scaled by the Fraction of Minimum Outdoor Air Flow value.
+
+\paragraph{Air System Target Voz Ventilation Flow Rate {[}m3/s{]}}\label{air-system-target-voz-ventilation-flow-rate}
+The sum of the target ventilation flow rates \(V_{oz-dyn}\) at standard density at the current timestep for each zone on the airloop. If any zone terminal unit has a Design Specification Air Terminal Sizing Object (\hyperref[designspecificationairterminalsizing]{DesignSpecification:AirTerminal:Sizing}) then the target ventilation rate for that zone is scaled by the Fraction of Minimum Outdoor Air Flow value.
+
+\paragraph{Air System Ventilation Below Target Voz Time {[}hr{]}}\label{air-system-ventilation-below-target-voz-time}
+The time that the airloop total ventilation rate (mechanical ventilation plus natural ventilation) is more than 1\% below the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Air System Ventilation At Target Voz Time {[}hr{]}}\label{air-system-ventilation-at-target-voz-time}
+The time that the airloop total ventilation rate (mechanical ventilation plus natural ventilation) is within 1\% of the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Air System Ventilation Above Target Voz Time {[}hr{]}}\label{air-system-ventilation-above-target-voz-time}
+The time that the airloop total ventilation rate (mechanical ventilation plus natural ventilation) is more than 1\% above the \emph{Zone Target Voz Ventilation Flow Rate}.
+
+\paragraph{Air System Ventilation When Unoccupied Time {[}hr{]}}\label{air-system-ventilation-when-unoccupied-time}
+The time that the airloop total ventilation rate (mechanical ventilation plus natural ventilation) is greater than zero when all of the zones on the airloop are unoccupied.
+
+
+
The example syntax below shows the basic ventilation flow variables reported on an hourly basis.
\begin{itemize}
@@ -177,6 +227,38 @@ \subsubsection{Outputs}\label{outputs-1-001}
Output:Variable,*,Zone Mechanical Ventilation Current Density Volume,Hourly;
\item
Output:Variable,*, Zone Mechanical Ventilation Air Changes per Hour,Hourly;
+\item
+ Output:Variable,*, Zone Target Voz Ventilation Flow Rate,Hourly;
+\item
+ Output:Variable,*, Zone Ventilation Below Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Zone Ventilation At Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Zone Ventilation Above Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Zone Ventilation When Unoccupied Time,Hourly;
+\item
+ Output:Variable,*, Facility Any Zone Ventilation Below Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Facility All Zones Ventilation At Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Facility Any Zone Ventilation Above Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Facility Any Zone Ventilation When Unoccupied Time,Hourly;
+\item
+ Output:Variable,*, Air System Mechanical Ventilation Flow Rate,Hourly;
+\item
+ Output:Variable,*, Air System Natural Ventilation Flow Rate,Hourly;
+\item
+ Output:Variable,*, Air System Target Voz Ventilation Flow Rate,Hourly;
+\item
+ Output:Variable,*, Air System Ventilation Below Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Air System Ventilation At Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Air System Ventilation Above Target Voz Time,Hourly;
+\item
+ Output:Variable,*, Air System Ventilation When Unoccupied Time,Hourly;
\end{itemize}
\paragraph{Ventilation Load Reports}\label{ventilation-load-reports}
diff --git a/doc/input-output-reference/src/overview/group-airflow-network.tex b/doc/input-output-reference/src/overview/group-airflow-network.tex
index fe1275c0061..a1bd7d8d81f 100644
--- a/doc/input-output-reference/src/overview/group-airflow-network.tex
+++ b/doc/input-output-reference/src/overview/group-airflow-network.tex
@@ -326,6 +326,10 @@ \subsubsection{Inputs}\label{inputs-004}
This is an optional field. Input is Yes or No. The default is No. Yes is that external node temperature is dependent on node height. No means that external node temperature is calculated with zero height.
+\paragraph{Field: Allow Unsupported Zone Equipment}\label{allow-unsupported-zone-equipment}
+
+This is an optional field. Input is Yes or No. The default is No. Set this input to Yes to have zone equipment that are currently unsupported in the AirflowNetwork model allowed in the simulation. Setting this field to Yes, allows the following equipment to be modeled along an AirflowNetwork model: ZoneHVAC:Dehumidifier, ZoneHVAC:EnergyRecoveryVentilator, WaterHeater:HeatPump:*. The AirflowNetwork model will exclude mass balance in these equipment objects and assume the mass flows are self-balanced in the equipment objects.
+
An IDF example is shown below:
\begin{lstlisting}
diff --git a/doc/input-output-reference/src/overview/group-airflow.tex b/doc/input-output-reference/src/overview/group-airflow.tex
index d4c3d6aa025..a7751c8f914 100644
--- a/doc/input-output-reference/src/overview/group-airflow.tex
+++ b/doc/input-output-reference/src/overview/group-airflow.tex
@@ -2287,19 +2287,23 @@ \subsubsection{Zone Thermal Chimney Outlet Temperature {[}C{]}}\label{zone-therm
\subsection{ZoneAirMassFlowConservation}\label{zoneairmassflowconservation}
-This global object allows users to trigger the zone air mass flow conservation calculation when desired. This object has three input fields; the first choice input field allows the user whether to adjust mixing flows to enforce the zone air mass flow conservation; and the other fields allows the user to specify how infiltration object mass flow rate is calculated for zone air mass flow balance calculation.~ If adjustments for either mixing or infiltration is specified then the zone air mass balance attempts to enforce conservation. If both mixing and infiltration adjustments are off, then the zone air mass flow calculation uses the default method which does not include zone mixing objects and assumes self-balanced simple infiltration. The default method may not necessarily enforce zone air mass flow conservation unless the user has specified a balanced flow to begin with. The zone air mass flow conservation primarily accounts for the zonemixing objects air flow in the zone air flow mass balance calculation. In addition to the zonemixing object flow, the procedure accounts for zone supply, exhaust, and return flows and adjusts infiltration air flows (up or down) when required in order to balance the zone air mass flow.~ Mixing and infiltration adjustments will only be made in zones which have zonemixing or infiltration objects defined in the input. For example, if a zone does not have any infiltration objects, then no infiltration adjustment will be made for that zone.
+This global object allows users to trigger the zone air mass flow conservation calculation when desired. This object has three input fields; the first choice input field allows the user whether to adjust mixing flows, the return air flow, or a combination of mixing and return air flows to enforce the zone air mass flow conservation; and the other fields allows the user to specify how infiltration object mass flow rate is calculated for zone air mass flow balance calculation.~Currently supported options are: \textbf{AdjustMixingOnly}, \textbf{AdjustReturnOnly}, \textbf{AdjustMixingThenReturn}, \textbf{AdjustReturnThenMixing}, or \textbf{None}. If adjustments for either of mixing, return, or a combination of mixing and return or infiltration is specified then the zone air mass balance attempts to enforce conservation. If adjutement choice is None and infiltration adjustments are off, then the zone air mass flow calculation uses the default method which does not include zone mixing objects and assumes self-balanced simple infiltration. The default method may not necessarily enforce zone air mass flow conservation unless the user has specified a balanced flow to begin with. The zone air mass flow conservation primarily accounts for the zonemixing objects and return air flows in the zone air flow mass balance calculation. In addition to the zonemixing object and zone return air flows, the procedure accounts for zone supply, exhaust, and adjusts infiltration air flows (up or down) when required in order to balance the zone air mass flow.~ Mixing and infiltration adjustments will only be made in zones which have zonemixing or infiltration objects defined in the input. For example, if a zone does not have any infiltration objects, then no infiltration adjustment will be made for that zone.
-First, the \hyperref[zonemixing]{ZoneMixing} object mass flow rate is adjusted or modified in order to balance zone air mass flow while assuming any zone infiltration objects are self-balanced. This step will always results in balanced zone air mass for receiving zones of \hyperref[zonemixing]{ZoneMixing} object but it may not necessarily result in a balanced air mass flow for source zones.~
+The zone mixing object and return flows adjusting options to enforce zone air mass flow conseravtion are defined as follows. \textbf{AdjustMixingOnly} adjusts the zone mixing object flow only to enforce zone air mass flow balance. \textbf{AdjustReturnOnly} adjusts the zone return air flow only to enforce zone air mass flow balance while the zone mixing object flow are kept at user specified values. \textbf{AdjustMixingThenReturn} adjusts the zone mixing object flow first, and followed with adjusting the return air flows to enforce zone air mass flow balance. \textbf{AdjustReturnThenMixing} adjusts the zone return air flow first, and followed with adjusting the zone mixing object flow to enforce zone air mass flow balance. \textbf{None} does not adjust either the zone mixing or the zone return air flow, and the zone air mass flow balance uses the default method.
+
+First, depending user choice either the \hyperref[zonemixing]{ZoneMixing} object mass flow rate, the zone total return air flow rate, or a combination zone mixing and zone total return flow rates are adjusted or modified in order to balance zone air mass flow while assuming any zone infiltration objects are self-balanced.
-Second, infiltration flow rates are adjusted accoring to the options set. Infiltration flow will be increased or decreased to balance the net flow from supply, exhaust, mixing, and return air flows. If a negative infiltration rate (exfiltration) is required to balance a zone's airflow, then the infiltration rate will be set to zero. This can happen, for example, if the total supply flow exceeds the total exahust plus return flow.
+This step will always results in balanced zone air mass for receiving zones of \hyperref[zonemixing]{ZoneMixing} object but it may not necessarily result in a balanced air mass flow for source zones.~
+
+Second, infiltration flow rates are adjusted according to the options set. Infiltration flow will be increased or decreased to balance the net flow from supply, exhaust, mixing, and return air flows. If a negative infiltration rate (exfiltration) is required to balance a zone's airflow, then the infiltration rate will be set to zero. This can happen, for example, if the total supply flow exceeds the total exahust plus return flow.
This object is optional. If it is not present in the input file, the default zone air mass flow calculastion are used which do not account for zonemixing and infiltration flows.
\subsubsection{Inputs}\label{inputs-9-002}
-\paragraph{Field: Adjust Zone Mixing For Zone Air Mass Flow Balance}\label{field-adjust-zone-mixing-for-zone-air-mass-flow-balance}
+\paragraph{Field: Adjust Zone Mixing and Return For Air Mass Flow Balance}\label{field-adjust-zone-mixing-and-return-for-air-mass-flow-balance}
-This field has two choices: \emph{Yes} or \emph{No}.~ When set to \emph{Yes}, the zone air mass flow balance attempts to enforce conservation by adjusting zone mixing flow rates. When set to \emph{No}, mixing flow rates are not adjusted; the mixing flows specified in \hyperref[zonemixing]{ZoneMixing} obects will be used.~ The default is \emph{No}.
+This field has five choices: \emph{AdjustMixingOnly}, \emph{AdjustReturnOnly}, \emph{AdjustMixingThenReturn}, \emph{AdjustReturnThenMixing} or \emph{None}.~When set to \emph{AdjustMixingOnly}, the zone air mass flow balance attempts to enforce zone mass flow conservation by adjusting zone mixing flow rates and zone infiltration air flow may be increased or decreased if required in order to balance the zone air mass flow. When set to \emph{AdjustReturnOnly}, the zone air mass flow balance attempts to enforce zone mass flow conservation by adjusting zone total return air flow rates and zone infiltration air flow may be increased or decreased if required in order to balance the zone air mass flow. When set to \emph{AdjustMixingThenReturn}, first the zone air mass flow balance attempts to enforce zone mass flow conservation by adjusting zone mixing object flow rates, then the zone total return flow rates are adjusted and zone infiltration air flow may be increased or decreased if required in order to balance the zone air mass flow. When set to \emph{AdjustReturnThenMixing}, first the zone air mass flow balance attempts to enforce zone mass flow conservation by adjusting zone total return air flow rates, then the zone mixing flow rates are adjusted and zone infiltration air flow may be increased or decreased if required in order to balance the zone air mass flow. When set to \emph{None}, mixing flow rates are not adjusted; the mixing flows specified in \hyperref[zonemixing]{ZoneMixing} obects will be used.~ The default is \emph{None}.
\paragraph{Field: Infiltration Balancing Method}\label{field-infiltration-balancing-method}
diff --git a/doc/input-output-reference/src/overview/group-electric-load-center-generator.tex b/doc/input-output-reference/src/overview/group-electric-load-center-generator.tex
index fcee3c9c5a3..5ea35ce232f 100644
--- a/doc/input-output-reference/src/overview/group-electric-load-center-generator.tex
+++ b/doc/input-output-reference/src/overview/group-electric-load-center-generator.tex
@@ -1406,6 +1406,209 @@ \subsubsection{Outputs}\label{electricloadcenter-storagebattery-outputs}
This output reports the fractional battery life used up at a point of time. For example, a value of 0.4 at the end of one year simulation means that the 40\% of the battery life is used up, so the battery needs to be replaced every two and a half years.
+\subsection{ElectricLoadCenter:Storage:LiIonNMCBattery}\label{electricloadcenterstorage-liionbattery}
+
+This object usses the Li-ion NMC battery model from the System Advisor Model (SAM) software.
+
+\subsubsection{Inputs}
+
+\paragraph{Field: Name}\label{liion-name}
+
+This alpha field contains the identifying name for the battery.
+
+\paragraph{Field: Availability Schedule Name}\label{liion-avail-sched-name}
+
+This alpha field contains the schedule name (ref. Schedule objects) that describes when the battery is available. A schedule value greater than 0 (usually 1 is used) indicates that electrical energy can be stored or drawn from the battery. A value less than or equal to 0 (usually 0 is used) denotes that the battery is not available. If this field is blank, the schedule has values of 1 for all time periods.
+
+\paragraph{Field: Zone Name}\label{liion-zone-name}
+
+This field contains the name of the thermal zone where the battery is located. Entering a valid name of zone here will direct EnergyPlus to include the energy storage losses as heat gains to the named thermal zone. If the battery is not within a thermal zone, this field can be left blank and the thermal energy associated with storage losses is removed from the building model.
+
+\paragraph{Field: Radiative Fraction}\label{liion-rad-frac}
+
+This field contains the fraction of storage losses that enter the zone as long-wave thermal radiation. This numeric filed should have a value between 0.0 and 1.0. The balance of the losses is convective. This field is not used if the previous field for zone name is left blank.
+
+\paragraph{Field: Lifetime Model}\label{liion-lifetime-model}
+
+Which lifetime model to use for the battery. Available choices are:
+
+\begin{itemize}
+ \item None: The battery doesn't degrade over time
+ \item KandlerSmith: Use the lifetime model developed by Kandler Smith. Details at \url{https://ieeexplore.ieee.org/abstract/document/7963578}
+\end{itemize}
+
+\paragraph{Field: Number of Cells in Series}\label{liion-n-series}
+
+The number of cells in series. Increasing this number increases the voltage output of the battery.
+
+\paragraph{Field: Number of Strings in Parallel}\label{liion-n-parallel}
+
+The number of strings in parallel.
+
+\paragraph{Field: Initial Fractional State of Charge}\label{liion-init-soc}
+
+This field describes the initial state of charge in terms of the fraction of maximum capacity.
+
+\paragraph{Field: DC to DC Charging Efficiency}\label{liion-dc-dc-charg-eff}
+
+The charging loss coefficient.
+
+\paragraph{Field: Battery Mass}\label{liion-mass}
+
+Battery mass (kg) used in thermal calculation.
+
+\paragraph{Field: Battery Surface Area}\label{liion-surf-area}
+
+Battery surface area (m\textsuperscript{2}) used in thermal calculations.
+
+\paragraph{Field: Battery Specific Heat Capacity}\label{liion-cp}
+
+Specific heat of the battery (J/kg-K) used in the thermal calculation.
+
+\paragraph{Field: Heat Transfer Coefficient Between Battery and Ambient}\label{liion-h}
+
+Heat transfer coefficient (W/m\textsuperscript{2}-K)between battery and ambient.
+
+\paragraph{Field: Fully Charged Cell Voltage}\label{liion-vfull}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Cell Voltage at End of Exponential Zone}\label{liion-vexp}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Cell Voltage at End of Nominal Zone}\label{liion-vnom}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Default Nominal Cell Voltage}\label{liion-vnom-default}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Fully Charged Cell Capacity}\label{liion-qfull}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Fraction of Cell Capacity Removed at the End of Exponential Zone}\label{liion-qexp}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Fraction of Cell Capacity Removed at the End of Nominal Zone}\label{liion-qnom}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Charge Rate at Which Voltage vs Capacity Curve Was Generated}\label{liion-crate}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+\paragraph{Field: Battery Cell Internal Electrical Resistance}\label{liion-internal-r}
+
+This field is included for those who want to modify the battery chemistry. Most users should leave this field blank or omit it to use the defaults, which are typical of Lithium-ion batteries.
+
+An example input of the ElectricLoadCenter:Storage:LiIonNMCBattery is:
+
+\begin{lstlisting}
+
+ ElectricLoadCenter:Storage:LiIonNMCBattery,
+ LiIonBattery, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ , !- Zone Name
+ 0, !- Radiative Fraction
+ KandlerSmith, !- Lifetime Model
+ 139, !- Number of Cells in Series
+ 25, !- Number of Strings in Parallel
+ 0.7, !- Initial Fractional State of Charge
+ , !- DC to DC Charging Efficiency
+ 342, !- Battery Mass
+ 4.26, !- Battery Surface Area
+ , !- Battery Specific Heat Capacity
+ ; !- Heat Transfer Coefficient Between Battery and Ambient
+
+\end{lstlisting}
+
+\subsubsection{Outputs}\label{electricloadcenter-storageliionnmcbatttery-outputs}
+
+\begin{itemize}
+ \item
+ HVAC,Average, Electric Storage Operating Mode Index {[]}
+ \item
+ HVAC,Average,Electric Storage Charge State{[}Ah{]}
+ \item
+ HVAC,Average, Electric Storage Charge Fraction {[]}
+ \item
+ HVAC,Average,Electric Storage Charge Power{[}W{]}
+ \item
+ HVAC,Sum,Electric Storage Charge Energy {[}J{]}
+ \item
+ HVAC,Average,Electric Storage Discharge Power{[}W{]}
+ \item
+ HVAC,Sum,Electric Storage Discharge Energy {[}J{]}
+ \item
+ HVAC,Average,Electric Storage Total Current{[}A{]}
+ \item
+ HVAC,Average, Electric Storage Total Voltage {[}V{]}
+ \item
+ HVAC,Average,Electric Storage Thermal Loss Rate {[}W{]}
+ \item
+ HVAC,Average,Electric Storage Degradation Fraction {[]}
+ \item
+ HVAC,Sum,Electric Storage Production Decrement Energy {[}J{]}
+ \item
+ HVAC,Sum,Electric Storage Thermal Loss Energy {[}J{]}
+ \item
+ HVAC,Average,Electric Storage Battery Temperature {[}C{]}
+\end{itemize}
+
+\paragraph{Electric Storage Operating Mode Index {[]}}\label{liion-operating-mode-index}
+
+This output reports the battery mode of operation: 0 for idle; 1 for discharging; 2 for charging. It is expected that more operation modes would be added when a smart and active power dispatch controller is used in future.
+
+\paragraph{Electric Storage Charge State {[}Ah{]}}\label{liion-charge-state-ah}
+
+The state of charge is expressed as the amount of charge stored in the battery at a point of time. It has the same unit as the maximum capacity. This value is given for an individual battery module
+
+\paragraph{Electric Storage Charge Fraction {[]}}\label{liion-charge-fraction}
+
+This output is the ratio between the electrical storage state of charge and the maximum capacity.
+
+\paragraph{Electric Storage Charge Power {[}W{]}}\label{liion-charge-power-w-1}
+
+\paragraph{Electric Storage Charge Energy {[}J{]}}\label{liion-charge-energy-j-1}
+
+These outputs are total electricity power or energy fed into the battery. This is the rate of amount of charging.
+
+\paragraph{Electric Storage Production Decrement Energy {[}J{]}}\label{liion-production-decrement-energy-j-1}
+
+This output is the total electricity energy decremented from electricity production because it has fed into the battery. This output has the opposite sign of Electric Storage Charge Energy but is otherwise similar. This decrement output variable is also a meter associated with the resource type ElectricityProduced that reduces the metered electricity production to account for power that went into storage after production.
+
+\paragraph{Electric Storage Discharge Power {[}W{]}}\label{liion-discharge-power-w-1}
+
+\paragraph{Electric Storage Discharge Energy {[}J{]}}\label{liion-discharge-energy-j-1}
+
+These outputs are total electricity power or energy drawn from the battery. This is the rate or amount of discharging. The energy from storage output variable is also a meter associated with the resource type ElectricityProduced that increases the metered electricity production to account for power that has come back out of storage.
+
+\paragraph{Electric Storage Total Current {[}A{]}}\label{liion-total-current-a}
+
+This output is the current to or from the battery bank depending on whether the battery is in the state of charging or discharging. The value is positive for discharging and negative for charging.
+
+\paragraph{Electric Storage Total Voltage {[}V{]}}\label{liion-total-voltage-v}
+
+This output is the total terminal voltage of the battery bank.
+
+\paragraph{Electric Storage Thermal Loss Rate {[}W{]}}\label{liion-thermal-loss-rate-w-1}
+
+\paragraph{Electric Storage Thermal Loss Energy {[}J{]}}\label{liion-thermal-loss-energy-j-1}
+
+These outputs are the thermal power or energy losses from both charging and drawing electrical power in or out of the storage device. These losses are due to the battery internal resistance in charging and discharging.
+
+\paragraph{Electric Storage Degradation Fraction {[]}}\label{liion-degradation-fraction}
+
+This output reports the fractional battery life used up at a point of time. For example, a value of 0.4 at the end of one year simulation means that 40\% of the battery life is used up.
+
+\paragraph{HVAC,Average,Electric Storage Battery Temperature {[}C{]}}\label{liion-battery-temperature}
+
+The internal temperature of the battery.
+
\subsection{Generator:InternalCombustionEngine}\label{generatorinternalcombustionengine}
The Internal Combustion (IC) Engine generator uses a modified Otto cycle. This generator model uses the electrical load and rated engine generator size to compute part-load ratios (PLR). Fuel energy input and recoverable jacket and lube oil heat are then computed. Finally, the recoverable exhaust heat is calculated.
diff --git a/doc/input-output-reference/src/standard-output-reports/output-table-summaryreports.tex b/doc/input-output-reference/src/standard-output-reports/output-table-summaryreports.tex
index 9ffc9f7e0fe..717f4593127 100644
--- a/doc/input-output-reference/src/standard-output-reports/output-table-summaryreports.tex
+++ b/doc/input-output-reference/src/standard-output-reports/output-table-summaryreports.tex
@@ -172,6 +172,27 @@ \subsubsection{Predefined Annual Summary Reports}\label{predefined-annual-summar
Minimum Outside Air During Occupied Hours table shows for each zone the average and nominal number of occupants, the zone volume, the minimum air change rate based on mechanical ventilation, infiltration and simple ventilation during occupied hours.
\end{itemize}
+\paragraph{Outdoor Air Details}\label{outdoor-air-details}
+
+The Outdoor Air Details report (key: OutdoorAirDetails) produces a report that includes the following tables:
+
+\begin{itemize}
+\item
+ Mechanical Ventilation Parameters by Zone table shows for each zone the average and nominal number of occupants, the zone volume and area, the design outdoor air flow rate \(V_{oz}\) and the minimum dynamic target ventilation flow rate \(V_{oz-dyn-min}\).
+\item
+ Total Outdoor Air by Zone table shows for each zone the total mechanical ventilation, natural ventilation, total ventilation (mechanical plus natural), infiltration, total ventilation plus infiltration, dynamic target ventilation \(V_{oz-dyn}\), the time when total ventilation is below, at, or above \(V_{oz-dyn}\), and the time ventilation is provided when the zone is unoccupied.
+\item
+ Average Outdoor Air During Occupancy by Zone - Flow Rates table shows for each zone the average flow rates when the zone is occupied for mechanical ventilation, natural ventilation, total ventilation (mechanical plus natural), infiltration, total ventilation plus infiltration, dynamic target ventilation \(V_{oz-dyn}\) and the time when total ventilation is below, at, or above \(V_{oz-dyn}\).
+\item
+ Total Outdoor Air by AirLoop table shows for each airloop the total mechanical ventilation, natural ventilation, total ventilation (mechanical plus natural), sum of the zone dynamic target ventilation \(V_{oz-dyn}\), the time when total ventilation is below, at, or above \(V_{oz-dyn}\), and the time ventilation is provided when all zones are unoccupied.
+\item
+ Average Outdoor Air During Occupancy by AirLoop table shows for each airloop the average flow rates when any zone on the airloop is occupied for mechanical ventilation, natural ventilation, total ventilation (mechanical plus natural), sum of the zone dynamic target ventilation \(V_{oz-dyn}\), and the time when total ventilation is below, at, or above \(V_{oz-dyn}\).
+\item
+ Times for Outdoor Air Limiting Factors During Occupancy table shows for each airloop the time when any zone on the airloop is occupied and various limiting factors control the mechanical ventilation flow rate: no limiting factor, economizer operation, demand controlled ventilation, exhaust flow, high humidity economizer control, night ventilation, limits and scheduled limits, demand limiting, and energy management system override.
+\item
+ Average Outdoor Air For Each Outdoor Air Limiting Factors During Occupancy table shows for each airloop the average mechanical ventilation flow rates when any zone on the airloop is occupied and various limiting factors control the mechanical ventilation flow rate: no limiting factor, economizer operation, demand controlled ventilation, exhaust flow, high humidity economizer control, night ventilation, limits and scheduled limits, demand limiting, and energy management system override.
+\end{itemize}
+
\paragraph{System Summary}\label{system-summary}
The System Summary Report (key: SystemSummary) produces a report that includes the following tables:
diff --git a/idd/Energy+.idd.in b/idd/Energy+.idd.in
index df874ecf5ec..4fcf08cfc6e 100644
--- a/idd/Energy+.idd.in
+++ b/idd/Energy+.idd.in
@@ -791,22 +791,36 @@ ZoneAirContaminantBalance,
\object-list ScheduleNames
ZoneAirMassFlowConservation,
- \memo Enforces the zone air mass flow balance by adjusting zone mixing object and/or
- \memo infiltration object mass flow rates.
- \memo If either mixing or infiltration is active, then the zone air mass flow
- \memo balance calculation will attempt to enforce conservation of mass for each zone.
- \memo If mixing is "No" and infiltration is "None", then the zone air mass flow
- \memo calculation defaults to assume self-balanced simple flow mixing and infiltration objects.
+ \memo Enforces the zone air mass flow balance by either adjusting zone mixing object flow only,
+ \memo adjusting zone total return flow only, zone mixing and the zone total return flows,
+ \memo or adjusting the zone total return and zone mixing object flows. Zone infiltration flow air
+ \memo flow is increased or decreased depending user selection in the infiltration treatment method.
+ \memo If either of zone mixing or zone return flow adjusting methods or infiltration is active,
+ \memo then the zone air mass flow balance calculation will attempt to enforce conservation of
+ \memo mass for each zone. If flow balancing method is "None" and infiltration is "None", then the
+ \memo zone air mass flow calculation defaults to assume self-balanced simple flow mixing and
+ \memo infiltration objects.
\unique-object
\min-fields 3
- A1, \field Adjust Zone Mixing For Zone Air Mass Flow Balance
- \note If Yes, Zone mixing object flow rates are adjusted to balance the zone air mass flow
- \note and additional infiltration air flow may be added if required in order to balance the
- \note zone air mass flow.
- \type choice
- \key Yes
- \key No
- \default No
+ A1, \field Adjust Zone Mixing and Return For Air Mass Flow Balance
+ \note If "AdjustMixingOnly", zone mixing object flow rates are adjusted to balance the zone air mass
+ \note flow and zone infiltration air flow may be increased or decreased if required in order to balance
+ \note the zone air mass flow. If "AdjustReturnOnly", zone total return flow rate is adjusted to balance
+ \note the zone air mass flow and zone infiltration air flow may be increased or decreased if required
+ \note in order to balance the zone air mass flow. If "AdjustMixingThenReturn", first the zone mixing
+ \note objects flow rates are adjusted to balance the zone air flow, second zone total return flow rate
+ \note is adjusted and zone infiltration air flow may be increased or decreased if required in order to
+ \note balance the zone air mass flow. If "AdjustReturnThenMixing", first zone total return flow rate is
+ \note adjusted to balance the zone air flow, second the zone mixing object flow rates are adjusted and
+ \note infiltration air flow may be increased or decreased if required in order to balance the zone
+ \note air mass flow.
+ \type choice
+ \key AdjustMixingOnly
+ \key AdjustReturnOnly
+ \key AdjustMixingThenReturn
+ \key AdjustReturnThenMixing
+ \key None
+ \default None
A2, \field Infiltration Balancing Method
\note This input field allows user to choose how zone infiltration flow is treated during
\note the zone air mass flow balance calculation.
@@ -20430,6 +20444,7 @@ RoomAir:Node:AirflowNetwork:InternalGains,
\key ElectricLoadCenter:Inverter:Simple
\key ElectricLoadCenter:Inverter:FunctionOfPower
\key ElectricLoadCenter:Inverter:LookUpTable
+ \key ElectricLoadCenter:Storage:LiIonNMCBattery
\key ElectricLoadCenter:Storage:Battery
\key ElectricLoadCenter:Storage:Simple
\key ElectricLoadCenter:Storage:Converter
@@ -20484,6 +20499,7 @@ RoomAir:Node:AirflowNetwork:InternalGains,
\key ElectricLoadCenter:Inverter:Simple
\key ElectricLoadCenter:Inverter:FunctionOfPower
\key ElectricLoadCenter:Inverter:LookUpTable
+ \key ElectricLoadCenter:Storage:LiIonNMCBattery
\key ElectricLoadCenter:Storage:Battery
\key ElectricLoadCenter:Storage:Simple
\key ElectricLoadCenter:Storage:Converter
@@ -20537,6 +20553,7 @@ RoomAir:Node:AirflowNetwork:InternalGains,
\key ElectricLoadCenter:Inverter:Simple
\key ElectricLoadCenter:Inverter:FunctionOfPower
\key ElectricLoadCenter:Inverter:LookUpTable
+ \key ElectricLoadCenter:Storage:LiIonNMCBattery
\key ElectricLoadCenter:Storage:Battery
\key ElectricLoadCenter:Storage:Simple
\key ElectricLoadCenter:Storage:Converter
@@ -23844,12 +23861,21 @@ AirflowNetwork:SimulationControl,
\key Yes
\key No
\default No
- A8 ; \field Solver
+ A8 , \field Solver
\note Select the solver to use for the pressure network solution
\type choice
\key SkylineLU
\key ConjugateGradient
\default SkylineLU
+ A9 ; \field Allow Unsupported Zone Equipment
+ \note Set this input to Yes to have zone equipment that are currently unsupported in the AirflowNetwork model
+ \note allowed in the simulation if present. Setting this field to Yes, allows the following equipments
+ \note to be modeled along an AirflowNetwork model: ZoneHVAC:Dehumidifier, ZoneHVAC:EnergyRecoveryVentilator,
+ \note WaterHeater:HeatPump:*.
+ \type choice
+ \key Yes
+ \key No
+ \default No
AirflowNetwork:MultiZone:Zone,
\min-fields 8
@@ -88702,6 +88728,138 @@ ElectricLoadCenter:Storage:Battery,
\note Determines the number of cycles to failure in relation to cycle range.
\note Only required when battery life calculation is activated.
+ElectricLoadCenter:Storage:LiIonNMCBattery,
+ \memo Uses Lithium Ion NMC model to simulate rechargeable battery banks in an
+ \memo electrical load center. The battery bank is a collection of one or more individual
+ \memo battery modules. Given the surplus or deficit power from the electrical system and
+ \memo the state of charge from the previous time step, this object can model the voltage,
+ \memo current, and energy losses with charging and discharging during each time step.
+ \memo The cumulative battery damage can be also modeled and reported at the end of
+ \memo each simulation run.
+ \min-fields 11
+ A1, \field Name
+ \required-field
+ \type alpha
+ \reference ElecStorageList
+ A2, \field Availability Schedule Name
+ \note Availability schedule name for this system. Schedule value > 0 means the system is available.
+ \note If this field is blank, the system is always available.
+ \type object-list
+ \object-list ScheduleNames
+ A3, \field Zone Name
+ \type object-list
+ \object-list ZoneNames
+ \note Enter name of zone to receive electrical storage losses as heat
+ \note if blank then electrical storage losses are dissipated to outdoors
+ N1, \field Radiative Fraction
+ \type real
+ \minimum 0
+ \maximum 1.0
+ \default 0
+ A4, \field Lifetime Model
+ \type choice
+ \key None
+ \key KandlerSmith
+ \default KandlerSmith
+ N2, \field Number of Cells in Series
+ \type integer
+ \minimum 1
+ \required-field
+ \note Battery voltage is calculated by multiplying this field
+ \note by the nominal cell voltage (N13, default 3.342V)
+ N3, \field Number of Strings in Parallel
+ \type integer
+ \minimum 1
+ \required-field
+ \note Capacity (Ah) is determined by multiplying this field
+ \note by the cell capacity (N14, default 3.2 Ah)
+ N4, \field Initial Fractional State of Charge
+ \type real
+ \minimum 0
+ \maximum 1.0
+ \default 0.5
+ \note The state of charge is evaluated based on the
+ \note maximum capacity defined in the next field.
+ N5, \field DC to DC Charging Efficiency
+ \type real
+ \minimum> 0
+ \maximum 1
+ \default 0.95
+ N6, \field Battery Mass
+ \type real
+ \minimum> 0
+ \units kg
+ \required-field
+ N7, \field Battery Surface Area
+ \type real
+ \minimum> 0
+ \units m2
+ \required-field
+ N8, \field Battery Specific Heat Capacity
+ \type real
+ \minimum> 0
+ \units J/kg-K
+ \default 1500
+ N9, \field Heat Transfer Coefficient Between Battery and Ambient
+ \type real
+ \minimum> 0
+ \units W/m2-K
+ \default 7.5
+ N10, \field Fully Charged Cell Voltage
+ \type real
+ \minimum> 0
+ \units V
+ \default 4.2
+ \note Most users should not need to change this value.
+ N11, \field Cell Voltage at End of Exponential Zone
+ \type real
+ \minimum> 0
+ \units V
+ \default 3.53
+ \note Most users should not need to change this value.
+ N12, \field Cell Voltage at End of Nominal Zone
+ \type real
+ \minimum> 0
+ \units V
+ \default 3.342
+ \note Most users should not need to change this value.
+ N13, \field Default Nominal Cell Voltage
+ \type real
+ \minimum> 0
+ \units V
+ \default 3.342
+ \note Most users should not need to change this value.
+ N14, \field Fully Charged Cell Capacity
+ \type real
+ \minimum> 0
+ \units Ah
+ \default 3.2
+ \note Most users should not need to change this value.
+ N15, \field Fraction of Cell Capacity Removed at the End of Exponential Zone
+ \type real
+ \minimum> 0.0
+ \maximum< 1.0
+ \default 0.8075
+ \note Most users should not need to change this value.
+ N16, \field Fraction of Cell Capacity Removed at the End of Nominal Zone
+ \type real
+ \minimum> 0.0
+ \maximum< 1.0
+ \default 0.976875
+ \note Most users should not need to change this value.
+ N17, \field Charge Rate at Which Voltage vs Capacity Curve Was Generated
+ \type real
+ \minimum> 0
+ \default 1
+ \note Most users should not need to change this value.
+ N18; \field Battery Cell Internal Electrical Resistance
+ \type real
+ \minimum 0
+ \units ohms
+ \default 0.09
+ \note for a single cell
+ \note Most users should not need to change this value.
+
ElectricLoadCenter:Transformer,
\memo a list of meters that can be reported are available after a run on
\memo the meter dictionary file (.mdd) if the Output:VariableDictionary has been requested.
@@ -98601,8 +98759,6 @@ Output:Table:SummaryReports,
\memo other tabular reports. These predefined reports are sensitive to the OutputControl:Table:Style object
\memo and appear in the same files as the tabular reports. The entries for this object is a list
\memo of the predefined reports that should appear in the tabular report output file.
- \memo There should be as many fields (A) in this object as there are keys in the following (minus
- \memo AllSummary+AllMonthly+AllSummaryAndMonthly)
\unique-object
A1, \field Report 1 Name
\begin-extensible
@@ -98627,6 +98783,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -98730,6 +98887,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -98833,6 +98991,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -98936,6 +99095,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99039,6 +99199,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99142,6 +99303,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99245,6 +99407,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99348,6 +99511,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99451,6 +99615,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99554,6 +99719,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99657,6 +99823,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99760,6 +99927,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99863,6 +100031,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -99966,6 +100135,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100069,6 +100239,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100172,6 +100343,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100275,6 +100447,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100378,6 +100551,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100481,6 +100655,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100584,6 +100759,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100687,6 +100863,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100790,6 +100967,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100893,6 +101071,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -100996,6 +101175,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
@@ -101077,5981 +101257,7 @@ Output:Table:SummaryReports,
\key ThermalResilienceSummary
\key CO2ResilienceSummary
\key VisualResilienceSummary
- A25, \field Report 25 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A26, \field Report 26 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A27, \field Report 27 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A28, \field Report 28 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A29, \field Report 29 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A30, \field Report 30 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A31, \field Report 31 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A32, \field Report 32 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A33, \field Report 33 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A34, \field Report 34 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A35, \field Report 35 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A36, \field Report 36 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A37, \field Report 37 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A38, \field Report 38 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A39, \field Report 39 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A40, \field Report 40 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A41, \field Report 41 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A42, \field Report 42 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A43, \field Report 43 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A44, \field Report 44 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A45, \field Report 45 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A46, \field Report 46 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A47, \field Report 47 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A48, \field Report 48 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A49, \field Report 49 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A50, \field Report 50 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A51, \field Report 51 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A52, \field Report 52 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A53, \field Report 53 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A54, \field Report 54 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A55, \field Report 55 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A56, \field Report 56 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A57, \field Report 57 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A58, \field Report 58 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A59, \field Report 59 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A60, \field Report 60 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A61, \field Report 61 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A62, \field Report 62 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A63, \field Report 63 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A64, \field Report 64 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A65, \field Report 65 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A66, \field Report 66 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A67, \field Report 67 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A68, \field Report 68 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A69, \field Report 69 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A70, \field Report 70 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A71, \field Report 71 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A72, \field Report 72 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A73, \field Report 73 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A74, \field Report 74 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A75, \field Report 75 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A76, \field Report 76 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A77, \field Report 77 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A78, \field Report 78 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A79, \field Report 79 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A80, \field Report 80 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A81, \field Report 81 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A82, \field Report 82 Name
- \type choice
- \key AllSummary
- \key AllSummaryAndSizingPeriod
- \key AllMonthly
- \key AllSummaryAndMonthly
- \key AllSummaryMonthlyAndSizingPeriod
- \key AnnualBuildingUtilityPerformanceSummary
- \key InputVerificationandResultsSummary
- \key DemandEndUseComponentsSummary
- \key SourceEnergyEndUseComponentsSummary
- \key ClimaticDataSummary
- \key EquipmentSummary
- \key EnvelopeSummary
- \key SurfaceShadowingSummary
- \key ShadingSummary
- \key LightingSummary
- \key HVACSizingSummary
- \key SystemSummary
- \key ComponentSizingSummary
- \key CoilSizingDetails
- \key OutdoorAirSummary
- \key ObjectCountSummary
- \key ComponentCostEconomicsSummary
- \key AdaptiveComfortSummary
- \key SensibleHeatGainSummary
- \key ZoneComponentLoadSummary
- \key AirLoopComponentLoadSummary
- \key FacilityComponentLoadSummary
- \key Standard62.1Summary
- \key EnergyMeters
- \key InitializationSummary
- \key LEEDSummary
- \key LifeCycleCostReport
- \key TariffReport
- \key EconomicResultSummary
- \key ZoneCoolingSummaryMonthly
- \key ZoneHeatingSummaryMonthly
- \key ZoneElectricSummaryMonthly
- \key SpaceGainsMonthly
- \key PeakSpaceGainsMonthly
- \key SpaceGainComponentsAtCoolingPeakMonthly
- \key EnergyConsumptionElectricityNaturalGasMonthly
- \key EnergyConsumptionElectricityGeneratedPropaneMonthly
- \key EnergyConsumptionDieselFuelOilMonthly
- \key EnergyConsumptionDistrictHeatingCoolingMonthly
- \key EnergyConsumptionCoalGasolineMonthly
- \key EnergyConsumptionOtherFuelsMonthly
- \key EndUseEnergyConsumptionElectricityMonthly
- \key EndUseEnergyConsumptionNaturalGasMonthly
- \key EndUseEnergyConsumptionDieselMonthly
- \key EndUseEnergyConsumptionFuelOilMonthly
- \key EndUseEnergyConsumptionCoalMonthly
- \key EndUseEnergyConsumptionPropaneMonthly
- \key EndUseEnergyConsumptionGasolineMonthly
- \key EndUseEnergyConsumptionOtherFuelsMonthly
- \key PeakEnergyEndUseElectricityPart1Monthly
- \key PeakEnergyEndUseElectricityPart2Monthly
- \key ElectricComponentsOfPeakDemandMonthly
- \key PeakEnergyEndUseNaturalGasMonthly
- \key PeakEnergyEndUseDieselMonthly
- \key PeakEnergyEndUseFuelOilMonthly
- \key PeakEnergyEndUseCoalMonthly
- \key PeakEnergyEndUsePropaneMonthly
- \key PeakEnergyEndUseGasolineMonthly
- \key PeakEnergyEndUseOtherFuelsMonthly
- \key SetpointsNotMetWithTemperaturesMonthly
- \key ComfortReportSimple55Monthly
- \key UnglazedTranspiredSolarCollectorSummaryMonthly
- \key OccupantComfortDataSummaryMonthly
- \key ChillerReportMonthly
- \key TowerReportMonthly
- \key BoilerReportMonthly
- \key DXReportMonthly
- \key WindowReportMonthly
- \key WindowEnergyReportMonthly
- \key WindowZoneSummaryMonthly
- \key WindowEnergyZoneSummaryMonthly
- \key AverageOutdoorConditionsMonthly
- \key OutdoorConditionsMaximumDryBulbMonthly
- \key OutdoorConditionsMinimumDryBulbMonthly
- \key OutdoorConditionsMaximumWetBulbMonthly
- \key OutdoorConditionsMaximumDewPointMonthly
- \key OutdoorGroundConditionsMonthly
- \key WindowACReportMonthly
- \key WaterHeaterReportMonthly
- \key GeneratorReportMonthly
- \key DaylightingReportMonthly
- \key CoilReportMonthly
- \key PlantLoopDemandReportMonthly
- \key FanReportMonthly
- \key PumpReportMonthly
- \key CondLoopDemandReportMonthly
- \key ZoneTemperatureOscillationReportMonthly
- \key AirLoopSystemEnergyAndWaterUseMonthly
- \key AirLoopSystemComponentLoadsMonthly
- \key AirLoopSystemComponentEnergyUseMonthly
- \key MechanicalVentilationLoadsMonthly
- \key HeatEmissionsSummary
- \key HeatEmissionsReportMonthly
- \key ThermalResilienceSummary
- \key CO2ResilienceSummary
- \key VisualResilienceSummary
- A83; \field Report 83 Name
+ A25; \field Report 25 Name
\type choice
\key AllSummary
\key AllSummaryAndSizingPeriod
@@ -107073,6 +101279,7 @@ Output:Table:SummaryReports,
\key ComponentSizingSummary
\key CoilSizingDetails
\key OutdoorAirSummary
+ \key OutdoorAirDetails
\key ObjectCountSummary
\key ComponentCostEconomicsSummary
\key AdaptiveComfortSummary
diff --git a/scripts/dev/find_byref_bool_override.py b/scripts/dev/find_byref_bool_override.py
index 9d087e93713..1b637892c88 100755
--- a/scripts/dev/find_byref_bool_override.py
+++ b/scripts/dev/find_byref_bool_override.py
@@ -191,6 +191,10 @@
"simulateSimpleBucketModel": [
"charging",
"discharging"
+ ],
+ "simulateLiIonNmcBatteryModel": [
+ "charging",
+ "discharging"
]
},
"EMSManager.cc": {
diff --git a/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp b/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp
index fcb2cd2f6b0..4cfb181506b 100644
--- a/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp
+++ b/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp
@@ -271,6 +271,7 @@ namespace AirflowNetwork {
int OpenFactorErrIndex; // Large opening error error index at Open factor > 1.0
std::string InitType; // Initialization flag type:
bool TExtHeightDep; // Choice of height dependence of external node temperature
+ bool AllowSupportZoneEqp; // Allow unsupported zone equipment
// "ZeroNodePressures", or "LinearInitializationMethod"
// Default Constructor
diff --git a/src/EnergyPlus/AirflowNetworkBalanceManager.cc b/src/EnergyPlus/AirflowNetworkBalanceManager.cc
index d8a5252da45..1c6e32d7b68 100644
--- a/src/EnergyPlus/AirflowNetworkBalanceManager.cc
+++ b/src/EnergyPlus/AirflowNetworkBalanceManager.cc
@@ -101,6 +101,8 @@
#include
#include
#include
+#include
+#include
namespace EnergyPlus {
@@ -1811,6 +1813,12 @@ namespace AirflowNetworkBalanceManager {
AirflowNetworkSimu.HeightOption = Alphas(4);
AirflowNetworkSimu.BldgType = Alphas(5);
+ // Retrieve flag allowing the support of zone equipment
+ AirflowNetworkSimu.AllowSupportZoneEqp = false;
+ if (UtilityRoutines::SameString(Alphas(9), "Yes")) {
+ AirflowNetworkSimu.AllowSupportZoneEqp = true;
+ }
+
// Find a flag for possible combination of vent and distribution system
{
auto const SELECT_CASE_var(UtilityRoutines::MakeUPPERCase(AirflowNetworkSimu.Control));
@@ -8510,8 +8518,15 @@ namespace AirflowNetworkBalanceManager {
state.dataAirflowNetworkBalanceManager->AirflowNetworkZnRpt(i).MixVolume = (state.dataAirflowNetworkBalanceManager->exchangeData(i).SumMMCp / CpAir / AirDensity) * ReportingConstant;
state.dataAirflowNetworkBalanceManager->AirflowNetworkZnRpt(i).MixMass = (state.dataAirflowNetworkBalanceManager->exchangeData(i).SumMMCp / CpAir) * ReportingConstant;
// save values for predefined report
+ Real64 StdDensInfilVolume = (state.dataAirflowNetworkBalanceManager->exchangeData(i).SumMCp / CpAir / state.dataEnvrn->StdRhoAir) *
+ ReportingConstant; // compute volume using standard density air
+ // MJWToDo - Separate AFN Vent and InfilVolFlow
+ ZonePreDefRep(i).AFNVentVolTotalStdDen += 0.0;
+ ZonePreDefRep(i).AFNInfilVolTotalStdDen += StdDensInfilVolume;
if (ZonePreDefRep(i).isOccupied) {
- ZonePreDefRep(i).AFNInfilVolTotal += state.dataAirflowNetworkBalanceManager->AirflowNetworkZnRpt(i).InfilVolume * Zone(i).Multiplier * Zone(i).ListMultiplier;
+ ZonePreDefRep(i).AFNVentVolTotalOccStdDen += 0.0;
+ ZonePreDefRep(i).AFNInfilVolTotalOccStdDen += StdDensInfilVolume;
+ ZonePreDefRep(i).AFNInfilVolTotalOcc += state.dataAirflowNetworkBalanceManager->AirflowNetworkZnRpt(i).InfilVolume * Zone(i).Multiplier * Zone(i).ListMultiplier;
if (state.dataAirflowNetworkBalanceManager->AirflowNetworkZnRpt(i).InfilVolume < ZonePreDefRep(i).AFNInfilVolMin) {
ZonePreDefRep(i).AFNInfilVolMin = state.dataAirflowNetworkBalanceManager->AirflowNetworkZnRpt(i).InfilVolume * Zone(i).Multiplier * Zone(i).ListMultiplier;
}
@@ -9476,6 +9491,8 @@ namespace AirflowNetworkBalanceManager {
using SplitterComponent::GetSplitterNodeNumbers;
using SplitterComponent::GetSplitterOutletNumber;
using ZoneDehumidifier::GetZoneDehumidifierNodeNumber;
+ using WaterThermalTanks::GetHeatPumpWaterHeaterNodeNumber;
+ using HVACStandAloneERV::GetStandAloneERVNodeNumber;
// SUBROUTINE PARAMETER DEFINITIONS:
static std::string const RoutineName("ValidateDistributionSystem: "); // include trailing blank space
@@ -9498,6 +9515,9 @@ namespace AirflowNetworkBalanceManager {
Array1D_int NodeConnectionType; // Specifies the type of node connection
std::string CurrentModuleObject;
+ bool HPWHFound(false); // Flag for HPWH identification
+ bool StandaloneERVFound(false); // Flag for Standalone ERV (ZoneHVAC:EnergyRecoveryVentilator) identification
+
// Validate supply and return connections
NodeFound.dimension(NumOfNodes, false);
// Validate inlet and outlet nodes for zone exhaust fans
@@ -9584,6 +9604,20 @@ namespace AirflowNetworkBalanceManager {
// Skip the inlet and outlet nodes of zone dehumidifiers
if (GetZoneDehumidifierNodeNumber(state, i)) NodeFound(i) = true;
+ if (AirflowNetworkSimu.AllowSupportZoneEqp) {
+ // Skip HPWH nodes that don't have to be included in the AFN
+ if (GetHeatPumpWaterHeaterNodeNumber(state, i)) {
+ NodeFound(i) = true;
+ HPWHFound = true;
+ }
+
+ // Skip Standalone ERV nodes that don't have to be included in the AFN
+ if (GetStandAloneERVNodeNumber(state, i)) {
+ NodeFound(i) = true;
+ StandaloneERVFound = true;
+ }
+ }
+
for (j = 1; j <= state.dataGlobal->NumOfZones; ++j) {
if (!state.dataZoneEquip->ZoneEquipConfig(j).IsControlled) continue;
if (state.dataZoneEquip->ZoneEquipConfig(j).ZoneNode == i) {
@@ -9694,6 +9728,12 @@ namespace AirflowNetworkBalanceManager {
}
}
}
+ if (HPWHFound) {
+ ShowWarningError(state, "ValidateDistributionSystem: Heat pump water heater is simulated along with an AirflowNetwork but is not included in the AirflowNetwork.");
+ }
+ if (StandaloneERVFound) {
+ ShowWarningError(state, "ValidateDistributionSystem: A ZoneHVAC:EnergyRecoveryVentilator is simulated along with an AirflowNetwork but is not included in the AirflowNetwork.");
+ }
NodeFound.deallocate();
// Assign AirLoop Number to every node and linkage
diff --git a/src/EnergyPlus/ChilledCeilingPanelSimple.cc b/src/EnergyPlus/ChilledCeilingPanelSimple.cc
index 0b3d3ea799d..2bd4f1ba79e 100644
--- a/src/EnergyPlus/ChilledCeilingPanelSimple.cc
+++ b/src/EnergyPlus/ChilledCeilingPanelSimple.cc
@@ -1696,8 +1696,7 @@ namespace CoolingPanelSimple {
using DataHeatBalance::HConvIn;
using DataHeatBalance::Zone;
using DataHeatBalSurface::TempSurfInTmp;
- using DataSurfaces::IntBlindOn;
- using DataSurfaces::IntShadeOn;
+ using DataSurfaces::WinShadingType;
using DataSurfaces::Surface;
using DataSurfaces::SurfWinShadingFlag;
using DataSurfaces::SurfWinFrameArea;
@@ -1727,7 +1726,7 @@ namespace CoolingPanelSimple {
if (ThisSurf.Class == DataSurfaces::SurfaceClass::Window) {
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The area is the shade or blind area = the sum of the glazing area and the divider area (which is zero if no divider)
Area += DataSurfaces::SurfWinDividerArea(SurfNum);
}
@@ -1737,7 +1736,7 @@ namespace CoolingPanelSimple {
SumHATsurf += HConvIn(SurfNum) * SurfWinFrameArea(SurfNum) * (1.0 + SurfWinProjCorrFrIn(SurfNum)) * SurfWinFrameTempSurfIn(SurfNum);
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn && SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf +=
HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) * SurfWinDividerTempSurfIn(SurfNum);
diff --git a/src/EnergyPlus/ConvectionCoefficients.cc b/src/EnergyPlus/ConvectionCoefficients.cc
index 0070ad3e1a2..ccbb802c392 100644
--- a/src/EnergyPlus/ConvectionCoefficients.cc
+++ b/src/EnergyPlus/ConvectionCoefficients.cc
@@ -401,7 +401,7 @@ namespace ConvectionCoefficients {
if (!Surface(SurfNum).ExtWind) {
SurfWindSpeed = 0.0; // No wind exposure
- } else if (Surface(SurfNum).Class == SurfaceClass::Window && SurfWinShadingFlag(SurfNum) == ExtShadeOn) {
+ } else if (Surface(SurfNum).Class == SurfaceClass::Window && SurfWinShadingFlag(SurfNum) == WinShadingType::ExtShade) {
SurfWindSpeed = 0.0; // Assume zero wind speed at outside glass surface of window with exterior shade
} else {
SurfWindSpeed = Surface(SurfNum).WindSpeed;
@@ -4713,7 +4713,7 @@ namespace ConvectionCoefficients {
if (!Surface(SurfNum).ExtWind) {
SurfWindSpeed = 0.0; // No wind exposure
- } else if (Surface(SurfNum).Class == SurfaceClass::Window && SurfWinShadingFlag(SurfNum) == ExtShadeOn) {
+ } else if (Surface(SurfNum).Class == SurfaceClass::Window && SurfWinShadingFlag(SurfNum) == WinShadingType::ExtShade) {
SurfWindSpeed = 0.0; // Assume zero wind speed at outside glass surface of window with exterior shade
} else {
SurfWindSpeed = Surface(SurfNum).WindSpeed;
diff --git a/src/EnergyPlus/DataHeatBalance.cc b/src/EnergyPlus/DataHeatBalance.cc
index ac78df10a1d..9c28f631bbc 100644
--- a/src/EnergyPlus/DataHeatBalance.cc
+++ b/src/EnergyPlus/DataHeatBalance.cc
@@ -257,7 +257,15 @@ namespace DataHeatBalance {
int const MixingSourceZonesOnly(1);
int const AllZones(2);
- int const NumZoneIntGainDeviceTypes(53);
+ // Parameter for zone air flow mass balancing method
+ int const AdjustMixingOnly(1);
+ int const AdjustReturnOnly(2);
+ int const AdjustMixingThenReturn(3);
+ int const AdjustReturnThenMixing(4);
+ int const NoAdjustReturnAndMixing(0);
+ // | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
+
+ int const NumZoneIntGainDeviceTypes(54);
Array1D_string const ZoneIntGainDeviceTypes(NumZoneIntGainDeviceTypes,
{"PEOPLE",
"LIGHTS",
@@ -280,6 +288,7 @@ namespace DataHeatBalance {
"ELECTRICLOADCENTER:INVERTER:SIMPLE",
"ELECTRICLOADCENTER:INVERTER:FUNCTIONOFPOWER",
"ELECTRICLOADCENTER:INVERTER:LOOKUPTABLE",
+ "ELECTRICLOADCENTER:STORAGE:LIIONNMCBATTERY",
"ELECTRICLOADCENTER:STORAGE:BATTERY",
"ELECTRICLOADCENTER:STORAGE:SIMPLE",
"PIPE:INDOOR",
@@ -314,7 +323,7 @@ namespace DataHeatBalance {
"FAN:SYSTEMMODEL"}); // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16
// | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
// 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47
- // | 48 | 49 | 50 | 51 | 52 | 53
+ // | 48 | 49 | 50 | 51 | 52 | 53 | 54
Array1D_string const ccZoneIntGainDeviceTypes(NumZoneIntGainDeviceTypes,
{"People",
@@ -338,6 +347,7 @@ namespace DataHeatBalance {
"ElectricLoadCenter:Inverter:Simple",
"ElectricLoadCenter:Inverter:FunctionOfPower",
"ElectricLoadCenter:Inverter:LookUpTable",
+ "ElectricLoadCenter:Storage:LiIonNMCBattery",
"ElectricLoadCenter:Storage:Battery",
"ElectricLoadCenter:Storage:Simple",
"Pipe:Indoor",
@@ -372,7 +382,7 @@ namespace DataHeatBalance {
"Fan:SystemModel"}); // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 |
// 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
// 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
- // 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53
+ // 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54
int const IntGainTypeOf_People(1);
int const IntGainTypeOf_Lights(2);
@@ -395,38 +405,39 @@ namespace DataHeatBalance {
int const IntGainTypeOf_ElectricLoadCenterInverterSimple(19);
int const IntGainTypeOf_ElectricLoadCenterInverterFunctionOfPower(20);
int const IntGainTypeOf_ElectricLoadCenterInverterLookUpTable(21);
- int const IntGainTypeOf_ElectricLoadCenterStorageBattery(22);
- int const IntGainTypeOf_ElectricLoadCenterStorageSimple(23);
- int const IntGainTypeOf_PipeIndoor(24);
- int const IntGainTypeOf_RefrigerationCase(25);
- int const IntGainTypeOf_RefrigerationCompressorRack(26);
- int const IntGainTypeOf_RefrigerationSystemAirCooledCondenser(27);
- int const IntGainTypeOf_RefrigerationTransSysAirCooledGasCooler(28);
- int const IntGainTypeOf_RefrigerationSystemSuctionPipe(29);
- int const IntGainTypeOf_RefrigerationTransSysSuctionPipeMT(30);
- int const IntGainTypeOf_RefrigerationTransSysSuctionPipeLT(31);
- int const IntGainTypeOf_RefrigerationSecondaryReceiver(32);
- int const IntGainTypeOf_RefrigerationSecondaryPipe(33);
- int const IntGainTypeOf_RefrigerationWalkIn(34);
- int const IntGainTypeOf_Pump_VarSpeed(35);
- int const IntGainTypeOf_Pump_ConSpeed(36);
- int const IntGainTypeOf_Pump_Cond(37);
- int const IntGainTypeOf_PumpBank_VarSpeed(38);
- int const IntGainTypeOf_PumpBank_ConSpeed(39);
- int const IntGainTypeOf_ZoneContaminantSourceAndSinkGenericContam(40);
- int const IntGainTypeOf_PlantComponentUserDefined(41);
- int const IntGainTypeOf_CoilUserDefined(42);
- int const IntGainTypeOf_ZoneHVACForcedAirUserDefined(43);
- int const IntGainTypeOf_AirTerminalUserDefined(44);
- int const IntGainTypeOf_PackagedTESCoilTank(45);
- int const IntGainTypeOf_ElectricEquipmentITEAirCooled(46);
- int const IntGainTypeOf_SecCoolingDXCoilSingleSpeed(47);
- int const IntGainTypeOf_SecHeatingDXCoilSingleSpeed(48);
- int const IntGainTypeOf_SecCoolingDXCoilTwoSpeed(49);
- int const IntGainTypeOf_SecCoolingDXCoilMultiSpeed(50);
- int const IntGainTypeOf_SecHeatingDXCoilMultiSpeed(51);
- int const IntGainTypeOf_ElectricLoadCenterConverter(52);
- int const IntGainTypeOf_FanSystemModel(53);
+ int const IntGainTypeOf_ElectricLoadCenterStorageLiIonNmcBattery(22);
+ int const IntGainTypeOf_ElectricLoadCenterStorageBattery(23);
+ int const IntGainTypeOf_ElectricLoadCenterStorageSimple(24);
+ int const IntGainTypeOf_PipeIndoor(25);
+ int const IntGainTypeOf_RefrigerationCase(26);
+ int const IntGainTypeOf_RefrigerationCompressorRack(27);
+ int const IntGainTypeOf_RefrigerationSystemAirCooledCondenser(28);
+ int const IntGainTypeOf_RefrigerationTransSysAirCooledGasCooler(29);
+ int const IntGainTypeOf_RefrigerationSystemSuctionPipe(30);
+ int const IntGainTypeOf_RefrigerationTransSysSuctionPipeMT(31);
+ int const IntGainTypeOf_RefrigerationTransSysSuctionPipeLT(32);
+ int const IntGainTypeOf_RefrigerationSecondaryReceiver(33);
+ int const IntGainTypeOf_RefrigerationSecondaryPipe(34);
+ int const IntGainTypeOf_RefrigerationWalkIn(35);
+ int const IntGainTypeOf_Pump_VarSpeed(36);
+ int const IntGainTypeOf_Pump_ConSpeed(37);
+ int const IntGainTypeOf_Pump_Cond(38);
+ int const IntGainTypeOf_PumpBank_VarSpeed(39);
+ int const IntGainTypeOf_PumpBank_ConSpeed(40);
+ int const IntGainTypeOf_ZoneContaminantSourceAndSinkGenericContam(41);
+ int const IntGainTypeOf_PlantComponentUserDefined(42);
+ int const IntGainTypeOf_CoilUserDefined(43);
+ int const IntGainTypeOf_ZoneHVACForcedAirUserDefined(44);
+ int const IntGainTypeOf_AirTerminalUserDefined(45);
+ int const IntGainTypeOf_PackagedTESCoilTank(46);
+ int const IntGainTypeOf_ElectricEquipmentITEAirCooled(47);
+ int const IntGainTypeOf_SecCoolingDXCoilSingleSpeed(48);
+ int const IntGainTypeOf_SecHeatingDXCoilSingleSpeed(49);
+ int const IntGainTypeOf_SecCoolingDXCoilTwoSpeed(50);
+ int const IntGainTypeOf_SecCoolingDXCoilMultiSpeed(51);
+ int const IntGainTypeOf_SecHeatingDXCoilMultiSpeed(52);
+ int const IntGainTypeOf_ElectricLoadCenterConverter(53);
+ int const IntGainTypeOf_FanSystemModel(54);
// Parameters for checking surface heat transfer models
Real64 const HighDiffusivityThreshold(1.e-5); // used to check if Material properties are out of line.
diff --git a/src/EnergyPlus/DataHeatBalance.hh b/src/EnergyPlus/DataHeatBalance.hh
index 5801e9e0263..cc7918c15ab 100644
--- a/src/EnergyPlus/DataHeatBalance.hh
+++ b/src/EnergyPlus/DataHeatBalance.hh
@@ -215,6 +215,13 @@ namespace DataHeatBalance {
extern int const MixingSourceZonesOnly;
extern int const AllZones;
+ // Parameter for zone air flow mass balancing method
+ extern int const AdjustMixingOnly;
+ extern int const AdjustReturnOnly;
+ extern int const AdjustMixingThenReturn;
+ extern int const AdjustReturnThenMixing;
+ extern int const NoAdjustReturnAndMixing;
+
extern int const NumZoneIntGainDeviceTypes;
extern Array1D_string const ZoneIntGainDeviceTypes; // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
@@ -245,6 +252,7 @@ namespace DataHeatBalance {
extern int const IntGainTypeOf_ElectricLoadCenterInverterSimple;
extern int const IntGainTypeOf_ElectricLoadCenterInverterFunctionOfPower;
extern int const IntGainTypeOf_ElectricLoadCenterInverterLookUpTable;
+ extern int const IntGainTypeOf_ElectricLoadCenterStorageLiIonNmcBattery;
extern int const IntGainTypeOf_ElectricLoadCenterStorageBattery;
extern int const IntGainTypeOf_ElectricLoadCenterStorageSimple;
extern int const IntGainTypeOf_ElectricLoadCenterConverter;
@@ -1366,13 +1374,14 @@ namespace DataHeatBalance {
{
// Members
bool EnforceZoneMassBalance; // flag to enforce zone air mass conservation
- bool BalanceMixing; // flag to allow mixing to be adjusted for zone mass balance
+ int ZoneFlowAdjustment; // specifies how zone air flow balance is determined (AdjustMixingOnly, AdjustReturnOnly, AdjustMixingThenReturn, AdjustReturnThenMixing, None)
int InfiltrationTreatment; // determines how infiltration is treated for zone mass balance
int InfiltrationZoneType; // specifies which types of zones allow infiltration to be changed
// Note, unique global object
// Default Constructor
- ZoneAirMassFlowConservation() : EnforceZoneMassBalance(false), BalanceMixing(false), InfiltrationTreatment(0), InfiltrationZoneType(0)
+ ZoneAirMassFlowConservation()
+ : EnforceZoneMassBalance(false), ZoneFlowAdjustment(0), InfiltrationTreatment(0), InfiltrationZoneType(0)
{
}
};
@@ -1860,19 +1869,44 @@ namespace DataHeatBalance {
{
// Members
bool isOccupied; // occupied during the current time step
+ Real64 NumOcc; // number of occupants - used in calculating Vbz
Real64 NumOccAccum; // number of occupants accumulating for entire simulation
Real64 NumOccAccumTime; // time that the number of occupants is accumulating to compute average
- // - zone time step
+ // - zone time step [hrs]
Real64 TotTimeOcc; // time occupied (and the mechanical ventilation volume is accumulating)
- // - system time step
- Real64 MechVentVolTotal; // volume for mechanical ventilation of outside air for entire simulation
- Real64 MechVentVolMin; // a large number since finding minimum volume
- Real64 InfilVolTotal; // volume for infiltration of outside air for entire simulation
- Real64 InfilVolMin; // a large number since finding minimum volume
- Real64 AFNInfilVolTotal; // volume for infiltration of outside air for entire simulation
- Real64 AFNInfilVolMin; // a large number since finding minimum volume
- Real64 SimpVentVolTotal; // volume for simple 'ZoneVentilation' of outside air for entire simulation
- Real64 SimpVentVolMin; // a large number since finding minimum volume
+ // - system time step [hrs]
+
+ // OA Reports - accumulated values
+ // All Vol variables are in m3
+ Real64 MechVentVolTotalOcc; // volume for mechanical ventilation of outside air for entire simulation during occupied at current
+ Real64 MechVentVolMin; // a large number since finding minimum volume at current zone air density
+ Real64 InfilVolTotalOcc; // volume for infiltration of outside air for entire simulation during occupied at current density
+ Real64 InfilVolMin; // a large number since finding minimum volume at current zone air density
+ Real64 AFNInfilVolTotalOcc; // volume for infiltration of outside air for entire simulation during occupied at zone air density
+ Real64 AFNInfilVolMin; // a large number since finding minimum volume at current zone air density
+ Real64 SimpVentVolTotalOcc; // volume for simple 'ZoneVentilation' of outside air for entire simulation during occupied current
+ Real64 SimpVentVolMin; // a large number since finding minimum volumeat current zone air density
+ Real64 MechVentVolTotalStdDen; // volume for mechanical ventilation of outside air for entire simulation at standard density
+ Real64 MechVentVolTotalOccStdDen; // volume for mechanical ventilation of outside air for entire simulation during occupied at std
+ Real64 InfilVolTotalStdDen; // volume for infiltration of outside air for entire simulation at standard density
+ Real64 InfilVolTotalOccStdDen; // volume for infiltration of outside air for entire simulation standard density
+ Real64 AFNInfilVolTotalStdDen; // volume for infiltration of outside air for entire simulation at standard density
+ Real64 AFNInfilVolTotalOccStdDen; // volume for infiltration of outside air for entire simulation during occupied at std density
+ Real64 AFNVentVolTotalStdDen; // current volume flow rate for natural ventilation at standard density
+ Real64 AFNVentVolTotalOccStdDen; // current volume flow rate for natural ventilation during occupied at standard density
+ Real64 SimpVentVolTotalStdDen; // volume for simple 'ZoneVentilation' of outside air for entire simulation at std density
+ Real64 SimpVentVolTotalOccStdDen; // volume for simple 'ZoneVentilation' of outside air for entire simulation during occupied std
+ Real64 VozMin; // minimum outdoor zone ventilation
+ Real64 VozTargetTotal; // volume for target Voz-dyn for entire simulation at std density
+ Real64 VozTargetTotalOcc; // volume for target Voz-dyn for entire simulation during occupied
+ Real64 VozTargetTimeBelow; // time [hrs] that mechanical+natural ventilation is < VozTarget - 1%
+ Real64 VozTargetTimeAt; // time [hrs] that mechanical+natural ventilation is = VozTarget within 1% and > zero
+ Real64 VozTargetTimeAbove; // time [hrs] that mechanical+natural ventilation is > VozTarget + 1%
+ Real64 VozTargetTimeBelowOcc; // time [hrs] that mechanical+natural ventilation is < VozTarget - 1% during occupied
+ Real64 VozTargetTimeAtOcc; // time [hrs] that mechanical+natural ventilation is = VozTarget within 1% and > zero during occupied
+ Real64 VozTargetTimeAboveOcc; // time [hrs] that mechanical+natural ventilation is > VozTarget + 1% during occupied
+ Real64 TotVentTimeNonZeroUnocc; // time [hrs] that mechanical+natural ventilation is > zero during UNoccupied
+
// for Sensible Heat Gas Component Report
// annual
Real64 SHGSAnZoneEqHt; // Zone Eq heating
@@ -1946,19 +1980,23 @@ namespace DataHeatBalance {
// Default Constructor
ZonePreDefRepType()
- : isOccupied(false), NumOccAccum(0.0), NumOccAccumTime(0.0), TotTimeOcc(0.0), MechVentVolTotal(0.0), MechVentVolMin(9.9e9),
- InfilVolTotal(0.0), InfilVolMin(9.9e9), AFNInfilVolTotal(0.0), AFNInfilVolMin(9.9e9), SimpVentVolTotal(0.0), SimpVentVolMin(9.9e9),
- SHGSAnZoneEqHt(0.0), SHGSAnZoneEqCl(0.0), SHGSAnHvacATUHt(0.0), SHGSAnHvacATUCl(0.0), SHGSAnSurfHt(0.0), SHGSAnSurfCl(0.0),
- SHGSAnPeoplAdd(0.0), SHGSAnLiteAdd(0.0), SHGSAnEquipAdd(0.0), SHGSAnWindAdd(0.0), SHGSAnIzaAdd(0.0), SHGSAnInfilAdd(0.0),
- SHGSAnOtherAdd(0.0), SHGSAnEquipRem(0.0), SHGSAnWindRem(0.0), SHGSAnIzaRem(0.0), SHGSAnInfilRem(0.0), SHGSAnOtherRem(0.0),
- clPtTimeStamp(0), clPeak(0.0), SHGSClHvacHt(0.0), SHGSClHvacCl(0.0), SHGSClHvacATUHt(0.0), SHGSClHvacATUCl(0.0), SHGSClSurfHt(0.0),
- SHGSClSurfCl(0.0), SHGSClPeoplAdd(0.0), SHGSClLiteAdd(0.0), SHGSClEquipAdd(0.0), SHGSClWindAdd(0.0), SHGSClIzaAdd(0.0),
- SHGSClInfilAdd(0.0), SHGSClOtherAdd(0.0), SHGSClEquipRem(0.0), SHGSClWindRem(0.0), SHGSClIzaRem(0.0), SHGSClInfilRem(0.0),
- SHGSClOtherRem(0.0), htPtTimeStamp(0), htPeak(0.0), SHGSHtHvacHt(0.0), SHGSHtHvacCl(0.0), SHGSHtHvacATUHt(0.0), SHGSHtHvacATUCl(0.0),
- SHGSHtSurfHt(0.0), SHGSHtSurfCl(0.0), SHGSHtPeoplAdd(0.0), SHGSHtLiteAdd(0.0), SHGSHtEquipAdd(0.0), SHGSHtWindAdd(0.0),
- SHGSHtIzaAdd(0.0), SHGSHtInfilAdd(0.0), SHGSHtOtherAdd(0.0), SHGSHtEquipRem(0.0), SHGSHtWindRem(0.0), SHGSHtIzaRem(0.0),
- SHGSHtInfilRem(0.0), SHGSHtOtherRem(0.0), emiEnvelopConv(0.0), emiZoneExfiltration(0.0), emiZoneExhaust(0.0), emiHVACRelief(0.0),
- emiHVACReject(0.0), emiTotHeat(0.0)
+ : isOccupied(false), NumOcc(0.0), NumOccAccum(0.0), NumOccAccumTime(0.0), TotTimeOcc(0.0), MechVentVolTotalOcc(0.0),
+ MechVentVolMin(9.9e9), InfilVolTotalOcc(0.0), InfilVolMin(9.9e9), AFNInfilVolTotalOcc(0.0), AFNInfilVolMin(9.9e9),
+ SimpVentVolTotalOcc(0.0), SimpVentVolMin(9.9e9), MechVentVolTotalStdDen(0.0), MechVentVolTotalOccStdDen(0.0), InfilVolTotalStdDen(0.0),
+ InfilVolTotalOccStdDen(0.0), AFNInfilVolTotalStdDen(0.0), AFNInfilVolTotalOccStdDen(0.0), AFNVentVolTotalStdDen(0.0),
+ AFNVentVolTotalOccStdDen(0.0), SimpVentVolTotalStdDen(0.0), SimpVentVolTotalOccStdDen(0.0), VozMin(0.0), VozTargetTotal(0.0),
+ VozTargetTotalOcc(0.0), VozTargetTimeBelow(0.0), VozTargetTimeAt(0.0), VozTargetTimeAbove(0.0), VozTargetTimeBelowOcc(0.0),
+ VozTargetTimeAtOcc(0.0), VozTargetTimeAboveOcc(0.0), TotVentTimeNonZeroUnocc(0.0), SHGSAnZoneEqHt(0.0), SHGSAnZoneEqCl(0.0),
+ SHGSAnHvacATUHt(0.0), SHGSAnHvacATUCl(0.0), SHGSAnSurfHt(0.0), SHGSAnSurfCl(0.0), SHGSAnPeoplAdd(0.0), SHGSAnLiteAdd(0.0),
+ SHGSAnEquipAdd(0.0), SHGSAnWindAdd(0.0), SHGSAnIzaAdd(0.0), SHGSAnInfilAdd(0.0), SHGSAnOtherAdd(0.0), SHGSAnEquipRem(0.0),
+ SHGSAnWindRem(0.0), SHGSAnIzaRem(0.0), SHGSAnInfilRem(0.0), SHGSAnOtherRem(0.0), clPtTimeStamp(0), clPeak(0.0), SHGSClHvacHt(0.0),
+ SHGSClHvacCl(0.0), SHGSClHvacATUHt(0.0), SHGSClHvacATUCl(0.0), SHGSClSurfHt(0.0), SHGSClSurfCl(0.0), SHGSClPeoplAdd(0.0),
+ SHGSClLiteAdd(0.0), SHGSClEquipAdd(0.0), SHGSClWindAdd(0.0), SHGSClIzaAdd(0.0), SHGSClInfilAdd(0.0), SHGSClOtherAdd(0.0),
+ SHGSClEquipRem(0.0), SHGSClWindRem(0.0), SHGSClIzaRem(0.0), SHGSClInfilRem(0.0), SHGSClOtherRem(0.0), htPtTimeStamp(0), htPeak(0.0),
+ SHGSHtHvacHt(0.0), SHGSHtHvacCl(0.0), SHGSHtHvacATUHt(0.0), SHGSHtHvacATUCl(0.0), SHGSHtSurfHt(0.0), SHGSHtSurfCl(0.0),
+ SHGSHtPeoplAdd(0.0), SHGSHtLiteAdd(0.0), SHGSHtEquipAdd(0.0), SHGSHtWindAdd(0.0), SHGSHtIzaAdd(0.0), SHGSHtInfilAdd(0.0),
+ SHGSHtOtherAdd(0.0), SHGSHtEquipRem(0.0), SHGSHtWindRem(0.0), SHGSHtIzaRem(0.0), SHGSHtInfilRem(0.0), SHGSHtOtherRem(0.0),
+ emiEnvelopConv(0.0), emiZoneExfiltration(0.0), emiZoneExhaust(0.0), emiHVACRelief(0.0), emiHVACReject(0.0), emiTotHeat(0.0)
{
}
};
diff --git a/src/EnergyPlus/DataSizing.cc b/src/EnergyPlus/DataSizing.cc
index b6d73c54bb0..3ccd5d8a5a8 100644
--- a/src/EnergyPlus/DataSizing.cc
+++ b/src/EnergyPlus/DataSizing.cc
@@ -50,6 +50,8 @@
#include
#include
#include
+#include
+#include
namespace EnergyPlus {
@@ -58,8 +60,6 @@ namespace DataSizing {
// MODULE INFORMATION:
// AUTHOR Fred Buhl
// DATE WRITTEN December 2000
- // MODIFIED na
- // RE-ENGINEERED na
// PURPOSE OF THIS MODULE:
// This data-only module contains type definitions and variables
@@ -67,19 +67,6 @@ namespace DataSizing {
// capacities. This data is available to the HVAC component modules
// for their self sizing calculations.
- // REFERENCES:
- // na
-
- // OTHER NOTES:
- // na
-
- // Using/Aliasing
- // Data
- // -only module should be available to other modules and routines.
- // Thus, all variables in this module must be PUBLIC.
-
- // MODULE PARAMETER DEFINITIONS:
-
// parameters for outside air flow method
int const NumOAFlowMethods(9);
@@ -198,13 +185,6 @@ namespace DataSizing {
int const GlobalCoolingSizingFactorMode(103);
int const LoopComponentSizingFactorMode(104);
- // DERIVED TYPE DEFINITIONS:
-
- // INTERFACE BLOCK SPECIFICATIONS
- // na
-
- // MODULE VARIABLE DECLARATIONS:
-
// days; includes effects of user multiplier
// and user set flows)
// of user input multiplier and flows
@@ -965,6 +945,31 @@ namespace DataSizing {
}
}
+ Real64 ZoneAirDistributionData::calculateEz(EnergyPlusData &state, int const ZoneNum) // Zone index
+ {
+ Real64 zoneEz = 1.0;
+ // Calc the zone supplied OA flow rate counting the zone air distribution effectiveness
+ // First check whether the zone air distribution effectiveness schedule exists, if yes uses it;
+ // otherwise uses the inputs of zone distribution effectiveness in cooling mode or heating mode
+ if (this->ZoneADEffSchPtr > 0) {
+ // Get schedule value for the zone air distribution effectiveness
+ zoneEz = ScheduleManager::GetCurrentScheduleValue(state, this->ZoneADEffSchPtr);
+ } else {
+ Real64 zoneLoad = state.dataZoneEnergyDemand->ZoneSysEnergyDemand(ZoneNum).TotalOutputRequired;
+
+ // Zone in cooling mode
+ if (zoneLoad < 0.0) zoneEz = this->ZoneADEffCooling;
+
+ // Zone in heating mode
+ if (zoneLoad > 0.0) zoneEz = this->ZoneADEffHeating;
+ }
+ if (zoneEz <= 0.0) {
+ // Enforce defaults
+ zoneEz = 1.0;
+ }
+ return zoneEz;
+ }
+
} // namespace DataSizing
} // namespace EnergyPlus
diff --git a/src/EnergyPlus/DataSizing.hh b/src/EnergyPlus/DataSizing.hh
index ce29154a20a..c5a3bfa1337 100644
--- a/src/EnergyPlus/DataSizing.hh
+++ b/src/EnergyPlus/DataSizing.hh
@@ -416,7 +416,9 @@ namespace DataSizing {
Real64 HeatDesTempDiff; // zone design heating supply air temperature difference [deltaC]
Real64 CoolDesHumRat; // zone design cooling supply air humidity ratio [kgWater/kgDryAir]
Real64 HeatDesHumRat; // zone design heating supply air humidity ratio [kgWater/kgDryAir]
- int ZoneDesignSpecOAIndex; // index to DesignSpecification:OutdoorAir object
+ int ZoneAirDistributionIndex; // index to DesignSpecification:ZoneAirDistribution object
+ int ZoneDesignSpecOAIndex; // index to DesignSpecification:OutdoorAir object
+
int OADesMethod; // choice of how to calculate minimum outside air;
// 1 = m3/s per person; 2 = m3/s per zone; 3 = m3/s per zone area;
// 4 = sum of flow from 3 OA input fields;
@@ -588,7 +590,7 @@ namespace DataSizing {
// Default Constructor
ZoneSizingData()
: ZnCoolDgnSAMethod(0), ZnHeatDgnSAMethod(0), CoolDesTemp(0.0), HeatDesTemp(0.0), CoolDesTempDiff(0.0), HeatDesTempDiff(0.0),
- CoolDesHumRat(0.0), HeatDesHumRat(0.0), ZoneDesignSpecOAIndex(0), OADesMethod(0), DesOAFlowPPer(0.0), DesOAFlowPerArea(0.0),
+ CoolDesHumRat(0.0), HeatDesHumRat(0.0), ZoneAirDistributionIndex(0), ZoneDesignSpecOAIndex(0), OADesMethod(0), DesOAFlowPPer(0.0), DesOAFlowPerArea(0.0),
DesOAFlow(0.0), CoolAirDesMethod(0), InpDesCoolAirFlow(0.0), DesCoolMinAirFlowPerArea(0.0), DesCoolMinAirFlow(0.0),
DesCoolMinAirFlowFrac(0.0), HeatAirDesMethod(0), InpDesHeatAirFlow(0.0), DesHeatMaxAirFlowPerArea(0.0), DesHeatMaxAirFlow(0.0),
DesHeatMaxAirFlowFrac(0.0), HeatSizingFactor(0.0), CoolSizingFactor(0.0), AccountForDOAS(false), DOASControlStrategy(0),
@@ -1158,6 +1160,8 @@ namespace DataSizing {
: ZoneADEffCooling(1.0), ZoneADEffHeating(1.0), ZoneSecondaryRecirculation(0.0), ZoneADEffSchPtr(0), ZoneVentilationEff(0.0)
{
}
+
+ Real64 calculateEz(EnergyPlusData &state, int const ZoneNum); // Zone index
};
// Object Data
diff --git a/src/EnergyPlus/DataSurfaces.cc b/src/EnergyPlus/DataSurfaces.cc
index 411a7ff7c0d..b905c74d5dd 100644
--- a/src/EnergyPlus/DataSurfaces.cc
+++ b/src/EnergyPlus/DataSurfaces.cc
@@ -237,57 +237,6 @@ namespace DataSurfaces {
int const InConvWinLoc_WindowBelowThis(4); // this is a wall with window below it
int const InConvWinLoc_LargePartOfExteriorWall(5); // this is a big window taking up most of wall
- // Parameters for window shade status
- int const NoShade(-1);
- int const ShadeOff(0);
- int const IntShadeOn(1); // Interior shade on
- int const SwitchableGlazing(2);
- int const ExtShadeOn(3); // Exterior shade on
- int const ExtScreenOn(4); // Exterior screen on
- int const IntBlindOn(6); // Interior blind on
- int const ExtBlindOn(7); // Exterior blind on
- int const BGShadeOn(8); // Between-glass shade on
- int const BGBlindOn(9); // Between-glass blind on
- int const IntShadeConditionallyOff(10);
- int const GlassConditionallyLightened(20);
- int const ExtShadeConditionallyOff(30);
- int const IntBlindConditionallyOff(60);
- int const ExtBlindConditionallyOff(70);
-
- // WindowShadingControl Shading Types
- int const WSC_ST_NoShade(0);
- int const WSC_ST_InteriorShade(1);
- int const WSC_ST_SwitchableGlazing(2);
- int const WSC_ST_ExteriorShade(3);
- int const WSC_ST_InteriorBlind(4);
- int const WSC_ST_ExteriorBlind(5);
- int const WSC_ST_BetweenGlassShade(6);
- int const WSC_ST_BetweenGlassBlind(7);
- int const WSC_ST_ExteriorScreen(8);
-
- // WindowShadingControl Control Types
- int const WSCT_AlwaysOn(1); // AlwaysOn
- int const WSCT_AlwaysOff(2); // AlwaysOff
- int const WSCT_OnIfScheduled(3); // OnIfScheduleAllows
- int const WSCT_HiSolar(4); // OnIfHighSolarOnWindow
- int const WSCT_HiHorzSolar(5); // OnIfHighHorizontalSolar
- int const WSCT_HiOutAirTemp(6); // OnIfHighOutsideAirTemp
- int const WSCT_HiZoneAirTemp(7); // OnIfHighZoneAirTemp
- int const WSCT_HiZoneCooling(8); // OnIfHighZoneCooling
- int const WSCT_HiGlare(9); // OnIfHighGlare
- int const WSCT_MeetDaylIlumSetp(10); // MeetDaylightIlluminanceSetpoint
- int const WSCT_OnNightLoOutTemp_OffDay(11); // OnNightIfLowOutsideTemp/OffDay
- int const WSCT_OnNightLoInTemp_OffDay(12); // OnNightIfLowInsideTemp/OffDay
- int const WSCT_OnNightIfHeating_OffDay(13); // OnNightIfHeating/OffDay
- int const WSCT_OnNightLoOutTemp_OnDayCooling(14); // OnNightIfLowOutsideTemp/OnDayIfCooling
- int const WSCT_OnNightIfHeating_OnDayCooling(15); // OnNightIfHeating/OnDayIfCooling
- int const WSCT_OffNight_OnDay_HiSolarWindow(16); // OffNight/OnDayIfCoolingAndHighSolarOnWindow
- int const WSCT_OnNight_OnDay_HiSolarWindow(17); // OnNight/OnDayIfCoolingAndHighSolarOnWindow
- int const WSCT_OnHiOutTemp_HiSolarWindow(18); // OnIfHighOutsideAirTempAndHighSolarOnWindow
- int const WSCT_OnHiOutTemp_HiHorzSolar(19); // OnIfHighOutsideAirTempAndHighHorizontalSolar
- int const WSCT_OnHiZoneTemp_HiSolarWindow(20); // OnIfHighZoneAirTempAndHighSolarOnWindow
- int const WSCT_OnHiZoneTemp_HiHorzSolar(21); // OnIfHighZoneAirTempAndHighHorizontalSolar
-
// WindowShadingControl Slat Angle Control for Blinds
int const WSC_SAC_FixedSlatAngle(1);
int const WSC_SAC_ScheduledSlatAngle(2);
@@ -511,13 +460,13 @@ namespace DataSurfaces {
Array1D SurfWinProfileAngHor; // Horizontal beam solar profile angle (degrees)
Array1D SurfWinProfileAngVert; // Vertical beam solar profile angle (degrees)
- Array1D SurfWinShadingFlag; // -1: window has no shading device
+ Array1D SurfWinShadingFlag; // -1: window has no shading device
Array1D SurfWinShadingFlagEMSOn; // EMS control flag, true if EMS is controlling ShadingFlag with ShadingFlagEMSValue
- Array1D SurfWinShadingFlagEMSValue; // EMS control value for Shading Flag
+ Array1D SurfWinShadingFlagEMSValue; // EMS control value for Shading Flag
Array1D SurfWinStormWinFlag; // -1: Storm window not applicable; 0: Window has storm window but it is off 1: Window has storm window and it is on
Array1D SurfWinStormWinFlagPrevDay; // Previous time step value of StormWinFlag
Array1D SurfWinFracTimeShadingDeviceOn; // For a single time step, = 0.0 if no shading device or shading device is off = 1.0 if shading device is on; For time intervals longer than a time step, = fraction of time that shading device is on.
- Array1D SurfWinExtIntShadePrevTS; // 1 if exterior or interior blind or shade in place previous time step;0 otherwise
+ Array1D SurfWinExtIntShadePrevTS; // 1 if exterior or interior blind or shade in place previous time step;0 otherwise
Array1D SurfWinHasShadeOrBlindLayer; // mark as true if the window construction has a shade or a blind layer
Array1D SurfWinSurfDayLightInit; // surface has been initialized for following 5 arrays
Array1D SurfWinDaylFacPoint; // Pointer to daylight factors for the window
@@ -608,6 +557,7 @@ namespace DataSurfaces {
bool AnyHeatBalanceInsideSourceTerm(false); // True if any SurfaceProperty:HeatBalanceSourceTerm inside face used
bool AnyHeatBalanceOutsideSourceTerm(false); // True if any SurfaceProperty:HeatBalanceSourceTerm outside face used
+
// SUBROUTINE SPECIFICATIONS FOR MODULE DataSurfaces:
// Object Data
diff --git a/src/EnergyPlus/DataSurfaces.hh b/src/EnergyPlus/DataSurfaces.hh
index 322c36d8c7b..a579035c041 100644
--- a/src/EnergyPlus/DataSurfaces.hh
+++ b/src/EnergyPlus/DataSurfaces.hh
@@ -65,6 +65,33 @@
#include
#include
+
+#define BITF(B) (1 << (int(B)))
+#define BITF_TEST_ANY(V, B) (((V) & (B)) != 0)
+
+// IS_SHADED is the flag to indicate window has no shading device or shading device is off, and no daylight glare control
+// original expression: SHADE_FLAG == ShadeOff || SHADE_FLAG == ShadeOff
+#define NOT_SHADED(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), BITF(WinShadingType::NoShade) | BITF(WinShadingType::ShadeOff))
+
+// IS_SHADED is the flag to indicate window has shade on or temporarily off but may be triggered on later to control daylight glare
+// original expression: SHADE_FLAG > ShadeOff
+#define IS_SHADED(SHADE_FLAG) !NOT_SHADED(SHADE_FLAG)
+
+// IS_SHADED_NO_GLARE is the flag to indicate window has shade and no daylight glare control
+// original expression: IntShade <= SHADE_FLAG <= BGBlind
+#define IS_SHADED_NO_GLARE_CTRL(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), \
+ BITF(WinShadingType::IntShade) | BITF(WinShadingType::SwitchableGlazing) | BITF(WinShadingType::ExtShade) | BITF(WinShadingType::ExtScreen) |\
+ BITF(WinShadingType::IntBlind) | BITF(WinShadingType::ExtBlind) | BITF(WinShadingType::BGShade) | BITF(WinShadingType::BGBlind))
+
+// ANY_SHADE: if SHADE_FLAG is any of the shading types including interior, exterior or between glass shades
+#define ANY_SHADE(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), BITF(WinShadingType::IntShade) | BITF(WinShadingType::ExtShade) | BITF(WinShadingType::BGShade))
+#define ANY_SHADE_SCREEN(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), BITF(WinShadingType::IntShade) | BITF(WinShadingType::ExtShade) | BITF(WinShadingType::BGShade) | BITF(WinShadingType::ExtScreen))
+#define ANY_BLIND(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), BITF(WinShadingType::IntBlind) | BITF(WinShadingType::ExtBlind) | BITF(WinShadingType::BGBlind))
+#define ANY_INTERIOR_SHADE_BLIND(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), BITF(WinShadingType::IntShade) | BITF(WinShadingType::IntBlind))
+#define ANY_EXTERIOR_SHADE_BLIND_SCREEN(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), BITF(WinShadingType::ExtShade) | BITF(WinShadingType::ExtBlind) | BITF(WinShadingType::ExtScreen))
+#define ANY_BETWEENGLASS_SHADE_BLIND(SHADE_FLAG) BITF_TEST_ANY(BITF(SHADE_FLAG), BITF(WinShadingType::BGShade) | BITF(WinShadingType::BGBlind))
+
+
namespace EnergyPlus {
// Forward declarations
@@ -122,6 +149,52 @@ namespace DataSurfaces {
Count // The counter representing the total number of surface class, always stays at the bottom
};
+ enum class WinShadingType : int {
+ INVALID = -1,
+ NoShade = 0,
+ ShadeOff = 1,
+ IntShade = 2,
+ SwitchableGlazing = 3,
+ ExtShade = 4,
+ ExtScreen = 5,
+ IntBlind = 6,
+ ExtBlind = 7,
+ BGShade = 8,
+ BGBlind = 9,
+ IntShadeConditionallyOff = 10,
+ GlassConditionallyLightened = 11,
+ ExtShadeConditionallyOff = 12,
+ IntBlindConditionallyOff = 13,
+ ExtBlindConditionallyOff = 14,
+ BGShadeConditionallyOff = 15,
+ BGBlindConditionallyOff = 16
+ }; // Valid window shading types: IntShade <= Type <= BGBlind; the rest are shading status
+
+ enum class WindowShadingControlType : int{
+ UnControlled = 0,
+ AlwaysOn = 1,
+ AlwaysOff = 2,
+ OnIfScheduled = 3,
+ HiSolar = 4,
+ HiHorzSolar = 5,
+ HiOutAirTemp = 6,
+ HiZoneAirTemp = 7,
+ HiZoneCooling = 8,
+ HiGlare = 9,
+ MeetDaylIlumSetp = 10,
+ OnNightLoOutTemp_OffDay = 11,
+ OnNightLoInTemp_OffDay = 12,
+ OnNightIfHeating_OffDay = 13,
+ OnNightLoOutTemp_OnDayCooling = 14,
+ OnNightIfHeating_OnDayCooling = 15,
+ OffNight_OnDay_HiSolarWindow = 16,
+ OnNight_OnDay_HiSolarWindow = 17,
+ OnHiOutTemp_HiSolarWindow = 18,
+ OnHiOutTemp_HiHorzSolar = 19,
+ OnHiZoneTemp_HiSolarWindow = 20,
+ OnHiZoneTemp_HiHorzSolar = 21
+ };
+
// Parameters to indicate exterior boundary conditions for use with
// the Surface derived type (see below):
// Note: Positive values correspond to an interzone adjacent surface
@@ -241,57 +314,6 @@ namespace DataSurfaces {
extern int const InConvWinLoc_WindowBelowThis; // this is a wall with window below it
extern int const InConvWinLoc_LargePartOfExteriorWall; // this is a big window taking up most of wall
- // Parameters for window shade status
- extern int const NoShade;
- extern int const ShadeOff;
- extern int const IntShadeOn; // Interior shade on
- extern int const SwitchableGlazing;
- extern int const ExtShadeOn; // Exterior shade on
- extern int const ExtScreenOn; // Exterior screen on
- extern int const IntBlindOn; // Interior blind on
- extern int const ExtBlindOn; // Exterior blind on
- extern int const BGShadeOn; // Between-glass shade on
- extern int const BGBlindOn; // Between-glass blind on
- extern int const IntShadeConditionallyOff;
- extern int const GlassConditionallyLightened;
- extern int const ExtShadeConditionallyOff;
- extern int const IntBlindConditionallyOff;
- extern int const ExtBlindConditionallyOff;
-
- // WindowShadingControl Shading Types
- extern int const WSC_ST_NoShade;
- extern int const WSC_ST_InteriorShade;
- extern int const WSC_ST_SwitchableGlazing;
- extern int const WSC_ST_ExteriorShade;
- extern int const WSC_ST_InteriorBlind;
- extern int const WSC_ST_ExteriorBlind;
- extern int const WSC_ST_BetweenGlassShade;
- extern int const WSC_ST_BetweenGlassBlind;
- extern int const WSC_ST_ExteriorScreen;
-
- // WindowShadingControl Control Types
- extern int const WSCT_AlwaysOn; // AlwaysOn
- extern int const WSCT_AlwaysOff; // AlwaysOff
- extern int const WSCT_OnIfScheduled; // OnIfScheduleAllows
- extern int const WSCT_HiSolar; // OnIfHighSolarOnWindow
- extern int const WSCT_HiHorzSolar; // OnIfHighHorizontalSolar
- extern int const WSCT_HiOutAirTemp; // OnIfHighOutsideAirTemp
- extern int const WSCT_HiZoneAirTemp; // OnIfHighZoneAirTemp
- extern int const WSCT_HiZoneCooling; // OnIfHighZoneCooling
- extern int const WSCT_HiGlare; // OnIfHighGlare
- extern int const WSCT_MeetDaylIlumSetp; // MeetDaylightIlluminanceSetpoint
- extern int const WSCT_OnNightLoOutTemp_OffDay; // OnNightIfLowOutsideTemp/OffDay
- extern int const WSCT_OnNightLoInTemp_OffDay; // OnNightIfLowInsideTemp/OffDay
- extern int const WSCT_OnNightIfHeating_OffDay; // OnNightIfHeating/OffDay
- extern int const WSCT_OnNightLoOutTemp_OnDayCooling; // OnNightIfLowOutsideTemp/OnDayIfCooling
- extern int const WSCT_OnNightIfHeating_OnDayCooling; // OnNightIfHeating/OnDayIfCooling
- extern int const WSCT_OffNight_OnDay_HiSolarWindow; // OffNight/OnDayIfCoolingAndHighSolarOnWindow
- extern int const WSCT_OnNight_OnDay_HiSolarWindow; // OnNight/OnDayIfCoolingAndHighSolarOnWindow
- extern int const WSCT_OnHiOutTemp_HiSolarWindow; // OnIfHighOutsideAirTempAndHighSolarOnWindow
- extern int const WSCT_OnHiOutTemp_HiHorzSolar; // OnIfHighOutsideAirTempAndHighHorizontalSolar
- extern int const WSCT_OnHiZoneTemp_HiSolarWindow; // OnIfHighZoneAirTempAndHighSolarOnWindow
- extern int const WSCT_OnHiZoneTemp_HiHorzSolar; // OnIfHighZoneAirTempAndHighHorizontalSolar
-
// WindowShadingControl Slat Angle Control for Blinds
extern int const WSC_SAC_FixedSlatAngle;
extern int const WSC_SAC_ScheduledSlatAngle;
@@ -492,6 +514,7 @@ namespace DataSurfaces {
extern Array1D SurfWinConvHeatGainToZoneAir; // Convective heat gain to zone air from window gap airflow (W)
extern Array1D SurfWinRetHeatGainToZoneAir; // Convective heat gain to return air sent to zone [W]
extern Array1D SurfWinDividerHeatGain;
+
extern Array1D SurfWinBlTsolBmBm; // Time-step value of blind beam-beam solar transmittance (-)
extern Array1D SurfWinBlTsolBmDif; // Time-step value of blind beam-diffuse solar transmittance (-)
extern Array1D SurfWinBlTsolDifDif; // Time-step value of blind diffuse-diffuse solar transmittance (-)
@@ -534,16 +557,16 @@ namespace DataSurfaces {
extern Array1D SurfWinProfileAngHor; // Horizontal beam solar profile angle (degrees)
extern Array1D SurfWinProfileAngVert; // Vertical beam solar profile angle (degrees)
- extern Array1D SurfWinShadingFlag; // -1: window has no shading device
+ extern Array1D SurfWinShadingFlag; // -1: window has no shading device
extern Array1D SurfWinShadingFlagEMSOn; // EMS control flag, true if EMS is controlling ShadingFlag with ShadingFlagEMSValue
- extern Array1D SurfWinShadingFlagEMSValue; // EMS control value for Shading Flag
+ extern Array1D SurfWinShadingFlagEMSValue; // EMS control value for Shading Flag
extern Array1D
SurfWinStormWinFlag; // -1: Storm window not applicable; 0: Window has storm window but it is off 1: Window has storm window and it is on
extern Array1D SurfWinStormWinFlagPrevDay; // Previous time step value of StormWinFlag
extern Array1D
SurfWinFracTimeShadingDeviceOn; // For a single time step, = 0.0 if no shading device or shading device is off = 1.0 if shading device is on;
// For time intervals longer than a time step, = fraction of time that shading device is on.
- extern Array1D SurfWinExtIntShadePrevTS; // 1 if exterior or interior blind or shade in place previous time step;0 otherwise
+ extern Array1D SurfWinExtIntShadePrevTS; // 1 if exterior or interior blind or shade in place previous time step;0 otherwise
extern Array1D SurfWinHasShadeOrBlindLayer; // mark as true if the window construction has a shade or a blind layer
extern Array1D SurfWinSurfDayLightInit; // surface has been initialized for following 5 arrays
extern Array1D SurfWinDaylFacPoint; // Pointer to daylight factors for the window
@@ -1137,7 +1160,7 @@ namespace DataSurfaces {
std::string Name; // User supplied name of this set of shading control data
int ZoneIndex; // number of the zone referenced
int SequenceNumber; // Shading control sequence number
- int ShadingType; // Shading type (InteriorShade, SwitchableGlazing,
+ WinShadingType ShadingType; // Shading type (InteriorShade, SwitchableGlazing,
// CHARACTER(len=32) :: ShadingType = ' ' ! Shading type (InteriorShade, SwitchableGlazing,
// ExteriorShade,InteriorBlind,ExteriorBlind,BetweenGlassShade,
// BetweenGlassBlind, or ExteriorScreen)
@@ -1149,7 +1172,7 @@ namespace DataSurfaces {
// ExteriorShade,BetweenGlassShade,InteriorBlind,ExteriorBlind,BetweenGlassBlind,
// ExteriorScreen;
// this must be a Material:WindowShade, Material:WindowScreen, or Material:WindowBlind
- int ShadingControlType; // Takes one of the following values that specifies type of shading control
+ WindowShadingControlType ShadingControlType; // Takes one of the following values that specifies type of shading control
// CHARACTER(len=60) :: ShadingControlType =' ' ! Takes one of the following values that specifies type of shading control
// (control is active only when schedule value = 1; if no schedule
// specified, schedule value defaults to 1)
@@ -1223,7 +1246,7 @@ namespace DataSurfaces {
// Default Constructor
WindowShadingControlData()
- : ZoneIndex(0), SequenceNumber(0), ShadingType(WSC_ST_NoShade), getInputShadedConstruction(0), ShadingDevice(0), ShadingControlType(0),
+ : ZoneIndex(0), SequenceNumber(0), ShadingType(WinShadingType::NoShade), getInputShadedConstruction(0), ShadingDevice(0), ShadingControlType(WindowShadingControlType::UnControlled),
Schedule(0), SetPoint(0.0), SetPoint2(0.0), ShadingControlIsScheduled(false), GlareControlIsActive(false), SlatAngleSchedule(0),
SlatAngleControlForBlinds(0), DaylightControlIndex(0), MultiSurfaceCtrlIsGroup(false), FenestrationCount(0)
{
diff --git a/src/EnergyPlus/DataZoneEquipment.cc b/src/EnergyPlus/DataZoneEquipment.cc
index dcf7f621b25..7639d978042 100644
--- a/src/EnergyPlus/DataZoneEquipment.cc
+++ b/src/EnergyPlus/DataZoneEquipment.cc
@@ -1282,8 +1282,6 @@ namespace EnergyPlus::DataZoneEquipment {
// FUNCTION INFORMATION:
// AUTHOR Richard Raustad, FSEC
// DATE WRITTEN October 2012
- // MODIFIED na
- // RE-ENGINEERED na
// PURPOSE OF THIS FUNCTION:
// This function returns the air volume flow rate based on DesignSpecification:OutdoorAir object.
@@ -1293,7 +1291,6 @@ namespace EnergyPlus::DataZoneEquipment {
// Sizing does not use occupancy or min OA schedule and will call with flags set to FALSE
// Ventilation Rate Procedure uses occupancy schedule based on user input.
- // Using/Aliasing
using DataHeatBalance::People;
using DataHeatBalance::TotPeople;
using DataHeatBalance::Zone;
@@ -1461,7 +1458,6 @@ namespace EnergyPlus::DataZoneEquipment {
}
} else if (SELECT_CASE_var == ZOAM_ProportionalControlSchOcc || SELECT_CASE_var == ZOAM_ProportionalControlDesOcc) {
- Real64 ZoneEz = 1.0;
ZoneOAPeople = 0.0;
if (OARequirements(DSOAPtr).OAFlowMethod != ZOAM_ProportionalControlDesOcc) {
ZoneOAPeople = ZoneIntGain(ActualZoneNum).NOFOCC * Zone(ActualZoneNum).Multiplier * Zone(ActualZoneNum).ListMultiplier *
@@ -1481,8 +1477,8 @@ namespace EnergyPlus::DataZoneEquipment {
}
ZoneOAArea = Zone(ActualZoneNum).FloorArea * Zone(ActualZoneNum).Multiplier * Zone(ActualZoneNum).ListMultiplier *
OARequirements(DSOAPtr).OAFlowPerArea;
- ZoneOAMin = ZoneOAArea / ZoneEz;
- ZoneOAMax = (ZoneOAArea + ZoneOAPeople) / ZoneEz;
+ ZoneOAMin = ZoneOAArea;
+ ZoneOAMax = (ZoneOAArea + ZoneOAPeople);
if (Zone(ActualZoneNum).ZoneContamControllerSchedIndex > 0.0) {
// Check the availability schedule value for ZoneControl:ContaminantController
ZoneContamControllerSched = GetCurrentScheduleValue(state, Zone(ActualZoneNum).ZoneContamControllerSchedIndex);
@@ -1553,7 +1549,7 @@ namespace EnergyPlus::DataZoneEquipment {
}
}
- OAVolumeFlowRate = ZoneOAMax / ZoneEz;
+ OAVolumeFlowRate = ZoneOAMax;
} else {
if (state.dataContaminantBalance->ZoneAirCO2(ActualZoneNum) <= ZoneMinCO2) {
@@ -1611,19 +1607,19 @@ namespace EnergyPlus::DataZoneEquipment {
}
}
}
- OAVolumeFlowRate = ZoneOAMax / ZoneEz;
+ OAVolumeFlowRate = ZoneOAMax;
}
} else {
// ZoneOAPeople is less than or equal to zero
- OAVolumeFlowRate = ZoneOAMax / ZoneEz;
+ OAVolumeFlowRate = ZoneOAMax;
}
} else {
// ZoneControl:ContaminantController is scheduled off (not available)
- OAVolumeFlowRate = ZoneOAMax / ZoneEz;
+ OAVolumeFlowRate = ZoneOAMax;
}
} else {
// "Carbon Dioxide Control Availability Schedule" for ZoneControl:ContaminantController not found
- OAVolumeFlowRate = ZoneOAMax / ZoneEz;
+ OAVolumeFlowRate = ZoneOAMax;
}
} else {
diff --git a/src/EnergyPlus/DataZoneEquipment.hh b/src/EnergyPlus/DataZoneEquipment.hh
index 7bc2c5e7411..d0fcde736f8 100644
--- a/src/EnergyPlus/DataZoneEquipment.hh
+++ b/src/EnergyPlus/DataZoneEquipment.hh
@@ -289,6 +289,8 @@ namespace DataZoneEquipment {
// true when zone has in-ceiling HVAC
bool ZoneHasAirFlowWindowReturn; // true if zone has an airflow window (WindowProperty:AirflowControl) with destination=ReturnAir
bool ZoneHasAirLoopWithOASys; // true if zone is served by one or more airloops with an outdoor air system
+ int ZoneAirDistributionIndex; // index to DesignSpecification:ZoneAirDistribution object
+ int ZoneDesignSpecOAIndex; // index to DesignSpecification:OutdoorAir object
// Default Constructor
EquipConfiguration()
@@ -296,7 +298,7 @@ namespace DataZoneEquipment {
NumReturnNodes(0), NumReturnFlowBasisNodes(0), ReturnFlowSchedPtrNum(0), FlowError(false), ZonalSystemOnly(false), IsControlled(false),
ZoneExh(0.0), ZoneExhBalanced(0.0), PlenumMassFlow(0.0), ExcessZoneExh(0.0), TotAvailAirLoopOA(0.0), TotInletAirMassFlowRate(0.0),
TotExhaustAirMassFlowRate(0.0), InFloorActiveElement(false), InWallActiveElement(false), InCeilingActiveElement(false),
- ZoneHasAirFlowWindowReturn(false), ZoneHasAirLoopWithOASys(false)
+ ZoneHasAirFlowWindowReturn(false), ZoneHasAirLoopWithOASys(false), ZoneAirDistributionIndex(0), ZoneDesignSpecOAIndex(0)
{
}
};
diff --git a/src/EnergyPlus/DaylightingManager.cc b/src/EnergyPlus/DaylightingManager.cc
index 43b14aa9728..e0f5393a3d5 100644
--- a/src/EnergyPlus/DaylightingManager.cc
+++ b/src/EnergyPlus/DaylightingManager.cc
@@ -863,7 +863,7 @@ namespace EnergyPlus::DaylightingManager {
int IWin; // Window counter
int IWin2; // Secondary window counter (for TDD:DOME object, if exists)
int InShelfSurf; // Inside daylighting shelf surface number
- int ShType; // Window shading type
+ WinShadingType ShType; // Window shading type
int BlNum; // Window Blind Number
int LSHCAL; // Interior shade calculation flag: 0=not yet
// calculated, 1=already calculated
@@ -1262,7 +1262,7 @@ namespace EnergyPlus::DaylightingManager {
int IWin; // Window counter
int IWin2; // Secondary window counter (for TDD:DOME object, if exists)
int InShelfSurf; // Inside daylighting shelf surface number
- int ShType; // Window shading type
+ WinShadingType ShType; // Window shading type
int BlNum; // Window Blind Number
int LSHCAL; // Interior shade calculation flag: 0=not yet
// calculated, 1=already calculated
@@ -1612,7 +1612,7 @@ namespace EnergyPlus::DaylightingManager {
int &LSHCAL, // Interior shade calculation flag: 0=not yet calculated, 1=already calculated
int &InShelfSurf, // Inside daylighting shelf surface number
int &ICtrl, // Window control counter
- int &ShType, // Window shading type
+ WinShadingType &ShType, // Window shading type
int &BlNum, // Window blind number
Vector3 &WNORM2, // Unit vector normal to window
DataDaylighting::iExtWinType &ExtWinType, // Exterior window type (InZoneExtWin, AdjZoneExtWin, NotInOrAdjZoneExtWin)
@@ -1740,7 +1740,7 @@ namespace EnergyPlus::DaylightingManager {
}
ICtrl = Surface(IWin).activeWindowShadingControl;
- ShType = WSC_ST_NoShade; // 'NOSHADE'
+ ShType = WinShadingType::NoShade; // 'NOSHADE'
BlNum = 0;
// ScNum = 0; //Unused Set but never used
if (Surface(IWin).HasShadeControl) ShType = WindowShadingControl(ICtrl).ShadingType;
@@ -1781,7 +1781,7 @@ namespace EnergyPlus::DaylightingManager {
// incidence for fully switched (dark) state to that of unswitched state
SurfWinVisTransRatio(IWin) = 1.0;
if (ICtrl > 0) {
- if (ShType == WSC_ST_SwitchableGlazing) {
+ if (ShType == WinShadingType::SwitchableGlazing) {
IConstShaded = Surface(IWin).activeShadedConstruction;
SurfWinVisTransRatio(IWin) =
SafeDivide(POLYF(1.0, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef), POLYF(1.0, state.dataConstruction->Construct(IConst).TransVisBeamCoef));
@@ -3246,7 +3246,7 @@ namespace EnergyPlus::DaylightingManager {
Real64 const TVISB, // Visible transmittance of window for COSB angle of incidence (times light well efficiency, if appropriate)
Real64 const DOMEGA, // Solid angle subtended by window element wrt reference point (steradians)
int const ICtrl, // Window control counter
- int const ShType, // Window shading type
+ WinShadingType const ShType, // Window shading type
int const BlNum, // Window blind number
Real64 const THRAY, // Azimuth of ray from reference point to window element (radians)
Vector3 const &WNORM2, // Unit vector normal to window
@@ -3675,7 +3675,7 @@ namespace EnergyPlus::DaylightingManager {
state.dataDaylightingManager->EDIRSUdisk(iHour, 1) = RAYCOS(3) * TVISS * ObTransDisk; // Bare window
TransBmBmMult = 0.0;
- if (ShType == WSC_ST_ExteriorBlind || ShType == WSC_ST_InteriorBlind || ShType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BLIND(ShType)) {
ProfileAngle(IWin, RAYCOS, Blind(BlNum).SlatOrientation, ProfAng);
// Contribution of beam passing through slats and reaching reference point
for (JB = 1; JB <= MaxSlatAngs; ++JB) {
@@ -3692,7 +3692,7 @@ namespace EnergyPlus::DaylightingManager {
// do this only once for fixed slat blinds
if (!SurfWinMovableSlats(IWin)) break;
}
- } else if (ShType == WSC_ST_ExteriorScreen) {
+ } else if (ShType == WinShadingType::ExtScreen) {
// pass angle from sun to window normal here using PHSUN and THSUN from above and surface angles
// SunAltitudeToWindowNormalAngle = PHSUN - SurfaceWindow(IWin)%Phi
// SunAzimuthToWindowNormalAngle = THSUN - SurfaceWindow(IWin)%Theta
@@ -3729,13 +3729,13 @@ namespace EnergyPlus::DaylightingManager {
XAVWL = 14700.0 * std::sqrt(0.000068 * POSFAC) * double(NWX * NWY) / std::pow(WindowSolidAngleDaylightPoint, 0.8);
state.dataDaylightingManager->AVWLSUdisk(iHour, 1) = XAVWL * TVISS * ObTransDisk; // Bare window
- if (ShType == WSC_ST_ExteriorBlind || ShType == WSC_ST_InteriorBlind || ShType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BLIND(ShType)) {
for (JB = 1; JB <= MaxSlatAngs; ++JB) {
// IF (.NOT. SurfaceWindow(IWin)%MovableSlats .AND. JB > 1) EXIT
state.dataDaylightingManager->AVWLSUdisk(iHour, JB + 1) = XAVWL * TVISS * TransBmBmMult(JB) * ObTransDisk;
if (!SurfWinMovableSlats(IWin)) break;
}
- } else if (ShType == WSC_ST_ExteriorScreen) {
+ } else if (ShType == WinShadingType::ExtScreen) {
state.dataDaylightingManager->AVWLSUdisk(iHour, 2) = XAVWL * TVISS * TransBmBmMult(1) * ObTransDisk;
}
} // Position Factor
@@ -3842,7 +3842,7 @@ namespace EnergyPlus::DaylightingManager {
state.dataDaylightingManager->EDIRSUdisk(iHour, 1) += SunVecMir(3) * SpecReflectance * TVisRefl; // Bare window
TransBmBmMultRefl = 0.0;
- if (ShType == WSC_ST_ExteriorBlind || ShType == WSC_ST_InteriorBlind || ShType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BLIND(ShType)) {
ProfileAngle(IWin, SunVecMir, Blind(BlNum).SlatOrientation, ProfAng);
// Contribution of reflected beam passing through slats and reaching reference point
Real64 const Pi_SlatAng_fac(DataGlobalConstants::Pi / (MaxSlatAngs - 1));
@@ -3859,7 +3859,7 @@ namespace EnergyPlus::DaylightingManager {
if (!SurfWinMovableSlats(IWin)) break;
}
- } else if (ShType == WSC_ST_ExteriorScreen) {
+ } else if (ShType == WinShadingType::ExtScreen) {
// pass angle from sun to window normal here using PHSUN and THSUN from above and
// surface angles SunAltitudeToWindowNormalAngle = PHSUN - SurfaceWindow(IWin)%Phi
// SunAzimuthToWindowNormalAngle = THSUN - SurfaceWindow(IWin)%Theta
@@ -3879,13 +3879,13 @@ namespace EnergyPlus::DaylightingManager {
XAVWL = 14700.0 * std::sqrt(0.000068 * POSFAC) * double(NWX * NWY) /
std::pow(SurfaceWindow(IWin).SolidAngAtRefPtWtd(iRefPoint), 0.8);
state.dataDaylightingManager->AVWLSUdisk(iHour, 1) += XAVWL * TVisRefl * SpecReflectance; // Bare window
- if (ShType == WSC_ST_ExteriorBlind || ShType == WSC_ST_InteriorBlind || ShType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BLIND(ShType)) {
for (JB = 1; JB <= MaxSlatAngs; ++JB) {
// IF(.NOT. SurfaceWindow(IWin)%MovableSlats .AND. JB > 1) EXIT
state.dataDaylightingManager->AVWLSUdisk(iHour, JB + 1) += XAVWL * TVisRefl * SpecReflectance * TransBmBmMultRefl(JB);
if (!SurfWinMovableSlats(IWin)) break;
}
- } else if (ShType == WSC_ST_ExteriorScreen) {
+ } else if (ShType == WinShadingType::ExtScreen) {
state.dataDaylightingManager->AVWLSUdisk(iHour, 2) += XAVWL * TVisRefl * SpecReflectance * TransBmBmMultRefl(1);
}
}
@@ -3898,10 +3898,7 @@ namespace EnergyPlus::DaylightingManager {
} // Last pass
- if ((ICtrl > 0 && (ShType == WSC_ST_InteriorShade || ShType == WSC_ST_ExteriorShade || ShType == WSC_ST_BetweenGlassShade ||
- ShType == WSC_ST_InteriorBlind || ShType == WSC_ST_ExteriorBlind || ShType == WSC_ST_BetweenGlassBlind ||
- ShType == WSC_ST_ExteriorScreen)) ||
- SurfWinSolarDiffusing(IWin)) {
+ if ((ICtrl > 0 && (ANY_BLIND(ShType) || ANY_SHADE_SCREEN(ShType))) || SurfWinSolarDiffusing(IWin)) {
// ----- CASE II -- WINDOW WITH SCREEN, SHADE, BLIND, OR DIFFUSING WINDOW
@@ -4051,7 +4048,7 @@ namespace EnergyPlus::DaylightingManager {
// For switchable glazing put daylighting factors for switched (dark) state in IS=2 location
if (ICtrl > 0) {
- if (WindowShadingControl(ICtrl).ShadingType == WSC_ST_SwitchableGlazing) {
+ if (WindowShadingControl(ICtrl).ShadingType == WinShadingType::SwitchableGlazing) {
VTR = SurfWinVisTransRatio(IWin);
state.dataDaylightingData->ZoneDaylight(ZoneNum).DaylIllFacSky(iHour, 2, ISky, iRefPoint, loopwin) =
state.dataDaylightingData->ZoneDaylight(ZoneNum).DaylIllFacSky(iHour, 1, ISky, iRefPoint, loopwin) * VTR;
@@ -4197,7 +4194,7 @@ namespace EnergyPlus::DaylightingManager {
// For switchable glazing put daylighting factors for switched (dark) state in IS=2 location
if (ICtrl > 0) {
- if (WindowShadingControl(ICtrl).ShadingType == WSC_ST_SwitchableGlazing) {
+ if (WindowShadingControl(ICtrl).ShadingType == WinShadingType::SwitchableGlazing) {
VTR = SurfWinVisTransRatio(IWin);
state.dataDaylightingData->IllumMapCalc(MapNum).DaylIllFacSky(iHour, 2, ISky, iMapPoint, loopwin) =
state.dataDaylightingData->IllumMapCalc(MapNum).DaylIllFacSky(iHour, 1, ISky, iMapPoint, loopwin) * VTR;
@@ -4360,7 +4357,7 @@ namespace EnergyPlus::DaylightingManager {
}
}
- if (WindowShadingControl(Surface(SurfNum).activeWindowShadingControl).ShadingControlType == WSCT_MeetDaylIlumSetp) {
+ if (WindowShadingControl(Surface(SurfNum).activeWindowShadingControl).ShadingControlType == WindowShadingControlType::MeetDaylIlumSetp) {
// Error if window has ShadingControlType = MeetDaylightingIlluminanceSetpoint &
// but is not in a Daylighting:Detailed zone
if (thisSurfEnclosure.TotalEnclosureDaylRefPoints == 0) {
@@ -5591,6 +5588,18 @@ namespace EnergyPlus::DaylightingManager {
} // End of loop over light well objects
}
+ inline int findWinShadingStatus(int const IWin) {
+ // Return the window shading status, 1=unshaded, 2=shaded
+ int WinShadingIndex = 1;
+ bool WinShadedNoGlareControl = IS_SHADED_NO_GLARE_CTRL(SurfWinShadingFlag(IWin));
+ if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
+ (WinShadedNoGlareControl || SurfWinSolarDiffusing(IWin))) {
+ WinShadingIndex = 2;
+ }
+ return WinShadingIndex;
+ }
+
+
void DayltgGlare(EnergyPlusData &state,
int &IL, // Reference point index: 1=first ref pt, 2=second ref pt
Real64 &BLUM, // Window background (surround) luminance (cd/m2)
@@ -5636,30 +5645,18 @@ namespace EnergyPlus::DaylightingManager {
// na
// SUBROUTINE LOCAL VARIABLE DECLARATIONS:
- Real64 GTOT; // Glare constant
- Real64 GTOT1; // Portion of glare constant
- Real64 GTOT2; // Portion of glare constant
- int IWin; // Window counter
- int IS; // Window shading index: 1=unshaded, 2=shaded
- int loop; // Loop index
-
-
- // Initialize glare constant
- GTOT = 0.0;
+ Real64 GTOT = 0.0; // Glare constant
// Loop over exterior windows associated with zone
- for (loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
- IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
- IS = 1;
- if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- ((SurfWinShadingFlag(IWin) >= 1 && SurfWinShadingFlag(IWin) <= 9) || SurfWinSolarDiffusing(IWin)))
- IS = 2;
+ for (int loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
+ int IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
+ int WinShadingIndex = findWinShadingStatus(IWin);
// Conversion from ft-L to cd/m2, with cd/m2 = 0.2936 ft-L, gives the 0.4794 factor
// below, which is (0.2936)**0.6
- GTOT1 = 0.4794 * (std::pow(state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, IS, IL), 1.6)) *
+ Real64 GTOT1 = 0.4794 * (std::pow(state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL), 1.6)) *
std::pow(state.dataDaylightingData->ZoneDaylight(ZoneNum).SolidAngAtRefPtWtd(loop, IL), 0.8);
- GTOT2 = BLUM +
- 0.07 * (std::sqrt(state.dataDaylightingData->ZoneDaylight(ZoneNum).SolidAngAtRefPt(loop, IL))) * state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, IS, IL);
+ Real64 GTOT2 = BLUM +
+ 0.07 * (std::sqrt(state.dataDaylightingData->ZoneDaylight(ZoneNum).SolidAngAtRefPt(loop, IL))) * state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL);
GTOT += GTOT1 / (GTOT2 + 0.000001);
}
@@ -5702,42 +5699,26 @@ namespace EnergyPlus::DaylightingManager {
// INTERFACE BLOCK SPECIFICATIONS: na
// DERIVED TYPE DEFINITIONS: na
- // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
- int IL; // Reference point index: 1=first ref pt, 2=second ref pt
- Real64 GTOT; // Glare constant
- Real64 GTOT1; // Portion of glare constant
- Real64 GTOT2; // Portion of glare constant
- int IWin; // Window counter
- int IS; // Window shading index: 1=unshaded, 2=shaded
- Real64 BacLum; // Background luminance (cd/m2)
- int loop; // Loop index
- int RefPoints; // Number of daylighting reference points in zone
-
- // Initialize glare constant
-
- GTOT = 0.0;
+ Real64 GTOT = 0.0;; // Glare constant
// Calculate background luminance including effect of inter-reflected illuminance from light
// entering zone through its interior windows
- RefPoints = state.dataDaylightingData->ZoneDaylight(ZoneNum).TotalDaylRefPoints;
- for (IL = 1; IL <= RefPoints; ++IL) {
- BacLum = state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) + state.dataDaylightingData->ZoneDaylight(ZoneNum).InterReflIllFrIntWins * state.dataDaylightingData->ZoneDaylight(ZoneNum).AveVisDiffReflect / DataGlobalConstants::Pi;
- BacLum = max(state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumSetPoint(IL) * state.dataDaylightingData->ZoneDaylight(ZoneNum).AveVisDiffReflect / DataGlobalConstants::Pi, BacLum);
+ int RefPoints = state.dataDaylightingData->ZoneDaylight(ZoneNum).TotalDaylRefPoints; // Number of daylighting reference points in zone
+ for (int IL = 1; IL <= RefPoints; ++IL) {
+ Real64 BackgroundLum = state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) + state.dataDaylightingData->ZoneDaylight(ZoneNum).InterReflIllFrIntWins * state.dataDaylightingData->ZoneDaylight(ZoneNum).AveVisDiffReflect / DataGlobalConstants::Pi;
+ BackgroundLum = max(state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumSetPoint(IL) * state.dataDaylightingData->ZoneDaylight(ZoneNum).AveVisDiffReflect / DataGlobalConstants::Pi, BackgroundLum);
// Loop over exterior windows associated with zone
- for (loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
- IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
- IS = 1;
- if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- ((SurfWinShadingFlag(IWin) >= 1 && SurfWinShadingFlag(IWin) <= 9) || SurfWinSolarDiffusing(IWin)))
- IS = 2;
+ for (int loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
+ int IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
+ int WinShadingIndex = findWinShadingStatus(IWin);
// Conversion from ft-L to cd/m2, with cd/m2 = 0.2936 ft-L, gives the 0.4794 factor
// below, which is (0.2936)**0.6
- GTOT1 = 0.4794 * (std::pow(state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, IS, IL), 1.6)) *
+ Real64 GTOT1 = 0.4794 * (std::pow(state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL), 1.6)) *
std::pow(state.dataDaylightingData->ZoneDaylight(ZoneNum).SolidAngAtRefPtWtd(loop, IL), 0.8);
- GTOT2 = BacLum + 0.07 * (std::sqrt(state.dataDaylightingData->ZoneDaylight(ZoneNum).SolidAngAtRefPt(loop, IL))) *
- state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, IS, IL);
+ Real64 GTOT2 = BackgroundLum + 0.07 * (std::sqrt(state.dataDaylightingData->ZoneDaylight(ZoneNum).SolidAngAtRefPt(loop, IL))) *
+ state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL);
GTOT += GTOT1 / (GTOT2 + 0.000001);
}
@@ -6193,9 +6174,6 @@ namespace EnergyPlus::DaylightingManager {
static Vector2 SFSUHR; // Sun source luminance factor for bare/shaded window
static Array1D GLRNDX; // Glare index at reference point
static Array1D GLRNEW; // New glare index at reference point
- int IL; // Reference point index
- int IWin; // Window index
- int IS; // IS=1 for unshaded window, =2 for shaded window
int ISWFLG; // Switchable glazing flag: =1 if one or more windows in a zone
// has switchable glazing that adjusts visible transmittance to just meet
// daylighting setpoint; =0 otherwise.
@@ -6262,7 +6240,7 @@ namespace EnergyPlus::DaylightingManager {
// Initialize reference point illuminance and window background luminance
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
SetPnt(IL) = state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumSetPoint(IL);
state.dataDaylightingManager->DaylIllum(IL) = 0.0;
state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) = 0.0;
@@ -6287,7 +6265,7 @@ namespace EnergyPlus::DaylightingManager {
// Find contribution of each window to the daylight illum and to the glare numerator at each reference point.
// Use shading flags set in WindowShadingManager.
for (loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
- IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
+ int IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
// Added TH 6/29/2009 for thermochromic windows
VTRatio = 1.0;
@@ -6304,8 +6282,11 @@ namespace EnergyPlus::DaylightingManager {
}
}
+ bool ShadedOrDiffusingGlassWin = SurfWinWindowModelType(IWin) != WindowBSDFModel &&
+ (IS_SHADED(SurfWinShadingFlag(IWin)) || SurfWinSolarDiffusing(IWin));
+
// Loop over reference points
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
// Daylight factors for current sun position
for (ISky = 1; ISky <= 4; ++ISky) {
@@ -6338,8 +6319,7 @@ namespace EnergyPlus::DaylightingManager {
state.dataGlobal->WeightPreviousHour * (state.dataDaylightingData->ZoneDaylight(ZoneNum).DaylSourceFacSun(state.dataGlobal->PreviousHour, 1, IL, loop) +
state.dataDaylightingData->ZoneDaylight(ZoneNum).DaylSourceFacSunDisk(state.dataGlobal->PreviousHour, 1, IL, loop)));
- if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- (SurfWinShadingFlag(IWin) >= 1 || SurfWinSolarDiffusing(IWin))) {
+ if (ShadedOrDiffusingGlassWin) {
// ===Shaded window or window with diffusing glass===
if (!SurfWinMovableSlats(IWin)) {
@@ -6509,9 +6489,8 @@ namespace EnergyPlus::DaylightingManager {
HorIllSkyFac = state.dataEnvrn->HISKF / ((1 - SkyWeight) * HorIllSky(ISky2) + SkyWeight * HorIllSky(ISky1));
- for (IS = 1; IS <= 2; ++IS) {
- if (IS == 2 && (SurfWinWindowModelType(IWin) == WindowBSDFModel)) break;
- if (IS == 2 && SurfWinShadingFlag(IWin) <= 0 && !SurfWinSolarDiffusing(IWin)) break;
+ for (int IS = 1; IS <= 2; ++IS) {
+ if (IS == 2 && !ShadedOrDiffusingGlassWin) break;
state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, IS, IL) =
DFSUHR(IS) * state.dataEnvrn->HISUNF +
@@ -6548,11 +6527,11 @@ namespace EnergyPlus::DaylightingManager {
// entering the zone through interior windows (which is calculated in DayltgInterReflIllFrIntWins.
for (loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
- IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
+ int IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
ICtrl = Surface(IWin).activeWindowShadingControl;
if (Surface(IWin).HasShadeControl && ISWFLG == 0) {
- if (WindowShadingControl(ICtrl).ShadingControlType == WSCT_MeetDaylIlumSetp &&
- SurfWinShadingFlag(IWin) == GlassConditionallyLightened)
+ if (WindowShadingControl(ICtrl).ShadingControlType == WindowShadingControlType::MeetDaylIlumSetp &&
+ SurfWinShadingFlag(IWin) == WinShadingType::GlassConditionallyLightened)
ISWFLG = 1;
}
@@ -6561,12 +6540,9 @@ namespace EnergyPlus::DaylightingManager {
// the shading flag is initialized at GlassConditionallyLightened (20), and
// the window is initialized at clear state: IS = 1
// For other windows with glare control, the shading flag is initialized at >10, to be determined
- IS = 1;
- if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- ((SurfWinShadingFlag(IWin) >= 1 && SurfWinShadingFlag(IWin) <= 9) || SurfWinSolarDiffusing(IWin)))
- IS = 2;
+ int IS = findWinShadingStatus(IWin);
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
state.dataDaylightingManager->DaylIllum(IL) += state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, IS, IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) += state.dataDaylightingData->ZoneDaylight(ZoneNum).BackLumFromWinAtRefPt(loop, IS, IL);
}
@@ -6606,13 +6582,10 @@ namespace EnergyPlus::DaylightingManager {
loop = state.dataDaylightingData->ZoneDaylight(ZoneNum).MapShdOrdToLoopNum(count);
ICtrl = Surface(IWin).activeWindowShadingControl;
- IS = 1;
- if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- ((SurfWinShadingFlag(IWin) >= 1 && SurfWinShadingFlag(IWin) <= 9) || SurfWinSolarDiffusing(IWin)))
- IS = 2;
+ int IS = findWinShadingStatus(IWin);
if (Surface(IWin).HasShadeControl) {
- if (SurfWinShadingFlag(IWin) == GlassConditionallyLightened &&
- WindowShadingControl(ICtrl).ShadingControlType == WSCT_MeetDaylIlumSetp && !previously_shaded(loop)) {
+ if (SurfWinShadingFlag(IWin) == WinShadingType::GlassConditionallyLightened &&
+ WindowShadingControl(ICtrl).ShadingControlType == WindowShadingControlType::MeetDaylIlumSetp && !previously_shaded(loop)) {
DILLSW(igroup) += state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, IS, 1);
previously_shaded(loop) = true;
} else {
@@ -6656,8 +6629,8 @@ namespace EnergyPlus::DaylightingManager {
continueOuterLoop = true;
continue;
}
- if (SurfWinShadingFlag(IWin) != GlassConditionallyLightened ||
- WindowShadingControl(ICtrl).ShadingControlType != WSCT_MeetDaylIlumSetp) {
+ if (SurfWinShadingFlag(IWin) != WinShadingType::GlassConditionallyLightened ||
+ WindowShadingControl(ICtrl).ShadingControlType != WindowShadingControlType::MeetDaylIlumSetp) {
continueOuterLoop = true;
continue;
}
@@ -6672,7 +6645,7 @@ namespace EnergyPlus::DaylightingManager {
TVIS2(igroup) = POLYF(1.0, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef) * SurfWinGlazedFrac(IWin);
// Reset shading flag to indicate that window is shaded by being partially or fully switched
- SurfWinShadingFlag(IWin) = SwitchableGlazing;
+ SurfWinShadingFlag(IWin) = WinShadingType::SwitchableGlazing;
// ASETIL < 0 means illuminance from non-daylight-switchable windows exceeds setpoint,
// so completely switch all daylight-switchable windows to minimize solar gain
@@ -6692,16 +6665,16 @@ namespace EnergyPlus::DaylightingManager {
}
// Adjust daylight quantities based on ratio between switched and unswitched visible transmittance
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
// DaylIllum(IL) and BacLum(IL) were calculated at the clear state: IS = 1,
// and need to adjusted for intermediate switched state at VisTransSelected: IS = 2
- IS = 1;
+ int IS = 1;
VTRAT = SurfWinVisTransSelected(IWin) / (TVIS1(igroup) + 0.000001);
state.dataDaylightingManager->DaylIllum(IL) += (VTRAT - 1.0) * state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, IS, IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) += (VTRAT - 1.0) * state.dataDaylightingData->ZoneDaylight(ZoneNum).BackLumFromWinAtRefPt(loop, IS, IL);
// Adjust illum, background illum and source luminance for this window in intermediate switched state
- // for later use in the DayltgGlare calc because SurfaceWindow(IWin)%ShadingFlag = SwitchableGlazing = 2
+ // for later use in the DayltgGlare calc because SurfaceWindow(IWin)%ShadingFlag = WinShadingType::SwitchableGlazing = 2
IS = 2;
VTRAT = SurfWinVisTransSelected(IWin) / (TVIS2(igroup) + 0.000001);
state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, IS, IL) = VTRAT * tmpIllumFromWinAtRefPt(loop, IS, IL);
@@ -6723,7 +6696,7 @@ namespace EnergyPlus::DaylightingManager {
// Calculate glare index at each reference point assuming the daylight illuminance setpoint is
// met at both reference points, either by daylight or electric lights
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
BACL = max(SetPnt(IL) * state.dataDaylightingData->ZoneDaylight(ZoneNum).AveVisDiffReflect / DataGlobalConstants::Pi, state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL));
// DayltgGlare uses ZoneDaylight(ZoneNum)%SourceLumFromWinAtRefPt(IL,1,loop) for unshaded windows, and
// ZoneDaylight(ZoneNum)%SourceLumFromWinAtRefPt(IL,2,loop) for shaded windows
@@ -6734,7 +6707,7 @@ namespace EnergyPlus::DaylightingManager {
// is exceeded at either ref pt, attempt to reduce glare to acceptable level by closing
// shading device on windows that have shades that have not already been closed.
GlareFlag = false;
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
if (GLRNDX(IL) > state.dataDaylightingData->ZoneDaylight(ZoneNum).MaxGlareallowed) {
GlareFlag = true;
break;
@@ -6752,7 +6725,6 @@ namespace EnergyPlus::DaylightingManager {
Array2D RBACLU(
NREFPT,
state.dataDaylightingData->ZoneDaylight(ZoneNum).ShadeDeployOrderExtWins.size()); // Background illuminance from window at reference point after closing shade
-
if (GlareFlag) {
// Glare is too high at a ref pt. Loop through windows.
int count = 0;
@@ -6773,7 +6745,8 @@ namespace EnergyPlus::DaylightingManager {
// Check if window is eligible for glare control
// TH 1/21/2010. Switchable glazings already in partially switched state
// should be allowed to further dim to control glare
- if (SurfWinShadingFlag(IWin) < 10 && SurfWinShadingFlag(IWin) != SwitchableGlazing) {
+ // if (SurfWinShadingFlag(IWin) <= BGBlind && SurfWinShadingFlag(IWin) != SwitchableGlazing) {
+ if (NOT_SHADED(SurfWinShadingFlag(IWin)) || ANY_SHADE_SCREEN(SurfWinShadingFlag(IWin)) || ANY_BLIND(SurfWinShadingFlag(IWin))) {
continueOuterLoop = false;
continue;
}
@@ -6788,8 +6761,8 @@ namespace EnergyPlus::DaylightingManager {
// Illuminance (WDAYIL) and background luminance (WBACLU) contribution from this
// window without shading (IS=1) and with shading (IS=2) for each ref pt
// For switchable windows, this may be partially switched rather than fully dark
- for (IL = 1; IL <= NREFPT; ++IL) {
- for (IS = 1; IS <= 2; ++IS) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
+ for (int IS = 1; IS <= 2; ++IS) {
WDAYIL(IS, IL, igroup) = state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, IS, IL);
WBACLU(IS, IL, igroup) = state.dataDaylightingData->ZoneDaylight(ZoneNum).BackLumFromWinAtRefPt(loop, IS, IL);
}
@@ -6797,10 +6770,10 @@ namespace EnergyPlus::DaylightingManager {
// Recalculate illuminance and glare with shading on this window.
// For switchable glazings, this is the fully switched (dark) state
- for (IL = 1; IL <= NREFPT; ++IL) {
- if (SurfWinShadingFlag(IWin) != SwitchableGlazing) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
+ if (SurfWinShadingFlag(IWin) != WinShadingType::SwitchableGlazing) {
// for non switchable glazings or switchable glazings not switched yet (still in clear state)
- // SurfaceWindow(IWin)%ShadingFlag = GlassConditionallyLightened
+ // SurfaceWindow(IWin)%ShadingFlag = WinShadingFlag::GlassConditionallyLightened
RDAYIL(IL, igroup) = state.dataDaylightingManager->DaylIllum(IL) - WDAYIL(1, IL, igroup) + WDAYIL(2, IL, igroup);
RBACLU(IL, igroup) = state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) - WBACLU(1, IL, igroup) + WBACLU(2, IL, igroup);
} else {
@@ -6810,12 +6783,18 @@ namespace EnergyPlus::DaylightingManager {
}
}
- if (SurfWinShadingFlag(IWin) != SwitchableGlazing) SurfWinShadingFlag(IWin) /= 10;
+ if (SurfWinShadingFlag(IWin) == WinShadingType::GlassConditionallyLightened) SurfWinShadingFlag(IWin) = WinShadingType::SwitchableGlazing;
+ else if (SurfWinShadingFlag(IWin) == WinShadingType::IntShadeConditionallyOff) SurfWinShadingFlag(IWin) = WinShadingType::IntShade;
+ else if (SurfWinShadingFlag(IWin) == WinShadingType::ExtShadeConditionallyOff) SurfWinShadingFlag(IWin) = WinShadingType::ExtShade;
+ else if (SurfWinShadingFlag(IWin) == WinShadingType::IntBlindConditionallyOff) SurfWinShadingFlag(IWin) = WinShadingType::IntBlind;
+ else if (SurfWinShadingFlag(IWin) == WinShadingType::ExtBlindConditionallyOff) SurfWinShadingFlag(IWin) = WinShadingType::ExtBlind;
+ else if (SurfWinShadingFlag(IWin) == WinShadingType::BGShadeConditionallyOff) SurfWinShadingFlag(IWin) = WinShadingType::BGShade;
+ else if (SurfWinShadingFlag(IWin) == WinShadingType::BGBlindConditionallyOff) SurfWinShadingFlag(IWin) = WinShadingType::BGBlind;
// For switchable glazings, it is switched to fully dark state,
// update ZoneDaylight(ZoneNum)%SourceLumFromWinAtRefPt(IL,2,loop) for use in DayltgGlare
- if (SurfWinShadingFlag(IWin) == SwitchableGlazing) {
- for (IL = 1; IL <= NREFPT; ++IL) {
+ if (SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, 2, IL) = tmpSourceLumFromWinAtRefPt(loop, 2, IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, 2, IL) = tmpIllumFromWinAtRefPt(loop, 2, IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).BackLumFromWinAtRefPt(loop, 2, IL) = tmpBackLumFromWinAtRefPt(loop, 2, IL);
@@ -6836,7 +6815,7 @@ namespace EnergyPlus::DaylightingManager {
if (atLeastOneGlareControlIsActive) {
// Re-calc daylight and glare at shaded state. For switchable glazings, it is the fully dark state.
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
BACL = max(SetPnt(IL) * state.dataDaylightingData->ZoneDaylight(ZoneNum).AveVisDiffReflect / DataGlobalConstants::Pi, RBACLU(IL, igroup));
// DayltgGlare uses ZoneDaylight(ZoneNum)%SourceLumFromWinAtRefPt(IL,2,loop) for shaded state
DayltgGlare(state, IL, BACL, GLRNEW(IL), ZoneNum);
@@ -6867,7 +6846,7 @@ namespace EnergyPlus::DaylightingManager {
// covers all the reference points.
int numRefPtOldAboveMaxNewBelowOld = 0;
int numRefPtOldBelowMaxNewBelowMax = 0;
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
if (GLRNDX(IL) > state.dataDaylightingData->ZoneDaylight(ZoneNum).MaxGlareallowed && GLRNEW(IL) <= GLRNDX(IL)) ++numRefPtOldAboveMaxNewBelowOld;
if (GLRNDX(IL) <= state.dataDaylightingData->ZoneDaylight(ZoneNum).MaxGlareallowed && GLRNEW(IL) <= state.dataDaylightingData->ZoneDaylight(ZoneNum).MaxGlareallowed)
++numRefPtOldBelowMaxNewBelowMax;
@@ -6884,7 +6863,8 @@ namespace EnergyPlus::DaylightingManager {
++count;
// need to map back to the original order of the "loop" to not change all the other data structures
loop = state.dataDaylightingData->ZoneDaylight(ZoneNum).MapShdOrdToLoopNum(count);
- if (SurfWinShadingFlag(IWin) < 10 && SurfWinShadingFlag(IWin) != SwitchableGlazing) continue;
+ // if (SurfWinShadingFlag(IWin) <= BGBlind && SurfWinShadingFlag(IWin) != SwitchableGlazing) {
+ if (NOT_SHADED(SurfWinShadingFlag(IWin)) || ANY_SHADE_SCREEN(SurfWinShadingFlag(IWin)) || ANY_BLIND(SurfWinShadingFlag(IWin))) continue;
ICtrl = Surface(IWin).activeWindowShadingControl;
if (!Surface(IWin).HasShadeControl) continue;
@@ -6894,26 +6874,26 @@ namespace EnergyPlus::DaylightingManager {
// Reset shading flag to no shading condition, go to next window.
if (blnCycle) {
// for switchable glazings, reset properties to clear state or partial switched state?
- if (SurfWinShadingFlag(IWin) == SwitchableGlazing) {
+ if (SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing) {
SurfWinSwitchingFactor(IWin) = 0.0;
SurfWinVisTransSelected(IWin) = TVIS1(igroup);
// RESET properties for fully dark state
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, 2, IL) = tmpIllumFromWinAtRefPt(loop, 2, IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).BackLumFromWinAtRefPt(loop, 2, IL) = tmpBackLumFromWinAtRefPt(loop, 2, IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).SourceLumFromWinAtRefPt(loop, 2, IL) = tmpSourceLumFromWinAtRefPt(loop, 2, IL);
}
}
- SurfWinShadingFlag(IWin) = ShadeOff;
+ SurfWinShadingFlag(IWin) = WinShadingType::ShadeOff;
continue;
}
// Shading this window has improved the glare situation.
// Reset background luminance, glare index, and daylight illuminance at each ref pt.
// For switchable glazings, this is fully switched, dark state
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) = RBACLU(IL, igroup);
GLRNDX(IL) = GLRNEW(IL);
state.dataDaylightingManager->DaylIllum(IL) = RDAYIL(IL, igroup);
@@ -6927,7 +6907,7 @@ namespace EnergyPlus::DaylightingManager {
// This was addressed in CR 7984 for E+ 5.0. 1/19/2010
// If switchable glazing, set switching factor to 1: fully switched.
- if (SurfWinShadingFlag(IWin) == SwitchableGlazing) {
+ if (SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing) {
// tmpSWFactor0 = SurfaceWindow( IWin ).SwitchingFactor; // save original
// switching factor
////Unused Set but never used
@@ -6935,7 +6915,7 @@ namespace EnergyPlus::DaylightingManager {
SurfWinVisTransSelected(IWin) = TVIS2(igroup);
// restore fully dark values
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
WDAYIL(2, IL, igroup) = tmpIllumFromWinAtRefPt(loop, 2, IL);
WBACLU(2, IL, igroup) = tmpBackLumFromWinAtRefPt(loop, 2, IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).IllumFromWinAtRefPt(loop, 2, IL) = tmpIllumFromWinAtRefPt(loop, 2, IL);
@@ -6954,8 +6934,8 @@ namespace EnergyPlus::DaylightingManager {
}
if (GlareOK) {
- if (SurfWinShadingFlag(IWin) == SwitchableGlazing &&
- WindowShadingControl(ICtrl).ShadingControlType == WSCT_MeetDaylIlumSetp) {
+ if (SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing &&
+ WindowShadingControl(ICtrl).ShadingControlType == WindowShadingControlType::MeetDaylIlumSetp) {
// Added TH 1/14/2010
// Only for switchable glazings with MeetDaylightIlluminanceSetpoint control
// The glazing is in fully dark state, it might lighten a bit to provide more daylight
@@ -6970,7 +6950,7 @@ namespace EnergyPlus::DaylightingManager {
tmpSWFactor = 1.0 - tmpSWIterStep;
while (tmpSWFactor > 0) {
// calc new glare at new switching state
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
RDAYIL(IL, igroup) = state.dataDaylightingManager->DaylIllum(IL) + (WDAYIL(1, IL, igroup) - WDAYIL(2, IL, igroup)) * (1.0 - tmpSWFactor);
RBACLU(IL, igroup) =
state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) + (WBACLU(1, IL, igroup) - WBACLU(2, IL, igroup)) * (1.0 - tmpSWFactor);
@@ -7016,7 +6996,7 @@ namespace EnergyPlus::DaylightingManager {
// Final re-calculation if needed
if (!GlareOK) {
// Glare too high, use previous state and re-calc
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
RDAYIL(IL, igroup) = state.dataDaylightingManager->DaylIllum(IL) + (WDAYIL(1, IL, igroup) - WDAYIL(2, IL, igroup)) * (1.0 - tmpSWFactor);
RBACLU(IL, igroup) =
state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) + (WBACLU(1, IL, igroup) - WBACLU(2, IL, igroup)) * (1.0 - tmpSWFactor);
@@ -7034,7 +7014,7 @@ namespace EnergyPlus::DaylightingManager {
}
// Update final results
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
state.dataDaylightingData->ZoneDaylight(ZoneNum).BacLum(IL) = RBACLU(IL, igroup);
GLRNDX(IL) = GLRNEW(IL);
state.dataDaylightingManager->DaylIllum(IL) = RDAYIL(IL, igroup);
@@ -7059,18 +7039,22 @@ namespace EnergyPlus::DaylightingManager {
} // end of for(auto IWin : listOfExtWin)
if (breakOuterLoop) break;
} // for group
- } // GlareFlag
+ } // GlareFlag
// Loop again over windows and reset remaining shading flags that
// are 10 or higher (i.e., conditionally off) to off
- for (IWin = Zone(ZoneNum).SurfaceFirst; IWin <= Zone(ZoneNum).SurfaceLast; ++IWin) {
+ for (int IWin = Zone(ZoneNum).SurfaceFirst; IWin <= Zone(ZoneNum).SurfaceLast; ++IWin) {
if (Surface(IWin).Class != SurfaceClass::Window) continue;
if (Surface(IWin).ExtBoundCond != ExternalEnvironment) continue;
- if (SurfWinShadingFlag(IWin) >= 10) SurfWinShadingFlag(IWin) = ShadeOff;
+ bool anyGlareControl = BITF_TEST_ANY(BITF(SurfWinShadingFlag(IWin)), BITF(WinShadingType::IntShadeConditionallyOff) | BITF(WinShadingType::GlassConditionallyLightened) |\
+ BITF(WinShadingType::ExtShadeConditionallyOff) | BITF(WinShadingType::IntBlindConditionallyOff) | BITF(WinShadingType::ExtBlindConditionallyOff));
+ if (anyGlareControl) {
+ SurfWinShadingFlag(IWin) = WinShadingType::ShadeOff;
+ }
}
// Variables for reporting
- for (IL = 1; IL <= NREFPT; ++IL) {
+ for (int IL = 1; IL <= NREFPT; ++IL) {
state.dataDaylightingData->ZoneDaylight(ZoneNum).DaylIllumAtRefPt(IL) = state.dataDaylightingManager->DaylIllum(IL);
state.dataDaylightingData->ZoneDaylight(ZoneNum).GlareIndexAtRefPt(IL) = GLRNDX(IL);
@@ -7092,9 +7076,9 @@ namespace EnergyPlus::DaylightingManager {
// The following report variables are valid only for daylit zones without interior windows
if (!Zone(ZoneNum).HasInterZoneWindow) {
for (loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
- IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
- IS = 1;
- if (SurfWinShadingFlag(IWin) > 0 || SurfWinSolarDiffusing(IWin)) IS = 2;
+ int IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
+ int IS = 1;
+ if (SurfWinWindowModelType(IWin) != WindowBSDFModel && (IS_SHADED(SurfWinShadingFlag(IWin)) || SurfWinSolarDiffusing(IWin))) IS = 2;
if (state.dataDaylightingData->ZoneDaylight(ZoneNum).DaylightMethod == DataDaylighting::iDaylightingMethod::SplitFluxDaylighting) {
int refPtCount = 0;
for (int const enclZoneNum : DataViewFactorInformation::ZoneSolarInfo(Zone(ZoneNum).SolarEnclosureNum).ZoneNums) {
@@ -7562,7 +7546,6 @@ namespace EnergyPlus::DaylightingManager {
// (times light well efficiency, if appropriate)
Real64 ZSU1; // Transmitted direct normal illuminance (lux)
// CHARACTER(len=32) :: ShType ! Window shading device type
- int ShType; // Window shading device type
bool ShadeOn; // True if exterior or interior window shade present
bool BlindOn; // True if exterior or interior window blind present
bool ScreenOn; // True if exterior window screen present
@@ -7636,6 +7619,8 @@ namespace EnergyPlus::DaylightingManager {
int IntWinNum; // window index for interior windows associated with exterior windows
Real64 COSBintWin;
+ WinShadingType ShType;
+
ZoneNumThisWin = Surface(Surface(IWin).BaseSurf).Zone;
// The inside surface area, ZoneDaylight(ZoneNum)%TotInsSurfArea was calculated in subr DayltgAveInteriorReflectance
@@ -7957,9 +7942,9 @@ namespace EnergyPlus::DaylightingManager {
BlNum = SurfWinBlindNumber(IWin);
// ScNum = SurfaceWindow( IWin ).ScreenNumber; //Unused Set but never used
- ShadeOn = (ShType == WSC_ST_InteriorShade || ShType == WSC_ST_ExteriorShade || ShType == WSC_ST_BetweenGlassShade);
- BlindOn = (ShType == WSC_ST_InteriorBlind || ShType == WSC_ST_ExteriorBlind || ShType == WSC_ST_BetweenGlassBlind);
- ScreenOn = (ShType == WSC_ST_ExteriorScreen);
+ ShadeOn = ANY_SHADE(ShType);
+ BlindOn = ANY_BLIND(ShType);
+ ScreenOn = (ShType == WinShadingType::ExtScreen);
}
if (ShadeOn || BlindOn || ScreenOn || SurfWinSolarDiffusing(IWin)) {
@@ -8021,7 +8006,7 @@ namespace EnergyPlus::DaylightingManager {
TransBlBmDiffFront = InterpProfAng(ProfAng, Blind(BlNum).VisFrontBeamDiffTrans(JB, {1, 37}));
- if (ShType == WSC_ST_InteriorBlind) { // Interior blind
+ if (ShType == WinShadingType::IntBlind) { // Interior blind
ReflGlDiffDiffBack = state.dataConstruction->Construct(IConst).ReflectVisDiffBack;
ReflBlBmDiffFront = InterpProfAng(ProfAng, Blind(BlNum).VisFrontBeamDiffRefl(JB, {1, 37}));
ReflBlDiffDiffFront = Blind(BlNum).VisFrontDiffDiffRefl(JB);
@@ -8029,7 +8014,7 @@ namespace EnergyPlus::DaylightingManager {
TransMult(JB) = TVISBR * (TransBlBmDiffFront + ReflBlBmDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront /
(1.0 - ReflBlDiffDiffFront * ReflGlDiffDiffBack));
- } else if (ShType == WSC_ST_ExteriorBlind) { // Exterior blind
+ } else if (ShType == WinShadingType::ExtBlind) { // Exterior blind
ReflGlDiffDiffFront = state.dataConstruction->Construct(IConst).ReflectVisDiffFront;
ReflBlDiffDiffBack = Blind(BlNum).VisBackDiffDiffRefl(JB);
TransMult(JB) = TransBlBmDiffFront * SurfWinGlazedFrac(IWin) * state.dataConstruction->Construct(IConst).TransDiffVis /
@@ -8225,7 +8210,7 @@ namespace EnergyPlus::DaylightingManager {
TransBlBmDiffFront = InterpProfAng(ProfAng, Blind(BlNum).VisFrontBeamDiffTrans(JB, {1, 37}));
- if (ShType == WSC_ST_InteriorBlind) { // Interior blind
+ if (ShType == WinShadingType::IntBlind) { // Interior blind
// TH CR 8121, 7/7/2010
// ReflBlBmDiffFront = InterpProfAng(ProfAng,Blind(BlNum)%VisFrontBeamDiffRefl)
ReflBlBmDiffFront = InterpProfAng(ProfAng, Blind(BlNum).VisFrontBeamDiffRefl(JB, {1, 37}));
@@ -8237,7 +8222,7 @@ namespace EnergyPlus::DaylightingManager {
TransMult(JB) = TVISBSun * (TransBlBmDiffFront + ReflBlBmDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront /
(1.0 - ReflBlDiffDiffFront * ReflGlDiffDiffBack));
- } else if (ShType == WSC_ST_ExteriorBlind) { // Exterior blind
+ } else if (ShType == WinShadingType::ExtBlind) { // Exterior blind
TransMult(JB) =
TransBlBmDiffFront *
(state.dataConstruction->Construct(IConst).TransDiffVis / (1.0 - ReflGlDiffDiffFront * Blind(BlNum).VisBackDiffDiffRefl(JB))) *
@@ -8327,13 +8312,13 @@ namespace EnergyPlus::DaylightingManager {
} else { // Blind on
TransBlDiffDiffFront = Blind(BlNum).VisFrontDiffDiffTrans(JB);
- if (ShType == WSC_ST_InteriorBlind) { // Interior blind
+ if (ShType == WinShadingType::IntBlind) { // Interior blind
ReflBlDiffDiffFront = Blind(BlNum).VisFrontDiffDiffRefl(JB);
TransMult(JB) =
TVisSunRefl * (TransBlDiffDiffFront + ReflBlDiffDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront /
(1.0 - ReflBlDiffDiffFront * ReflGlDiffDiffBack));
- } else if (ShType == WSC_ST_ExteriorBlind) { // Exterior blind
+ } else if (ShType == WinShadingType::ExtBlind) { // Exterior blind
TransMult(JB) =
TransBlDiffDiffFront *
(state.dataConstruction->Construct(IConst).TransDiffVis / (1.0 - ReflGlDiffDiffFront * Blind(BlNum).VisBackDiffDiffRefl(JB))) *
@@ -9533,7 +9518,7 @@ namespace EnergyPlus::DaylightingManager {
}
if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- (SurfWinShadingFlag(IWin) >= 1 || SurfWinSolarDiffusing(IWin))) {
+ (IS_SHADED(SurfWinShadingFlag(IWin)) || SurfWinSolarDiffusing(IWin))) {
// ===Shaded window===
if (!SurfWinMovableSlats(IWin)) {
@@ -9714,7 +9699,8 @@ namespace EnergyPlus::DaylightingManager {
HorIllSkyFac = state.dataEnvrn->HISKF / ((1.0 - SkyWeight) * HorIllSky(ISky2) + SkyWeight * HorIllSky(ISky1));
for (IS = 1; IS <= 2; ++IS) {
- if (IS == 2 && SurfWinShadingFlag(IWin) <= 0 && !SurfWinSolarDiffusing(IWin)) break;
+ if (IS == 2 && SurfWinWindowModelType(IWin) == WindowBSDFModel) break;
+ if (IS == 2 && NOT_SHADED(SurfWinShadingFlag(IWin)) && !SurfWinSolarDiffusing(IWin)) break;
state.dataDaylightingData->IllumMapCalc(MapNum).IllumFromWinAtMapPt(loop, IS, ILB) =
DFSUHR(IS) * state.dataEnvrn->HISUNF + HorIllSkyFac * (DFSKHR(IS, ISky1) * SkyWeight * HorIllSky(ISky1) +
@@ -9741,10 +9727,7 @@ namespace EnergyPlus::DaylightingManager {
for (loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
- IS = 1;
- if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- ((SurfWinShadingFlag(IWin) >= 1 && SurfWinShadingFlag(IWin) <= 9) || SurfWinSolarDiffusing(IWin)))
- IS = 2;
+ IS = findWinShadingStatus(IWin);
// CR 8057. 3/17/2010.
// Switchable windows may be in partially switched state rather than fully dark state
@@ -9752,8 +9735,8 @@ namespace EnergyPlus::DaylightingManager {
ICtrl = Surface(IWin).activeWindowShadingControl;
if (Surface(IWin).HasShadeControl) {
- if (WindowShadingControl(ICtrl).ShadingControlType == WSCT_MeetDaylIlumSetp &&
- SurfWinShadingFlag(IWin) == SwitchableGlazing) {
+ if (WindowShadingControl(ICtrl).ShadingControlType == WindowShadingControlType::MeetDaylIlumSetp &&
+ SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing) {
// switchable windows in partial or fully switched state,
// get its intermediate VT calculated in DayltgInteriorIllum
IConstShaded = Surface(IWin).activeShadedConstruction;
@@ -9779,18 +9762,15 @@ namespace EnergyPlus::DaylightingManager {
// Loop over exterior windows associated with zone
for (loop = 1; loop <= state.dataDaylightingData->ZoneDaylight(ZoneNum).NumOfDayltgExtWins; ++loop) {
IWin = state.dataDaylightingData->ZoneDaylight(ZoneNum).DayltgExtWinSurfNums(loop);
- IS = 1;
- if ((SurfWinWindowModelType(IWin) != WindowBSDFModel) &&
- ((SurfWinShadingFlag(IWin) >= 1 && SurfWinShadingFlag(IWin) <= 9) || SurfWinSolarDiffusing(IWin)))
- IS = 2;
+ IS = findWinShadingStatus(IWin);
// CR 8057. 3/17/2010
VTMULT = 1.0;
ICtrl = Surface(IWin).activeWindowShadingControl;
if (Surface(IWin).HasShadeControl) {
- if (WindowShadingControl(ICtrl).ShadingControlType == WSCT_MeetDaylIlumSetp &&
- SurfWinShadingFlag(IWin) == SwitchableGlazing) {
+ if (WindowShadingControl(ICtrl).ShadingControlType == WindowShadingControlType::MeetDaylIlumSetp &&
+ SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing) {
// switchable windows in partial or fully switched state,
// get its intermediate VT calculated in DayltgInteriorIllum
IConstShaded = Surface(IWin).activeShadedConstruction;
diff --git a/src/EnergyPlus/DaylightingManager.hh b/src/EnergyPlus/DaylightingManager.hh
index e0826dae1ce..6c1d857b81a 100644
--- a/src/EnergyPlus/DaylightingManager.hh
+++ b/src/EnergyPlus/DaylightingManager.hh
@@ -110,7 +110,7 @@ namespace DaylightingManager {
int &LSHCAL, // Interior shade calculation flag: 0=not yet calculated, 1=already calculated
int &InShelfSurf, // Inside daylighting shelf surface number
int &ICtrl, // Window control counter
- int &ShType, // Window shading type
+ DataSurfaces::WinShadingType &ShType, // Window shading type
int &BlNum, // Window blind number
Vector3 &WNORM2, // Unit vector normal to window
DataDaylighting::iExtWinType &ExtWinType, // Exterior window type (InZoneExtWin, AdjZoneExtWin, NotInOrAdjZoneExtWin)
@@ -257,7 +257,7 @@ namespace DaylightingManager {
Real64 const TVISB, // Visible transmittance of window for COSB angle of incidence (times light well efficiency, if appropriate)
Real64 const DOMEGA, // Solid angle subtended by window element wrt reference point (steradians)
int const ICtrl, // Window control counter
- int const ShType, // Window shading type
+ DataSurfaces::WinShadingType const ShType, // Window shading type
int const BlNum, // Window blind number
Real64 const THRAY, // Azimuth of ray from reference point to window element (radians)
Vector3 const &WNORM2, // Unit vector normal to window
@@ -317,6 +317,8 @@ namespace DaylightingManager {
void GetLightWellData(EnergyPlusData &state, bool &ErrorsFound); // If errors found in input
+ int findWinShadingStatus(int const IWin);
+
void DayltgGlare(EnergyPlusData &state,
int &IL, // Reference point index: 1=first ref pt, 2=second ref pt
Real64 &BLUM, // Window background (surround) luminance (cd/m2)
diff --git a/src/EnergyPlus/DisplacementVentMgr.cc b/src/EnergyPlus/DisplacementVentMgr.cc
index f5ad91698bd..d6e0e81a9bf 100644
--- a/src/EnergyPlus/DisplacementVentMgr.cc
+++ b/src/EnergyPlus/DisplacementVentMgr.cc
@@ -627,7 +627,7 @@ namespace DisplacementVentMgr {
int FlagApertures;
static Real64 TempDepCoef(0.0); // Formerly CoefSumha, coef in zone temp equation with dimensions of h*A
static Real64 TempIndCoef(0.0); // Formerly CoefSumhat, coef in zone temp equation with dimensions of h*A(T1
- static Array1D_int IntGainTypesOccupied(29,
+ static Array1D_int IntGainTypesOccupied(30,
{IntGainTypeOf_People,
IntGainTypeOf_WaterHeaterMixed,
IntGainTypeOf_WaterHeaterStratified,
@@ -647,6 +647,7 @@ namespace DisplacementVentMgr {
IntGainTypeOf_ElectricLoadCenterInverterSimple,
IntGainTypeOf_ElectricLoadCenterInverterFunctionOfPower,
IntGainTypeOf_ElectricLoadCenterInverterLookUpTable,
+ IntGainTypeOf_ElectricLoadCenterStorageLiIonNmcBattery,
IntGainTypeOf_ElectricLoadCenterStorageBattery,
IntGainTypeOf_ElectricLoadCenterStorageSimple,
IntGainTypeOf_PipeIndoor,
diff --git a/src/EnergyPlus/EMSManager.cc b/src/EnergyPlus/EMSManager.cc
index e4df00f5da3..74d089892c4 100644
--- a/src/EnergyPlus/EMSManager.cc
+++ b/src/EnergyPlus/EMSManager.cc
@@ -1843,8 +1843,7 @@ namespace EMSManager {
using DataSurfaces::Surface;
using DataSurfaces::TotSurfaces;
using DataSurfaces::WindowShadingControl;
- using DataSurfaces::WSC_ST_SwitchableGlazing;
- using DataSurfaces::WSC_ST_ExteriorScreen;
+ using DataSurfaces::WinShadingType;
// Locals
// SUBROUTINE ARGUMENT DEFINITIONS:
@@ -1883,7 +1882,7 @@ namespace EMSManager {
DataSurfaces::SurfWinSlatAngThisTSDegEMSon(loopSurfNum),
DataSurfaces::SurfWinSlatAngThisTSDegEMSValue(loopSurfNum));
}
- } else if (WindowShadingControl(Surface(loopSurfNum).activeWindowShadingControl).ShadingType == WSC_ST_ExteriorScreen) {
+ } else if (WindowShadingControl(Surface(loopSurfNum).activeWindowShadingControl).ShadingType == WinShadingType::ExtScreen) {
SetupEMSActuator(state, "Window Shading Control",
Surface(loopSurfNum).Name,
"Control Status",
@@ -1891,7 +1890,7 @@ namespace EMSManager {
DataSurfaces::SurfWinShadingFlagEMSOn(loopSurfNum),
DataSurfaces::SurfWinShadingFlagEMSValue(loopSurfNum));
} else {
- if (WindowShadingControl(Surface(loopSurfNum).activeWindowShadingControl).ShadingType != WSC_ST_SwitchableGlazing) {
+ if (WindowShadingControl(Surface(loopSurfNum).activeWindowShadingControl).ShadingType != WinShadingType::SwitchableGlazing) {
ShowSevereError(state, "Missing shade or blind layer in window construction name = '" +
state.dataConstruction->Construct(Surface(loopSurfNum).activeShadedConstruction).Name + "', surface name = '" +
Surface(loopSurfNum).Name + "'.");
diff --git a/src/EnergyPlus/ElectricBaseboardRadiator.cc b/src/EnergyPlus/ElectricBaseboardRadiator.cc
index 259dfa3fe22..2de4e2f7e6a 100644
--- a/src/EnergyPlus/ElectricBaseboardRadiator.cc
+++ b/src/EnergyPlus/ElectricBaseboardRadiator.cc
@@ -1147,7 +1147,7 @@ namespace ElectricBaseboardRadiator {
Area = Surface(SurfNum).Area;
if (Surface(SurfNum).Class == SurfaceClass::Window) {
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The area is the shade or blind area = the sum of the glazing area and the divider area (which is zero if no divider)
Area += SurfWinDividerArea(SurfNum);
}
@@ -1158,8 +1158,7 @@ namespace ElectricBaseboardRadiator {
SurfWinFrameTempSurfIn(SurfNum);
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn &&
- SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf += HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) *
SurfWinDividerTempSurfIn(SurfNum);
diff --git a/src/EnergyPlus/ElectricPowerServiceManager.cc b/src/EnergyPlus/ElectricPowerServiceManager.cc
index 35985318a31..d40de1331cb 100644
--- a/src/EnergyPlus/ElectricPowerServiceManager.cc
+++ b/src/EnergyPlus/ElectricPowerServiceManager.cc
@@ -56,9 +56,11 @@
#include
#include
#include
+#include
#include
#include
#include
+#include
#include
#include
#include
@@ -2943,11 +2945,14 @@ ElectricStorage::ElectricStorage( // main constructor
energeticEfficCharge_(0.0), energeticEfficDischarge_(0.0), maxPowerDraw_(0.0), maxPowerStore_(0.0), maxEnergyCapacity_(0.0), parallelNum_(0),
seriesNum_(0), numBattery_(0), chargeCurveNum_(0), dischargeCurveNum_(0), cycleBinNum_(0), startingSOC_(0.0), maxAhCapacity_(0.0),
availableFrac_(0.0), chargeConversionRate_(0.0), chargedOCV_(0.0), dischargedOCV_(0.0), internalR_(0.0), maxDischargeI_(0.0), cutoffV_(0.0),
- maxChargeRate_(0.0), lifeCalculation_(BatteyDegredationModelType::degredationNotSet), lifeCurveNum_(0), thisTimeStepStateOfCharge_(0.0),
- lastTimeStepStateOfCharge_(0.0), pelNeedFromStorage_(0.0), pelFromStorage_(0.0), pelIntoStorage_(0.0), qdotConvZone_(0.0), qdotRadZone_(0.0),
- timeElapsed_(0.0), thisTimeStepAvailable_(0.0), thisTimeStepBound_(0.0), lastTimeStepAvailable_(0.0), lastTimeStepBound_(0.0),
- lastTwoTimeStepAvailable_(0.0), lastTwoTimeStepBound_(0.0), count0_(0), electEnergyinStorage_(0.0), thermLossRate_(0.0), thermLossEnergy_(0.0),
- storageMode_(0), absoluteSOC_(0.0), fractionSOC_(0.0), batteryCurrent_(0.0), batteryVoltage_(0.0), batteryDamage_(0.0)
+ maxChargeRate_(0.0), lifeCalculation_(BatteryDegradationModelType::degredationNotSet), lifeCurveNum_(0),
+ liIon_dcToDcChargingEff_(0.0), liIon_mass_(0.0), liIon_surfaceArea_(0.0), liIon_Cp_(0.0), liIon_heatTransferCoef_(0.0), liIon_Vfull_(0.0),
+ liIon_Vexp_(0.0), liIon_Vnom_(0.0), liIon_Vnom_default_(0.0), liIon_Qfull_(0.0), liIon_Qexp_(0.0), liIon_Qnom_(0.0), liIon_C_rate_(0.0),
+ thisTimeStepStateOfCharge_(0.0), lastTimeStepStateOfCharge_(0.0), pelNeedFromStorage_(0.0), pelFromStorage_(0.0), pelIntoStorage_(0.0),
+ qdotConvZone_(0.0), qdotRadZone_(0.0), timeElapsed_(0.0), thisTimeStepAvailable_(0.0), thisTimeStepBound_(0.0), lastTimeStepAvailable_(0.0),
+ lastTimeStepBound_(0.0), lastTwoTimeStepAvailable_(0.0), lastTwoTimeStepBound_(0.0), count0_(0), electEnergyinStorage_(0.0),
+ thermLossRate_(0.0), thermLossEnergy_(0.0), storageMode_(0), absoluteSOC_(0.0), fractionSOC_(0.0), batteryCurrent_(0.0), batteryVoltage_(0.0),
+ batteryDamage_(0.0), batteryTemperature_(0.0)
{
std::string const routineName = "ElectricStorage constructor ";
@@ -2960,20 +2965,21 @@ ElectricStorage::ElectricStorage( // main constructor
int testStorageIndex = 0;
int storageIDFObjectNum = 0;
- testStorageIndex = inputProcessor->getObjectItemNum(state, "ElectricLoadCenter:Storage:Simple", objectName);
- if (testStorageIndex > 0) {
- foundStorage = true;
- storageIDFObjectNum = testStorageIndex;
- DataIPShortCuts::cCurrentModuleObject = "ElectricLoadCenter:Storage:Simple";
- storageModelMode_ = StorageModelType::simpleBucketStorage;
- }
-
- testStorageIndex = inputProcessor->getObjectItemNum(state, "ElectricLoadCenter:Storage:Battery", objectName);
- if (testStorageIndex > 0) {
- foundStorage = true;
- storageIDFObjectNum = testStorageIndex;
- DataIPShortCuts::cCurrentModuleObject = "ElectricLoadCenter:Storage:Battery";
- storageModelMode_ = StorageModelType::kiBaMBattery;
+ const std::array, 3> storageTypes{{
+ {"ElectricLoadCenter:Storage:Simple", StorageModelType::simpleBucketStorage},
+ {"ElectricLoadCenter:Storage:Battery", StorageModelType::kiBaMBattery},
+ {"ElectricLoadCenter:Storage:LiIonNMCBattery", StorageModelType::liIonNmcBattery}
+ }};
+
+ for (auto &item : storageTypes) {
+ testStorageIndex = inputProcessor->getObjectItemNum(state, item.first, objectName);
+ if (testStorageIndex > 0) {
+ foundStorage = true;
+ storageIDFObjectNum = testStorageIndex;
+ DataIPShortCuts::cCurrentModuleObject = item.first;
+ storageModelMode_ = item.second;
+ break;
+ }
}
if (foundStorage) {
@@ -3076,17 +3082,17 @@ ElectricStorage::ElectricStorage( // main constructor
}
if (UtilityRoutines::SameString(DataIPShortCuts::cAlphaArgs(6), "Yes")) {
- lifeCalculation_ = BatteyDegredationModelType::lifeCalculationYes;
+ lifeCalculation_ = BatteryDegradationModelType::lifeCalculationYes;
} else if (UtilityRoutines::SameString(DataIPShortCuts::cAlphaArgs(6), "No")) {
- lifeCalculation_ = BatteyDegredationModelType::lifeCalculationNo;
+ lifeCalculation_ = BatteryDegradationModelType::lifeCalculationNo;
} else {
ShowWarningError(state, routineName + DataIPShortCuts::cCurrentModuleObject + "=\"" + DataIPShortCuts::cAlphaArgs(1) + "\", invalid entry.");
ShowContinueError(state, "Invalid " + DataIPShortCuts::cAlphaFieldNames(6) + " = " + DataIPShortCuts::cAlphaArgs(6));
ShowContinueError(state, "Yes or No should be selected. Default value No is used to continue simulation");
- lifeCalculation_ = BatteyDegredationModelType::lifeCalculationNo;
+ lifeCalculation_ = BatteryDegradationModelType::lifeCalculationNo;
}
- if (lifeCalculation_ == BatteyDegredationModelType::lifeCalculationYes) {
+ if (lifeCalculation_ == BatteryDegradationModelType::lifeCalculationYes) {
lifeCurveNum_ = CurveManager::GetCurveIndex(state, DataIPShortCuts::cAlphaArgs(7)); // Battery life calculation
if (lifeCurveNum_ == 0 && !DataIPShortCuts::lAlphaFieldBlanks(7)) {
ShowSevereError(state, routineName + DataIPShortCuts::cCurrentModuleObject + "=\"" + DataIPShortCuts::cAlphaArgs(1) +
@@ -3134,6 +3140,119 @@ ElectricStorage::ElectricStorage( // main constructor
cutoffV_ = DataIPShortCuts::rNumericArgs(12);
maxChargeRate_ = DataIPShortCuts::rNumericArgs(13);
+ break;
+ }
+ case StorageModelType::liIonNmcBattery: {
+ if (UtilityRoutines::SameString(DataIPShortCuts::cAlphaArgs(4), "KandlerSmith") or DataIPShortCuts::lAlphaFieldBlanks(4)) {
+ lifeCalculation_ = BatteryDegradationModelType::lifeCalculationYes;
+ } else {
+ lifeCalculation_ = BatteryDegradationModelType::lifeCalculationNo;
+ }
+ seriesNum_ = static_cast(DataIPShortCuts::rNumericArgs(2));
+ parallelNum_ = static_cast(DataIPShortCuts::rNumericArgs(3));
+ startingSOC_ = DataIPShortCuts::lNumericFieldBlanks(4) ? 0.5 : DataIPShortCuts::rNumericArgs(4);
+ liIon_dcToDcChargingEff_ = DataIPShortCuts::lNumericFieldBlanks(5) ? 0.95 : DataIPShortCuts::rNumericArgs(5);
+ liIon_mass_ = DataIPShortCuts::rNumericArgs(6);
+ liIon_surfaceArea_ = DataIPShortCuts::rNumericArgs(7);
+ liIon_Cp_ = DataIPShortCuts::lNumericFieldBlanks(8) ? 1500.0 : DataIPShortCuts::rNumericArgs(8);
+ liIon_heatTransferCoef_ = DataIPShortCuts::lNumericFieldBlanks(9) ? 7.5 : DataIPShortCuts::rNumericArgs(9);
+ liIon_Vfull_ = DataIPShortCuts::lNumericFieldBlanks(10) ? 4.2 : DataIPShortCuts::rNumericArgs(10);
+ liIon_Vexp_ = DataIPShortCuts::lNumericFieldBlanks(11) ? 3.53 : DataIPShortCuts::rNumericArgs(11);
+ liIon_Vnom_ = DataIPShortCuts::lNumericFieldBlanks(12) ? 3.342 : DataIPShortCuts::rNumericArgs(12);
+ if (liIon_Vfull_ < liIon_Vexp_ or liIon_Vexp_ < liIon_Vnom_) {
+ ShowSevereError(state, routineName + DataIPShortCuts::cCurrentModuleObject + "=\"" + DataIPShortCuts::cAlphaArgs(1) + "\", invalid entry.");
+ ShowContinueError(state, DataIPShortCuts::cNumericFieldNames(10) + " must be greater than " + DataIPShortCuts::cNumericFieldNames(11) + ",");
+ ShowContinueError(state, "which must be greater than " + DataIPShortCuts::cNumericFieldNames(12) + ".");
+ for (int i = 10; i <= 12; ++i) {
+ ShowContinueError(state, format("{} = {:.3R}", DataIPShortCuts::cNumericFieldNames(i), DataIPShortCuts::rNumericArgs(i)));
+ }
+ errorsFound = true;
+ }
+ liIon_Vnom_default_ = DataIPShortCuts::lNumericFieldBlanks(13) ? 3.342 : DataIPShortCuts::rNumericArgs(13);
+ liIon_Qfull_ = DataIPShortCuts::lNumericFieldBlanks(14) ? 3.2 : DataIPShortCuts::rNumericArgs(14);
+ liIon_Qexp_ = DataIPShortCuts::lNumericFieldBlanks(15) ? 0.8075 * liIon_Qfull_ : DataIPShortCuts::rNumericArgs(15) * liIon_Qfull_;
+ liIon_Qnom_ = DataIPShortCuts::lNumericFieldBlanks(16) ? 0.976875 * liIon_Qfull_ : DataIPShortCuts::rNumericArgs(16) * liIon_Qfull_;
+ if (liIon_Qexp_ >= liIon_Qnom_) {
+ ShowSevereError(state, routineName + DataIPShortCuts::cCurrentModuleObject + "=\"" + DataIPShortCuts::cAlphaArgs(1) + "\", invalid entry.");
+ ShowContinueError(state, DataIPShortCuts::cNumericFieldNames(16) + " must be greater than " + DataIPShortCuts::cNumericFieldNames(15) + ".");
+ for (int i = 15; i <= 16; ++i) {
+ ShowContinueError(state, format("{} = {:.3R}", DataIPShortCuts::cNumericFieldNames(i), DataIPShortCuts::rNumericArgs(i)));
+ }
+ errorsFound = true;
+ }
+ liIon_C_rate_ = DataIPShortCuts::lNumericFieldBlanks(17) ? 1.0 : DataIPShortCuts::rNumericArgs(17);
+ internalR_ = DataIPShortCuts::lNumericFieldBlanks(18) ? 0.09 : DataIPShortCuts::rNumericArgs(18);
+
+ maxAhCapacity_ = liIon_Qfull_ * parallelNum_;
+
+ if (!errorsFound) {
+ // Set the Lifetime model in SSC
+ // I'm using a raw pointer here because the the battery_t constructor expects it.
+ // The pointer is then passed into the battery_t where it is converted into a unique_ptr and persists along with that object.
+ // Therefore I am not deleting this pointer here because that will be handled by the battery_t class.
+ lifetime_t* battLifetime;
+ if (lifeCalculation_ == BatteryDegradationModelType::lifeCalculationYes) {
+ battLifetime = new lifetime_nmc_t(DataHVACGlobals::TimeStepSys);
+ } else {
+ // This sets a lifetime model where the capacity is always 100%.
+ std::vector tblVals{{20, 0, 100, 20, 5000, 100, 20, 10000, 100, 80, 0, 100, 80, 1000, 100, 80, 2000, 100}};
+ util::matrix_t battLifetimeMatrix(6, 3, &tblVals);
+ battLifetime = new lifetime_calendar_cycle_t(battLifetimeMatrix, DataHVACGlobals::TimeStepSys);
+ }
+
+ // Create the SSC battery object
+ ssc_battery_ = std::unique_ptr(
+ new battery_t(
+ DataHVACGlobals::TimeStepSys,
+ battery_params::CHEM::LITHIUM_ION,
+ new capacity_lithium_ion_t(
+ maxAhCapacity_, // Capacity of the whole battery
+ startingSOC_ * 100.0,
+ 100.0, // Reset later
+ 0.0, // Reset later
+ DataHVACGlobals::TimeStepSys
+ ),
+ new voltage_dynamic_t(
+ seriesNum_,
+ parallelNum_,
+ liIon_Vnom_default_,
+ liIon_Vfull_,
+ liIon_Vexp_,
+ liIon_Vnom_,
+ liIon_Qfull_, // Capacity of one cell
+ liIon_Qexp_,
+ liIon_Qnom_,
+ liIon_C_rate_,
+ internalR_,
+ DataHVACGlobals::TimeStepSys
+ ),
+ battLifetime,
+ new thermal_t(
+ DataHVACGlobals::TimeStepSys,
+ liIon_mass_,
+ liIon_surfaceArea_,
+ internalR_ * seriesNum_ / parallelNum_, // Electric resistance of the whole battery
+ liIon_Cp_,
+ liIon_heatTransferCoef_,
+ 20.0 // Picking a temperature for now, will reset before each run.
+ ),
+ nullptr
+ )
+ );
+ ssc_lastBatteryState_ = std::unique_ptr(new battery_state(ssc_battery_->get_state()));
+ ssc_initBatteryState_ = std::unique_ptr(new battery_state(ssc_battery_->get_state()));
+ }
+
+ break;
+ }
+ case StorageModelType::storageTypeNotSet: {
+ // do nothing
+ break;
+ }
+
+ } // switch storage model type
+
+ if (storageModelMode_ == StorageModelType::kiBaMBattery or storageModelMode_ == StorageModelType::liIonNmcBattery) {
SetupOutputVariable(state, "Electric Storage Operating Mode Index", OutputProcessor::Unit::None, storageMode_, "System", "Average", name_);
SetupOutputVariable(state, "Electric Storage Battery Charge State",
OutputProcessor::Unit::Ah,
@@ -3145,18 +3264,11 @@ ElectricStorage::ElectricStorage( // main constructor
SetupOutputVariable(state, "Electric Storage Total Current", OutputProcessor::Unit::A, batteryCurrent_, "System", "Average", name_);
SetupOutputVariable(state, "Electric Storage Total Voltage", OutputProcessor::Unit::V, batteryVoltage_, "System", "Average", name_);
- if (lifeCalculation_ == BatteyDegredationModelType::lifeCalculationYes) {
+ if (lifeCalculation_ == BatteryDegradationModelType::lifeCalculationYes) {
SetupOutputVariable(state, "Electric Storage Degradation Fraction", OutputProcessor::Unit::None, batteryDamage_, "System", "Average", name_);
}
- break;
- }
- case StorageModelType::storageTypeNotSet: {
- // do nothing
- break;
}
- } // switch storage model type
-
SetupOutputVariable(state, "Electric Storage Charge Power", OutputProcessor::Unit::W, storedPower_, "System", "Average", name_);
SetupOutputVariable(state, "Electric Storage Charge Energy", OutputProcessor::Unit::J, storedEnergy_, "System", "Sum", name_);
SetupOutputVariable(state, "Electric Storage Production Decrement Energy",
@@ -3191,6 +3303,9 @@ ElectricStorage::ElectricStorage( // main constructor
SetupEMSInternalVariable(state, "Electrical Storage Battery Maximum Capacity", name_, "[Ah]", maxAhCapacity_);
}
}
+ if (storageModelMode_ == StorageModelType::liIonNmcBattery) {
+ SetupOutputVariable(state, "Electric Storage Battery Temperature", OutputProcessor::Unit::C, batteryTemperature_, "System", "Average", name_);
+ }
if (zoneNum_ > 0) {
switch (storageModelMode_) {
@@ -3214,6 +3329,16 @@ ElectricStorage::ElectricStorage( // main constructor
&qdotRadZone_);
break;
}
+ case StorageModelType::liIonNmcBattery: {
+ SetupZoneInternalGain(state, zoneNum_,
+ "ElectricLoadCenter:Storage:LiIonNMCBattery",
+ name_,
+ DataHeatBalance::IntGainTypeOf_ElectricLoadCenterStorageLiIonNmcBattery,
+ &qdotConvZone_,
+ nullptr,
+ &qdotRadZone_);
+ break;
+ }
case StorageModelType::storageTypeNotSet: {
// do nothing
break;
@@ -3257,7 +3382,7 @@ void ElectricStorage::reinitAtBeginEnvironment()
lastTimeStepBound_ = initialCharge * (1.0 - availableFrac_);
thisTimeStepAvailable_ = initialCharge * availableFrac_;
thisTimeStepBound_ = initialCharge * (1.0 - availableFrac_);
- if (lifeCalculation_ == BatteyDegredationModelType::lifeCalculationYes) {
+ if (lifeCalculation_ == BatteryDegradationModelType::lifeCalculationYes) {
count0_ = 1; // Index 0 is for initial SOC, so new input starts from index 1.
b10_[0] = startingSOC_; // the initial fractional SOC is stored as the reference
x0_[0] = 0.0;
@@ -3271,6 +3396,10 @@ void ElectricStorage::reinitAtBeginEnvironment()
}
batteryDamage_ = 0.0;
}
+ } else if (storageModelMode_ == StorageModelType::liIonNmcBattery) {
+ // Copy the initial battery state to the last battery state
+ *ssc_lastBatteryState_ = *ssc_initBatteryState_;
+ ssc_battery_->set_state(*ssc_lastBatteryState_);
}
myWarmUpFlag_ = true;
}
@@ -3294,7 +3423,7 @@ void ElectricStorage::reinitAtEndWarmup()
lastTimeStepBound_ = initialCharge * (1.0 - availableFrac_);
thisTimeStepAvailable_ = initialCharge * availableFrac_;
thisTimeStepBound_ = initialCharge * (1.0 - availableFrac_);
- if (lifeCalculation_ == BatteyDegredationModelType::lifeCalculationYes) {
+ if (lifeCalculation_ == BatteryDegradationModelType::lifeCalculationYes) {
count0_ = 1; // Index 0 is for initial SOC, so new input starts from index 1.
b10_[0] = startingSOC_; // the initial fractional SOC is stored as the reference
x0_[0] = 0.0;
@@ -3308,6 +3437,10 @@ void ElectricStorage::reinitAtEndWarmup()
}
batteryDamage_ = 0.0;
}
+ } else if (storageModelMode_ == StorageModelType::liIonNmcBattery) {
+ // Copy the initial battery state to the last battery state
+ *ssc_lastBatteryState_ = *ssc_initBatteryState_;
+ ssc_battery_->set_state(*ssc_lastBatteryState_);
}
myWarmUpFlag_ = false;
}
@@ -3321,7 +3454,7 @@ void ElectricStorage::timeCheckAndUpdate(EnergyPlusData &state)
Real64 timeElapsedLoc = state.dataGlobal->HourOfDay + state.dataGlobal->TimeStep * state.dataGlobal->TimeStepZone + DataHVACGlobals::SysTimeElapsed;
if (timeElapsed_ != timeElapsedLoc) { // time changed, update last with "current" result from previous time
- if (storageModelMode_ == StorageModelType::kiBaMBattery && lifeCalculation_ == BatteyDegredationModelType::lifeCalculationYes) {
+ if (storageModelMode_ == StorageModelType::kiBaMBattery && lifeCalculation_ == BatteryDegradationModelType::lifeCalculationYes) {
// At this point, the current values, last time step values and last two time step values have not been updated, hence:
// "ThisTimeStep*" actually points to the previous one time step
// "LastTimeStep*" actually points to the previous two time steps
@@ -3361,6 +3494,8 @@ void ElectricStorage::timeCheckAndUpdate(EnergyPlusData &state)
batteryDamage_ += oneNmb0_[binNum] / CurveManager::CurveValue(state, lifeCurveNum_, (double(binNum) / double(cycleBinNum_)));
}
}
+ } else if ( storageModelMode_ == StorageModelType::liIonNmcBattery ) {
+ *ssc_lastBatteryState_ = ssc_battery_->get_state();
}
lastTimeStepStateOfCharge_ = thisTimeStepStateOfCharge_;
@@ -3392,7 +3527,9 @@ void ElectricStorage::simulate(EnergyPlusData &state,
if (storageModelMode_ == StorageModelType::simpleBucketStorage) {
simulateSimpleBucketModel(powerCharge, powerDischarge, charging, discharging, controlSOCMaxFracLimit, controlSOCMinFracLimit);
} else if (storageModelMode_ == StorageModelType::kiBaMBattery) {
- simulateKineticBatteryModel(state,powerCharge, powerDischarge, charging, discharging, controlSOCMaxFracLimit, controlSOCMinFracLimit);
+ simulateKineticBatteryModel(state, powerCharge, powerDischarge, charging, discharging, controlSOCMaxFracLimit, controlSOCMinFracLimit);
+ } else if (storageModelMode_ == StorageModelType::liIonNmcBattery) {
+ simulateLiIonNmcBatteryModel(state, powerCharge, powerDischarge, charging, discharging, controlSOCMaxFracLimit, controlSOCMinFracLimit);
}
}
@@ -3705,6 +3842,88 @@ void ElectricStorage::simulateKineticBatteryModel(EnergyPlusData &state,
powerDischarge = drawnPower_;
}
+void ElectricStorage::simulateLiIonNmcBatteryModel(EnergyPlusData &state,
+ Real64 &powerCharge,
+ Real64 &powerDischarge,
+ bool &charging,
+ bool &discharging,
+ Real64 const controlSOCMaxFracLimit,
+ Real64 const controlSOCMinFracLimit)
+{
+
+ // Copy the battery state from the end of last timestep
+ battery_state battState = *ssc_lastBatteryState_;
+
+ // Set the temperature the battery sees
+ if (zoneNum_ > 0) {
+ // If in a zone, use the zone temperature
+ battState.thermal->T_room = DataHeatBalFanSys::ZT(zoneNum_);
+ } else {
+ // If outside, use outdoor temperature
+ battState.thermal->T_room = state.dataEnvrn->OutDryBulbTemp;
+ }
+ ssc_battery_->set_state(battState);
+
+ // Set the SOC limits
+ ssc_battery_->changeSOCLimits(controlSOCMinFracLimit * 100.0, controlSOCMaxFracLimit * 100.0);
+
+ // Set the current timestep length
+ ssc_battery_->ChangeTimestep(DataHVACGlobals::TimeStepSys);
+
+ // Run the battery
+ // SAM uses negative values for charging, positive for discharging
+ // E+ power/energy outputs are positive
+ double power{0.0}; // Using double instead of Real64 because SSC is expecting a double
+ if (charging) {
+ power = - powerCharge;
+ } else if (discharging) {
+ power = powerDischarge;
+ }
+ power *= 0.001; // Convert to kW
+ ssc_battery_->runPower(power);
+
+ // Store outputs
+ const battery_state& battState2{ssc_battery_->get_state()};
+ if (battState2.P < 0.0) { // negative for charging
+ storageMode_ = 2;
+ powerCharge = fabs(battState2.P) * 1000.0; // kW -> W
+ powerDischarge = 0.0;
+ charging = true;
+ discharging = false;
+ } else if (battState2.P > 0.0) { // positive for discharging
+ storageMode_ = 1;
+ powerCharge = 0.0;
+ powerDischarge = fabs(battState2.P) * 1000.0; // kW -> W
+ charging = false;
+ discharging = true;
+ } else {
+ storageMode_ = 0;
+ powerCharge = 0.0;
+ powerDischarge = 0.0;
+ charging = false;
+ discharging = false;
+ }
+ absoluteSOC_ = ssc_battery_->charge_total();
+ fractionSOC_ = ssc_battery_->SOC() * 0.01; // % -> fraction
+ batteryCurrent_ = ssc_battery_->I();
+ batteryVoltage_ = ssc_battery_->V();
+ batteryDamage_ = 1.0 - (ssc_battery_->charge_maximum_lifetime() / maxAhCapacity_);
+ storedPower_ = powerCharge;
+ storedEnergy_ = storedPower_ * DataHVACGlobals::TimeStepSys * DataGlobalConstants::SecInHour;
+ drawnPower_ = powerDischarge;
+ drawnEnergy_ = drawnPower_ * DataHVACGlobals::TimeStepSys * DataGlobalConstants::SecInHour;
+ decrementedEnergyStored_ = - storedEnergy_;
+ thermLossRate_ = battState2.thermal->heat_dissipated * 1000.0; // kW -> W
+ thermLossEnergy_ = thermLossRate_ * DataHVACGlobals::TimeStepSys * DataGlobalConstants::SecInHour;
+ batteryTemperature_ = battState2.thermal->T_batt;
+
+ // Zone Heat Gains
+ if (zoneNum_ > 0) { // set values for zone heat gains
+ qdotConvZone_ = (1.0 - zoneRadFract_) * thermLossRate_;
+ qdotRadZone_ = (zoneRadFract_) * thermLossRate_;
+ }
+}
+
Real64 ElectricStorage::drawnPower() const
{
return drawnPower_;
@@ -3725,6 +3944,17 @@ Real64 ElectricStorage::storedEnergy() const
return storedEnergy_;
}
+Real64 ElectricStorage::stateOfChargeFraction() const
+{
+ return fractionSOC_;
+}
+
+Real64 ElectricStorage::batteryTemperature() const
+{
+ assert(storageModelMode_ == StorageModelType::liIonNmcBattery);
+ return batteryTemperature_;
+}
+
bool ElectricStorage::determineCurrentForBatteryDischarge(EnergyPlusData &state,
Real64 &curI0,
Real64 &curT0,
diff --git a/src/EnergyPlus/ElectricPowerServiceManager.hh b/src/EnergyPlus/ElectricPowerServiceManager.hh
index 8a968b6d9d0..4a0969fa36b 100644
--- a/src/EnergyPlus/ElectricPowerServiceManager.hh
+++ b/src/EnergyPlus/ElectricPowerServiceManager.hh
@@ -62,6 +62,9 @@
#include
#include
+// SSC Headers
+#include <../third_party/ssc/shared/lib_battery.h>
+
namespace EnergyPlus {
enum class ThermalLossDestination : int
@@ -267,6 +270,10 @@ public: // methods
Real64 storedEnergy() const;
+ Real64 stateOfChargeFraction() const;
+
+ Real64 batteryTemperature() const;
+
bool determineCurrentForBatteryDischarge(EnergyPlusData &state,
Real64 &curI0,
Real64 &curT0,
@@ -299,6 +306,14 @@ private: // methods
Real64 const controlSOCMaxFracLimit,
Real64 const controlSOCMinFracLimit);
+ void simulateLiIonNmcBatteryModel(EnergyPlusData &state,
+ Real64 &powerCharge,
+ Real64 &powerDischarge,
+ bool &charging,
+ bool &discharging,
+ Real64 const controlSOCMaxFracLimit,
+ Real64 const controlSOCMinFracLimit);
+
void rainflow(int const numbin, // numbin = constant value
Real64 const input, // input = input value from other object (battery model)
std::vector &B1, // stores values of points, calculated here - stored for next timestep
@@ -318,10 +333,11 @@ private: // data
{
storageTypeNotSet = 0,
simpleBucketStorage,
- kiBaMBattery
+ kiBaMBattery,
+ liIonNmcBattery,
};
- enum class BatteyDegredationModelType : int
+ enum class BatteryDegradationModelType : int
{
degredationNotSet = 0,
lifeCalculationYes,
@@ -356,16 +372,29 @@ private: // data
int cycleBinNum_; // [ ] number of cycle bins
Real64 startingSOC_; // [ ] initial fractional state of charge
Real64 maxAhCapacity_; // [Ah]maximum capacity
- Real64 availableFrac_; // [ ] fraction of available charge capacity
+ Real64 availableFrac_; // [ ] maximum fraction of available charge capacity
Real64 chargeConversionRate_; // [1/h]change rate from bound charge energy to available charge
Real64 chargedOCV_; // [V] fully charged open circuit voltage
Real64 dischargedOCV_; // [V] fully discharged open circuit voltage
Real64 internalR_; // [ohm]internal electric resistance
Real64 maxDischargeI_; // [A] maximum discharging current
Real64 cutoffV_; // [V] cut-off voltage
- Real64 maxChargeRate_; // [1/h]charge rate limit
- BatteyDegredationModelType lifeCalculation_; // [ ]battery life calculation: Yes or No
- int lifeCurveNum_; // [ ]battery life curve name index number
+ Real64 maxChargeRate_; // [1/h] charge rate limit
+ BatteryDegradationModelType lifeCalculation_; // [ ] battery life calculation: Yes or No
+ int lifeCurveNum_; // [ ] battery life curve name index number
+ Real64 liIon_dcToDcChargingEff_; // [ ] DC to DC Charging Efficiency (Li-ion NMC model)
+ Real64 liIon_mass_; // [kg] mass of battery (Li-ion NMC model)
+ Real64 liIon_surfaceArea_; // [m2] battery surface area (Li-ion NMC model)
+ Real64 liIon_Cp_; // [J/kg-K] battery specific heat capacity (Li-ion NMC model)
+ Real64 liIon_heatTransferCoef_; // [W/m2-K] Heat Transfer Coefficient Between Battery and Ambient (Li-ion NMC model)
+ Real64 liIon_Vfull_; // [V] Fully charged cell voltage (Li-ion NMC model)
+ Real64 liIon_Vexp_; // [V] Cell Voltage at End of Exponential Zone (Li-ion NMC model)
+ Real64 liIon_Vnom_; // [V] Cell voltage at end of nominal zone (Li-ion NMC model)
+ Real64 liIon_Vnom_default_; // [V] Default nominal cell voltage (Li-ion NMC model)
+ Real64 liIon_Qfull_; // [A-h] Fully charged cell capacity (Li-ion NMC model)
+ Real64 liIon_Qexp_; // [A-h] Cell capacity at end of exponential zone (Li-ion NMC model)
+ Real64 liIon_Qnom_; // [A-h] Cell capacity at end of nominal zone (Li-ion NMC model)
+ Real64 liIon_C_rate_; // [ ] Rate at which voltage vs capacity curve input (Li-ion NMC model)
// calculated and from elsewhere vars
Real64 thisTimeStepStateOfCharge_; // [J]
Real64 lastTimeStepStateOfCharge_; // [J]
@@ -381,6 +410,10 @@ private: // data
Real64 lastTimeStepBound_; // [Ah] bound charge at the previous timestep
Real64 lastTwoTimeStepAvailable_; // [Ah] available charge at the previous two timesteps
Real64 lastTwoTimeStepBound_; // [Ah] bound charge at the previous two timesteps
+ // Li-ion NMC battery objects from SAM Simulation Core lib_battery
+ std::unique_ptr ssc_battery_;
+ std::unique_ptr ssc_lastBatteryState_;
+ std::unique_ptr ssc_initBatteryState_;
// battery life calculation variables
int count0_;
std::vector b10_;
@@ -397,6 +430,7 @@ private: // data
Real64 batteryCurrent_; // [A] total current
Real64 batteryVoltage_; // [V] total voltage
Real64 batteryDamage_; // [ ] fractional battery damage
+ Real64 batteryTemperature_; // [C] battery temperature (only used in Li-ion batteries)
}; // ElectricStorage
diff --git a/src/EnergyPlus/HVACStandAloneERV.cc b/src/EnergyPlus/HVACStandAloneERV.cc
index 7d003a3a88d..45dcc9d985b 100644
--- a/src/EnergyPlus/HVACStandAloneERV.cc
+++ b/src/EnergyPlus/HVACStandAloneERV.cc
@@ -108,6 +108,7 @@ namespace EnergyPlus::HVACStandAloneERV {
// Using/Aliasing
using namespace DataLoopNode;
using namespace DataHVACGlobals;
+ using Fans::GetFanVolFlow;
using ScheduleManager::GetCurrentScheduleValue;
using ScheduleManager::GetScheduleIndex;
@@ -2047,4 +2048,91 @@ namespace EnergyPlus::HVACStandAloneERV {
return GetStandAloneERVReturnAirNode;
}
+ bool GetStandAloneERVNodeNumber(EnergyPlusData &state, int const NodeNumber)
+ {
+ // PURPOSE OF THIS FUNCTION:
+ // Check if a node is used by a stand alone ERV
+ // and can be excluded from an airflow network.
+
+ // Return value
+ bool StandSloneERVAFNException;
+
+ int StandAloneERVIndex;
+
+ if (state.dataHVACStandAloneERV->GetERVInputFlag) {
+ GetStandAloneERV(state);
+ state.dataHVACStandAloneERV->GetERVInputFlag = false;
+ }
+
+ StandSloneERVAFNException = false;
+
+ for (StandAloneERVIndex = 1; StandAloneERVIndex <= state.dataHVACStandAloneERV->NumStandAloneERVs; ++StandAloneERVIndex) {
+
+ auto StandAloneERV = state.dataHVACStandAloneERV->StandAloneERV(StandAloneERVIndex);
+ bool ErrorsFound{false};
+ int SupplyFanInletNodeIndex(0);
+ int SupplyFanOutletNodeIndex(0);
+ int ExhaustFanInletNodeIndex(0);
+ int ExhaustFanOutletNodeIndex(0);
+ Real64 SupplyFanAirFlow;
+ Real64 ExhaustFanAirFlow;
+
+ // Get supply air fan inlet and outlet node index and air flow
+ // ZoneHVAC:EnergyRecoveryVentilator only accepts Fan:SystemModel or Fan:OnOff
+ if (StandAloneERV.SupplyAirFanType_Num == DataHVACGlobals::FanType_SystemModelObject) {
+ // Fan:SystemModel
+ SupplyFanInletNodeIndex = HVACFan::fanObjs[StandAloneERV.SupplyAirFanIndex]->inletNodeNum;
+ SupplyFanOutletNodeIndex = HVACFan::fanObjs[StandAloneERV.SupplyAirFanIndex]->outletNodeNum;
+ SupplyFanAirFlow = HVACFan::fanObjs[StandAloneERV.SupplyAirFanIndex]->designAirVolFlowRate;
+ } else {
+ // Fan:OnOff
+ SupplyFanInletNodeIndex = Fans::GetFanInletNode(state, "Fan:OnOff", StandAloneERV.SupplyAirFanName, ErrorsFound);
+ SupplyFanOutletNodeIndex = Fans::GetFanOutletNode(state, "Fan:OnOff", StandAloneERV.SupplyAirFanName, ErrorsFound);
+ GetFanVolFlow(StandAloneERV.SupplyAirFanIndex, SupplyFanAirFlow);
+ if (ErrorsFound) {
+ ShowWarningError(state, "Could not retrieve fan outlet node for this unit=\"" + StandAloneERV.Name + "\".");
+ ErrorsFound = true;
+ }
+ }
+ // Get exhaust air fan inlet and outlet node index and air flow
+ if (StandAloneERV.ExhaustAirFanType_Num == DataHVACGlobals::FanType_SystemModelObject) {
+ // Fan:SystemModel
+ ExhaustFanInletNodeIndex = HVACFan::fanObjs[StandAloneERV.ExhaustAirFanIndex]->inletNodeNum;
+ ExhaustFanOutletNodeIndex = HVACFan::fanObjs[StandAloneERV.ExhaustAirFanIndex]->outletNodeNum;
+ ExhaustFanAirFlow = HVACFan::fanObjs[StandAloneERV.ExhaustAirFanIndex]->designAirVolFlowRate;
+ } else {
+ // Fan:OnOff
+ ExhaustFanInletNodeIndex = Fans::GetFanInletNode(state, "Fan:OnOff", StandAloneERV.ExhaustAirFanName, ErrorsFound);
+ ExhaustFanOutletNodeIndex = Fans::GetFanOutletNode(state, "Fan:OnOff", StandAloneERV.ExhaustAirFanName, ErrorsFound);
+ GetFanVolFlow(StandAloneERV.ExhaustAirFanIndex, ExhaustFanAirFlow);
+ if (ErrorsFound) {
+ ShowWarningError(state, "Could not retrieve fan outlet node for this unit=\"" + StandAloneERV.Name + "\".");
+ ErrorsFound = true;
+ }
+ }
+
+ // If a standalone ERV's airflow is unbalanced it shouldn't be model along with an AFN
+ if (std::abs(SupplyFanAirFlow - ExhaustFanAirFlow) >= 1E-20 ||
+ std::abs(StandAloneERV.DesignSAFanVolFlowRate - StandAloneERV.DesignEAFanVolFlowRate) >= 1E-20) {
+ break;
+ }
+
+ // Supply air fan nodes
+ if (NodeNumber == SupplyFanInletNodeIndex || NodeNumber == SupplyFanOutletNodeIndex || NodeNumber == ExhaustFanInletNodeIndex ||
+ NodeNumber == ExhaustFanOutletNodeIndex) {
+ StandSloneERVAFNException = true;
+ break;
+ }
+
+ // Supply air inlet node
+ if (NodeNumber == StandAloneERV.SupplyAirInletNode) {
+ StandSloneERVAFNException = true;
+ break;
+ }
+
+ }
+
+ return StandSloneERVAFNException;
+ }
+
} // namespace EnergyPlus
diff --git a/src/EnergyPlus/HVACStandAloneERV.hh b/src/EnergyPlus/HVACStandAloneERV.hh
index 94c41596c98..66dca34f68c 100644
--- a/src/EnergyPlus/HVACStandAloneERV.hh
+++ b/src/EnergyPlus/HVACStandAloneERV.hh
@@ -192,6 +192,8 @@ namespace HVACStandAloneERV {
int GetStandAloneERVReturnAirNode(EnergyPlusData &state, int const StandAloneERVNum);
+ bool GetStandAloneERVNodeNumber(EnergyPlusData &state, int const NodeNumber);
+
} // namespace HVACStandAloneERV
struct HVACStandAloneERVData : BaseGlobalStruct {
diff --git a/src/EnergyPlus/HWBaseboardRadiator.cc b/src/EnergyPlus/HWBaseboardRadiator.cc
index b6892ffaaab..faac220a19d 100644
--- a/src/EnergyPlus/HWBaseboardRadiator.cc
+++ b/src/EnergyPlus/HWBaseboardRadiator.cc
@@ -1797,7 +1797,7 @@ namespace HWBaseboardRadiator {
Area = Surface(SurfNum).Area;
if (Surface(SurfNum).Class == SurfaceClass::Window) {
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The area is the shade or blind area = the sum of the glazing area and the divider area (which is zero if no divider)
Area += SurfWinDividerArea(SurfNum);
}
@@ -1808,8 +1808,7 @@ namespace HWBaseboardRadiator {
SurfWinFrameTempSurfIn(SurfNum);
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn &&
- SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf += HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) *
SurfWinDividerTempSurfIn(SurfNum);
diff --git a/src/EnergyPlus/HeatBalanceAirManager.cc b/src/EnergyPlus/HeatBalanceAirManager.cc
index 1e7238d8ba6..09ba603d6f1 100644
--- a/src/EnergyPlus/HeatBalanceAirManager.cc
+++ b/src/EnergyPlus/HeatBalanceAirManager.cc
@@ -316,7 +316,7 @@ namespace HeatBalanceAirManager {
// flow
- if (ZoneAirMassFlow.EnforceZoneMassBalance && ZoneAirMassFlow.BalanceMixing) {
+ if (ZoneAirMassFlow.EnforceZoneMassBalance && ZoneAirMassFlow.ZoneFlowAdjustment != DataHeatBalance::NoAdjustReturnAndMixing) {
for (Loop = 1; Loop <= TotMixing; ++Loop) {
ZoneMassBalanceFlag(Mixing(Loop).ZonePtr) = true;
ZoneMassBalanceFlag(Mixing(Loop).FromZone) = true;
@@ -3860,7 +3860,7 @@ namespace HeatBalanceAirManager {
if (ZoneAirMassFlow.EnforceZoneMassBalance) {
// Check for infiltration in zone which are only a mixing source zone
for (ZoneNum = 1; ZoneNum <= state.dataGlobal->NumOfZones; ++ZoneNum) {
- if ((ZoneAirMassFlow.BalanceMixing && MassConservation(ZoneNum).IsOnlySourceZone) &&
+ if ((ZoneAirMassFlow.ZoneFlowAdjustment != DataHeatBalance::NoAdjustReturnAndMixing && MassConservation(ZoneNum).IsOnlySourceZone) &&
(ZoneAirMassFlow.InfiltrationTreatment != NoInfiltrationFlow)) {
if (MassConservation(ZoneNum).InfiltrationPtr == 0) {
ShowSevereError(state, RoutineName + ": Infiltration object is not defined for zone = " + Zone(ZoneNum).Name);
@@ -3888,7 +3888,7 @@ namespace HeatBalanceAirManager {
"System",
"Average",
Zone(ZoneNum).Name);
- if (ZoneAirMassFlow.BalanceMixing &&
+ if ((ZoneAirMassFlow.ZoneFlowAdjustment != DataHeatBalance::NoAdjustReturnAndMixing) &&
((MassConservation(ZoneNum).NumSourceZonesMixingObject + MassConservation(ZoneNum).NumReceivingZonesMixingObject) > 0)) {
SetupOutputVariable(state, "Zone Air Mass Balance Mixing Receiving Mass Flow Rate",
OutputProcessor::Unit::kg_s,
diff --git a/src/EnergyPlus/HeatBalanceIntRadExchange.cc b/src/EnergyPlus/HeatBalanceIntRadExchange.cc
index 25143285417..9c1b25a9707 100644
--- a/src/EnergyPlus/HeatBalanceIntRadExchange.cc
+++ b/src/EnergyPlus/HeatBalanceIntRadExchange.cc
@@ -171,8 +171,8 @@ namespace HeatBalanceIntRadExchange {
bool IntShadeOrBlindStatusChanged; // True if status of interior shade or blind on at least
// one window in a zone has changed from previous time step
- int ShadeFlag; // Window shading status current time step
- int ShadeFlagPrev; // Window shading status previous time step
+ WinShadingType ShadeFlag; // Window shading status current time step
+ WinShadingType ShadeFlagPrev; // Window shading status previous time step
// variables added as part of strategy to reduce calculation time - Glazer 2011-04-22
static Array1D SurfaceTempRad;
@@ -271,9 +271,7 @@ namespace HeatBalanceIntRadExchange {
if (state.dataConstruction->Construct(Surface(SurfNum).Construction).TypeIsWindow) {
ShadeFlag = SurfWinShadingFlag(SurfNum);
ShadeFlagPrev = SurfWinExtIntShadePrevTS(SurfNum);
- if ((ShadeFlagPrev != IntShadeOn && ShadeFlag == IntShadeOn) ||
- (ShadeFlagPrev != IntBlindOn && ShadeFlag == IntBlindOn) ||
- (ShadeFlagPrev == IntShadeOn && ShadeFlag != IntShadeOn) || (ShadeFlagPrev == IntBlindOn && ShadeFlag != IntBlindOn))
+ if (ShadeFlagPrev != ShadeFlag && (ANY_INTERIOR_SHADE_BLIND(ShadeFlagPrev) || ANY_INTERIOR_SHADE_BLIND(ShadeFlag)))
IntShadeOrBlindStatusChanged = true;
if (SurfWinWindowModelType(SurfNum) == WindowEQLModel &&
DataWindowEquivalentLayer::CFS(state.dataConstruction->Construct(Surface(SurfNum).Construction).EQLConsPtr).ISControlled) {
@@ -291,8 +289,7 @@ namespace HeatBalanceIntRadExchange {
int const ConstrNum = Surface(SurfNum).Construction;
zone_info.Emissivity(ZoneSurfNum) = state.dataConstruction->Construct(ConstrNum).InsideAbsorpThermal;
auto const &surface_window(SurfaceWindow(SurfNum));
- if (state.dataConstruction->Construct(ConstrNum).TypeIsWindow &&
- (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn)) {
+ if (state.dataConstruction->Construct(ConstrNum).TypeIsWindow && ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
zone_info.Emissivity(ZoneSurfNum) =
InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), surface_window.EffShBlindEmiss) +
InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), surface_window.EffGlassEmiss);
@@ -331,14 +328,14 @@ namespace HeatBalanceIntRadExchange {
if (construct.WindowTypeEQL) {
SurfaceTempRad[ZoneSurfNum] = SurfWinEffInsSurfTemp(SurfNum);
SurfaceEmiss[ZoneSurfNum] = EQLWindowInsideEffectiveEmiss(state, ConstrNum);
- } else if (construct.WindowTypeBSDF && SurfWinShadingFlag(SurfNum) == IntShadeOn) {
+ } else if (construct.WindowTypeBSDF && SurfWinShadingFlag(SurfNum) == WinShadingType::IntShade) {
SurfaceTempRad[ZoneSurfNum] = SurfWinEffInsSurfTemp(SurfNum);
SurfaceEmiss[ZoneSurfNum] = surface_window.EffShBlindEmiss[0] + surface_window.EffGlassEmiss[0];
} else if (construct.WindowTypeBSDF) {
SurfaceTempRad[ZoneSurfNum] = SurfWinEffInsSurfTemp(SurfNum);
SurfaceEmiss[ZoneSurfNum] = construct.InsideAbsorpThermal;
} else if (construct.TypeIsWindow && SurfWinOriginalClass(SurfNum) != SurfaceClass::TDD_Diffuser) {
- if (SurfIterations == 0 && SurfWinShadingFlag(SurfNum) <= 0) {
+ if (SurfIterations == 0 && NOT_SHADED(SurfWinShadingFlag(SurfNum))) {
// If the window is bare this TS and it is the first time through we use the previous TS glass
// temperature whether or not the window was shaded in the previous TS. If the window was shaded
// the previous time step this temperature is a better starting value than the shade temperature.
@@ -346,7 +343,7 @@ namespace HeatBalanceIntRadExchange {
SurfaceEmiss[ZoneSurfNum] = construct.InsideAbsorpThermal;
// For windows with an interior shade or blind an effective inside surface temp
// and emiss is used here that is a weighted combination of shade/blind and glass temp and emiss.
- } else if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ } else if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
SurfaceTempRad[ZoneSurfNum] = SurfWinEffInsSurfTemp(SurfNum);
SurfaceEmiss[ZoneSurfNum] = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), surface_window.EffShBlindEmiss) +
InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), surface_window.EffGlassEmiss);
diff --git a/src/EnergyPlus/HeatBalanceManager.cc b/src/EnergyPlus/HeatBalanceManager.cc
index a43ffdddca7..0258524b30a 100644
--- a/src/EnergyPlus/HeatBalanceManager.cc
+++ b/src/EnergyPlus/HeatBalanceManager.cc
@@ -1270,32 +1270,43 @@ namespace HeatBalanceManager {
if (NumObjects > 0) {
inputProcessor->getObjectItem(state,
- CurrentModuleObject,
- 1,
- AlphaName,
- NumAlpha,
- BuildingNumbers,
- NumNumber,
- IOStat,
- lNumericFieldBlanks,
- lAlphaFieldBlanks,
- cAlphaFieldNames,
- cNumericFieldNames);
+ CurrentModuleObject,
+ 1,
+ AlphaName,
+ NumAlpha,
+ BuildingNumbers,
+ NumNumber,
+ IOStat,
+ lNumericFieldBlanks,
+ lAlphaFieldBlanks,
+ cAlphaFieldNames,
+ cNumericFieldNames);
if (NumAlpha > 0) {
{
auto const SELECT_CASE_var(AlphaName(1));
- if (SELECT_CASE_var == "YES") {
- ZoneAirMassFlow.BalanceMixing = true;
+ if (SELECT_CASE_var == "ADJUSTMIXINGONLY") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustMixingOnly;
ZoneAirMassFlow.EnforceZoneMassBalance = true;
- AlphaName(1) = "Yes";
- } else if (SELECT_CASE_var == "NO") {
- ZoneAirMassFlow.BalanceMixing = false;
- AlphaName(1) = "No";
+ AlphaName(1) = "AdjustMixingOnly";
+ } else if (SELECT_CASE_var == "ADJUSTRETURNONLY") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustReturnOnly;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "AdjustReturnOnly";
+ } else if (SELECT_CASE_var == "ADJUSTMIXINGTHENRETURN") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustMixingThenReturn;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "AdjustMixingThenReturn";
+ } else if (SELECT_CASE_var == "ADJUSTRETURNTHENMIXING") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = AdjustReturnThenMixing;
+ ZoneAirMassFlow.EnforceZoneMassBalance = true;
+ AlphaName(1) = "AdjustReturnThenMixing";
+ } else if (SELECT_CASE_var == "NONE") {
+ ZoneAirMassFlow.ZoneFlowAdjustment = NoAdjustReturnAndMixing;
+ AlphaName(1) = "None";
} else {
- ZoneAirMassFlow.BalanceMixing = false;
- AlphaName(1) = "No";
- ShowWarningError(state,
- CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(1) + ". The default choice is assigned = No");
+ ZoneAirMassFlow.ZoneFlowAdjustment = NoAdjustReturnAndMixing;
+ AlphaName(1) = "None";
+ ShowWarningError(state, CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(1) + ". The default choice is assigned = None");
}
}
}
@@ -1306,14 +1317,12 @@ namespace HeatBalanceManager {
ZoneAirMassFlow.InfiltrationTreatment = AddInfiltrationFlow;
ZoneAirMassFlow.EnforceZoneMassBalance = true;
AlphaName(2) = "AddInfiltrationFlow";
- if (!state.dataContaminantBalance->Contaminant.CO2Simulation)
- state.dataContaminantBalance->Contaminant.SimulateContaminants = true;
+ if (!state.dataContaminantBalance->Contaminant.CO2Simulation) state.dataContaminantBalance->Contaminant.SimulateContaminants = true;
} else if (SELECT_CASE_var == "ADJUSTINFILTRATIONFLOW") {
ZoneAirMassFlow.InfiltrationTreatment = AdjustInfiltrationFlow;
ZoneAirMassFlow.EnforceZoneMassBalance = true;
AlphaName(2) = "AddInfiltrationFlow";
- if (!state.dataContaminantBalance->Contaminant.CO2Simulation)
- state.dataContaminantBalance->Contaminant.SimulateContaminants = true;
+ if (!state.dataContaminantBalance->Contaminant.CO2Simulation) state.dataContaminantBalance->Contaminant.SimulateContaminants = true;
} else if (SELECT_CASE_var == "NONE") {
ZoneAirMassFlow.InfiltrationTreatment = NoInfiltrationFlow;
AlphaName(2) = "None";
@@ -1321,9 +1330,8 @@ namespace HeatBalanceManager {
ZoneAirMassFlow.InfiltrationTreatment = AddInfiltrationFlow;
ZoneAirMassFlow.EnforceZoneMassBalance = true;
AlphaName(2) = "AddInfiltrationFlow";
- ShowWarningError(state,
- CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(2) +
- ". The default choice is assigned = AddInfiltrationFlow");
+ ShowWarningError(state, CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(2) +
+ ". The default choice is assigned = AddInfiltrationFlow");
}
}
} else {
@@ -1346,9 +1354,8 @@ namespace HeatBalanceManager {
} else {
ZoneAirMassFlow.InfiltrationZoneType = MixingSourceZonesOnly;
AlphaName(3) = "MixingSourceZonesOnly";
- ShowWarningError(state,
- CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(3) +
- ". The default choice is assigned = MixingSourceZonesOnly");
+ ShowWarningError(state, CurrentModuleObject + ": Invalid input of " + cAlphaFieldNames(3) +
+ ". The default choice is assigned = MixingSourceZonesOnly");
}
}
} else {
@@ -1361,7 +1368,7 @@ namespace HeatBalanceManager {
}
static constexpr auto Format_732(
- "! , Enforce Mass Balance, Adjust Zone Mixing, Adjust Zone Infiltration "
+ "! , Enforce Mass Balance, Adjust Zone Mixing and Return {{AdjustMixingOnly | AdjustReturnOnly | AdjustMixingThenReturn | AdjustReturnThenMixing | None}}, Adjust Zone Infiltration "
"{{AddInfiltration | AdjustInfiltration | None}}, Infiltration Zones {{MixingSourceZonesOnly | AllZones}}\n");
static constexpr auto Format_733(" Zone Air Mass Flow Balance Simulation, {},{},{},{}\n");
diff --git a/src/EnergyPlus/HeatBalanceSurfaceManager.cc b/src/EnergyPlus/HeatBalanceSurfaceManager.cc
index 2a1765d610a..ef18f00cc7d 100644
--- a/src/EnergyPlus/HeatBalanceSurfaceManager.cc
+++ b/src/EnergyPlus/HeatBalanceSurfaceManager.cc
@@ -670,7 +670,7 @@ namespace HeatBalanceSurfaceManager {
if (firstSurfWin == -1) continue;
for (int SurfNum = firstSurfWin; SurfNum <= lastSurfWin; ++SurfNum) {
SurfWinFracTimeShadingDeviceOn(SurfNum) = 0.0;
- if (SurfWinShadingFlag(SurfNum) > 0) {
+ if (IS_SHADED(SurfWinShadingFlag(SurfNum))) {
SurfWinFracTimeShadingDeviceOn(SurfNum) = 1.0;
} else {
SurfWinFracTimeShadingDeviceOn(SurfNum) = 0.0;
@@ -1051,76 +1051,46 @@ namespace HeatBalanceSurfaceManager {
// shading
if (Surface(iSurf).HasShadeControl) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchFenSwitchable, surfName, "Yes");
- // shading report
PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscName, surfName, WindowShadingControl(curWSC).Name);
- {
- auto const SELECT_CASE_var1(WindowShadingControl(curWSC).ShadingType);
- if (SELECT_CASE_var1 == WSC_ST_NoShade) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "No Shade");
- } else if (SELECT_CASE_var1 == WSC_ST_InteriorShade) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Interior Shade");
- } else if (SELECT_CASE_var1 == WSC_ST_SwitchableGlazing) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Switchable Glazing");
- } else if (SELECT_CASE_var1 == WSC_ST_ExteriorShade) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Exterior Shade");
- } else if (SELECT_CASE_var1 == WSC_ST_InteriorBlind) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Interior Blind");
- } else if (SELECT_CASE_var1 == WSC_ST_ExteriorBlind) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Exterior Blind");
- } else if (SELECT_CASE_var1 == WSC_ST_BetweenGlassShade) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Between Glass Shade");
- } else if (SELECT_CASE_var1 == WSC_ST_BetweenGlassBlind) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Between Glass Blind");
- } else if (SELECT_CASE_var1 == WSC_ST_ExteriorScreen) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, "Exterior Screen");
- }
- }
- {
- auto const SELECT_CASE_var1(WindowShadingControl(curWSC).ShadingControlType);
- if (SELECT_CASE_var1 == WSCT_AlwaysOn) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "AlwaysOn");
- } else if (SELECT_CASE_var1 == WSCT_AlwaysOff) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "AlwaysOff");
- } else if (SELECT_CASE_var1 == WSCT_OnIfScheduled) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfScheduleAllows");
- } else if (SELECT_CASE_var1 == WSCT_HiSolar) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighSolarOnWindow");
- } else if (SELECT_CASE_var1 == WSCT_HiHorzSolar) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighHorizontalSolar");
- } else if (SELECT_CASE_var1 == WSCT_HiOutAirTemp) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighOutdoorAirTemperature");
- } else if (SELECT_CASE_var1 == WSCT_HiZoneAirTemp) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighZoneAirTemperature");
- } else if (SELECT_CASE_var1 == WSCT_HiZoneCooling) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighZoneCooling");
- } else if (SELECT_CASE_var1 == WSCT_HiGlare) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighGlare");
- } else if (SELECT_CASE_var1 == WSCT_MeetDaylIlumSetp) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "MeetDaylightIlluminanceSetpoint");
- } else if (SELECT_CASE_var1 == WSCT_OnNightLoOutTemp_OffDay) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnNightIfLowOutdoorTempAndOffDay");
- } else if (SELECT_CASE_var1 == WSCT_OnNightLoInTemp_OffDay) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnNightIfLowInsideTempAndOffDay");
- } else if (SELECT_CASE_var1 == WSCT_OnNightIfHeating_OffDay) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnNightIfHeatingAndOffDay");
- } else if (SELECT_CASE_var1 == WSCT_OnNightLoOutTemp_OnDayCooling) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnNightIfLowOutdoorTempAndOnDayIfCooling");
- } else if (SELECT_CASE_var1 == WSCT_OnNightIfHeating_OnDayCooling) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnNightIfHeatingAndOnDayIfCooling");
- } else if (SELECT_CASE_var1 == WSCT_OffNight_OnDay_HiSolarWindow) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OffNightAndOnDayIfCoolingAndHighSolarOnWindow");
- } else if (SELECT_CASE_var1 == WSCT_OnNight_OnDay_HiSolarWindow) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnNightAndOnDayIfCoolingAndHighSolarOnWindow");
- } else if (SELECT_CASE_var1 == WSCT_OnHiOutTemp_HiSolarWindow) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighOutdoorAirTempAndHighSolarOnWindow");
- } else if (SELECT_CASE_var1 == WSCT_OnHiOutTemp_HiHorzSolar) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighOutdoorAirTempAndHighHorizontalSolar");
- } else if (SELECT_CASE_var1 == WSCT_OnHiZoneTemp_HiSolarWindow) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighZoneAirTempAndHighSolarOnWindow");
- } else if (SELECT_CASE_var1 == WSCT_OnHiZoneTemp_HiHorzSolar) {
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, "OnIfHighZoneAirTempAndHighHorizontalSolar");
- }
- }
+ // shading report
+ std::vector WindowShadingTypeStr = {
+ "No Shade", // 0
+ "Shade Off", // 1
+ "Interior Shade",
+ "Switchable Glazing",
+ "Exterior Shade",
+ "Exterior Screen",
+ "Interior Blind",
+ "Exterior Blind",
+ "Between Glass Shade",
+ "Between Glass Blind",
+ };
+ std::vector WindowShadingControlTypeStr = {
+ "Uncontrolled",
+ "AlwaysOn",
+ "AlwaysOff",
+ "OnIfScheduleAllows",
+ "OnIfHighSolarOnWindow",
+ "OnIfHighHorizontalSolar",
+ "OnIfHighOutdoorAirTemperature",
+ "OnIfHighZoneAirTemperature",
+ "OnIfHighZoneCooling",
+ "OnIfHighGlare",
+ "MeetDaylightIlluminanceSetpoint",
+ "OnNightIfLowOutdoorTempAndOffDay",
+ "OnNightIfLowInsideTempAndOffDay",
+ "OnNightIfHeatingAndOffDay",
+ "OnNightIfLowOutdoorTempAndOnDayIfCooling",
+ "OnNightIfHeatingAndOnDayIfCooling",
+ "OffNightAndOnDayIfCoolingAndHighSolarOnWindow",
+ "OnNightAndOnDayIfCoolingAndHighSolarOnWindow",
+ "OnIfHighOutdoorAirTempAndHighSolarOnWindow",
+ "OnIfHighOutdoorAirTempAndHighHorizontalSolar",
+ "OnIfHighZoneAirTempAndHighSolarOnWindow",
+ "OnIfHighZoneAirTempAndHighHorizontalSolar"
+ };
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscShading, surfName, WindowShadingTypeStr[int(WindowShadingControl(curWSC).ShadingType)]);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchWscControl, surfName, WindowShadingControlTypeStr[int(WindowShadingControl(curWSC).ShadingControlType)]);
// output list of all possible shading contructions for shaded windows including those with storms
std::string names = "";
@@ -2195,8 +2165,8 @@ namespace HeatBalanceSurfaceManager {
SurfWinDividerTempSurfOut(SurfNum) = 23.0;
// Initialize previous-timestep shading indicators
- SurfWinExtIntShadePrevTS(SurfNum) = 0;
- SurfWinShadingFlag(SurfNum) = NoShade;
+ SurfWinExtIntShadePrevTS(SurfNum) = WinShadingType::NoShade;
+ SurfWinShadingFlag(SurfNum) = WinShadingType::NoShade;
} // end of Zone Surf
}
} // end of Zone
@@ -2879,33 +2849,27 @@ namespace HeatBalanceSurfaceManager {
Real64 SkySolarInc = currSkySolarInc(SurfNum); // Sky diffuse solar incident on a surface
Real64 GndSolarInc = currGndSolarInc(SurfNum); // Ground diffuse solar incident on a surface
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
- if (SurfWinWindowModelType(SurfNum) == Window5DetailedModel &&
- !state.dataWindowManager->inExtWindowModel->isExternalLibraryModel()) {
+ if (SurfWinWindowModelType(SurfNum) == Window5DetailedModel && !state.dataWindowManager->inExtWindowModel->isExternalLibraryModel()) {
int TotGlassLay = state.dataConstruction->Construct(ConstrNum).TotGlassLayers; // Number of glass layers
for (int Lay = 1; Lay <= TotGlassLay; ++Lay) {
AbsDiffWin(Lay) = state.dataConstruction->Construct(ConstrNum).AbsDiff(Lay);
}
- if (ShadeFlag > 0) { // Shaded window
+ if (IS_SHADED(ShadeFlag)) { // Shaded window
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction; // Shaded window construction
if (SurfWinStormWinFlag(SurfNum) == 1) ConstrNumSh = Surface(SurfNum).activeStormWinShadedConstruction;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == ExtScreenOn) { // Shade/screen on
+ if (ANY_SHADE_SCREEN(ShadeFlag)) { // Shade/screen on
for (int Lay = 1; Lay <= TotGlassLay; ++Lay) {
AbsDiffWin(Lay) = state.dataConstruction->Construct(ConstrNumSh).AbsDiff(Lay);
}
SurfWinExtDiffAbsByShade(SurfNum) =
state.dataConstruction->Construct(ConstrNumSh).AbsDiffShade *
(SkySolarInc + GndSolarInc);
-
- }
-
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn ||
- ShadeFlag == BGBlindOn) { // Blind on
+ } else if (ANY_BLIND(ShadeFlag)) { // Blind on
for (int Lay = 1; Lay <= TotGlassLay; ++Lay) {
AbsDiffWin(Lay) = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum),
SurfWinMovableSlats(SurfNum),
@@ -2945,17 +2909,13 @@ namespace HeatBalanceSurfaceManager {
// Correct for shadowing of divider onto interior shading device (note that dividers are
// not allowed in windows with between-glass shade/blind)
- if ((ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) &&
- SurfWinDividerArea(SurfNum) > 0.0)
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag) && SurfWinDividerArea(SurfNum) > 0.0)
SurfWinExtDiffAbsByShade(SurfNum) *= SurfWinGlazedFrac(SurfNum);
- if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
- Real64 SwitchFac = SurfWinSwitchingFactor(
- SurfNum); // Switching factor for switchable glazing
+ if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
+ Real64 SwitchFac = SurfWinSwitchingFactor(SurfNum); // Switching factor for switchable glazing
for (int Lay = 1; Lay <= TotGlassLay; ++Lay) {
- AbsDiffWin(Lay) = InterpSw(SwitchFac, AbsDiffWin(Lay),
- state.dataConstruction->Construct(
- ConstrNumSh).AbsDiff(Lay));
+ AbsDiffWin(Lay) = InterpSw(SwitchFac, AbsDiffWin(Lay), state.dataConstruction->Construct(ConstrNumSh).AbsDiff(Lay));
}
}
@@ -2966,8 +2926,7 @@ namespace HeatBalanceSurfaceManager {
SurfWinQRadSWwinAbs(Lay, SurfNum) = AbsDiffWin(Lay) * (SkySolarInc + GndSolarInc) +
SurfWinA(Lay, SurfNum) * BeamSolar;
// SurfWinA is from InteriorSolarDistribution
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn ||
- ShadeFlag == BGBlindOn) {
+ if (ANY_BLIND(ShadeFlag)) {
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
if (Blind(SurfWinBlindNumber(SurfNum)).SlatOrientation == Horizontal) {
// AbsDiffGlassLayGnd - System glass layer ground diffuse solar absorptance with blind on
@@ -2987,7 +2946,6 @@ namespace HeatBalanceSurfaceManager {
SurfWinA(Lay, SurfNum) * BeamSolar;
}
}
-
// Total solar absorbed in solid layer (W), for reporting
SurfWinQRadSWwinAbsLayer(Lay, SurfNum) =
SurfWinQRadSWwinAbs(Lay, SurfNum) * Surface(SurfNum).Area;
@@ -3169,7 +3127,7 @@ namespace HeatBalanceSurfaceManager {
Real64 TransGl = POLYF(CosInc, state.dataConstruction->Construct(
ConstrNum).TransSolBeamCoef);
TransDiffGl = state.dataConstruction->Construct(ConstrNum).TransDiff;
- if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
+ if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
Real64 SwitchFac = SurfWinSwitchingFactor(SurfNum);
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
Real64 TransGlSh = POLYF(CosInc, state.dataConstruction->Construct(
@@ -3223,7 +3181,7 @@ namespace HeatBalanceSurfaceManager {
Real64 AbsGl = 1.0 - TransGl - ReflGl;
Real64 SwitchFac = SurfWinSwitchingFactor(SurfNum);
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
- if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
+ if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
Real64 MatNumGlSh = state.dataConstruction->Construct(
ConstrNumSh).LayerPoint(1);
Real64 TransGlSh = state.dataMaterial->Material(MatNumGlSh).Trans;
@@ -3243,8 +3201,7 @@ namespace HeatBalanceSurfaceManager {
Real64 BeamDivHorFaceInc = 0.0; // Beam solar on divider's horizontal outside projection faces (W/m2)
Real64 BeamDivVertFaceInc = 0.0; // Beam solar on divider's vertical outside projection faces (W/m2)
// Beam incident on horizontal and vertical projection faces of divider if no exterior shading
- if (DivProjOut > 0.0 && ShadeFlag != ExtShadeOn &&
- ShadeFlag != ExtBlindOn && ShadeFlag != ExtScreenOn) {
+ if (DivProjOut > 0.0 && !ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
BeamDivHorFaceInc = state.dataEnvrn->BeamSolarRad * CosIncAngHorProj *
FrameDivider(FrDivNum).HorDividers * DivProjOut *
(Surface(SurfNum).Width -
@@ -3260,9 +3217,7 @@ namespace HeatBalanceSurfaceManager {
Real64 DivIncSolarOutDif = 0.0; // Diffuse solar incident on outside of divider including diffuse on divider projection (W/m2)
Real64 DivIncSolarInBm = 0.0; // Diffuse solar incident on inside of divider including beam on divider projection (W/m2)
Real64 DivIncSolarInDif = 0.0; // Diffuse solar incident on inside of divider including diffuse on divider projection (W/m2)
- if (ShadeFlag != ExtShadeOn && ShadeFlag != ExtBlindOn &&
- ShadeFlag != BGShadeOn && ShadeFlag != BGBlindOn &&
- ShadeFlag != ExtScreenOn) { // No exterior or between-glass shading
+ if (!ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag) && !ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) { // No exterior or between-glass shading
DivIncSolarOutBm = BeamFaceInc + BeamDivHorFaceInc + BeamDivVertFaceInc;
DivIncSolarOutDif =
DifSolarFaceInc * (1.0 + SurfWinProjCorrDivOut(SurfNum));
@@ -3271,7 +3226,7 @@ namespace HeatBalanceSurfaceManager {
ConstrNum).TransSolBeamCoef);
Real64 TransDiffGl = state.dataConstruction->Construct(
ConstrNum).TransDiff; // Diffuse solar transmittance
- if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
+ if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
Real64 SwitchFac = SurfWinSwitchingFactor(SurfNum);
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
Real64 TransGlSh = POLYF(CosInc, state.dataConstruction->Construct(
@@ -3315,15 +3270,14 @@ namespace HeatBalanceSurfaceManager {
DivIncSolarInDif = DifSolarFaceInc * SurfWinProjCorrDivIn(SurfNum) *
state.dataConstruction->Construct(ConstrNum).TransDiff;
}
- if (ShadeFlag != ExtShadeOn && ShadeFlag != ExtBlindOn &&
- ShadeFlag != ExtScreenOn && ShadeFlag != BGShadeOn && ShadeFlag != BGBlindOn) {
+ if (!ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag) && !ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
// No exterior or between-glass shade, screen or blind
SurfWinDividerQRadOutAbs(SurfNum) =
DividerAbs * (DivIncSolarOutBm + DivIncSolarOutDif);
SurfWinDividerQRadInAbs(SurfNum) =
DividerAbs * (DivIncSolarInBm + DivIncSolarInDif);
// Exterior shade, screen or blind
- } else if (ShadeFlag == ExtBlindOn) { // Exterior blind
+ } else if (ShadeFlag == WinShadingType::ExtBlind) { // Exterior blind
int BlNum = SurfWinBlindNumber(SurfNum);
Real64 ProfAng; // Solar profile angle (rad)
ProfileAngle(SurfNum, state.dataEnvrn->SOLCOS, Blind(BlNum).SlatOrientation, ProfAng);
@@ -3346,7 +3300,7 @@ namespace HeatBalanceSurfaceManager {
DivIncSolarInDif * InterpSlatAng(SlatAng, SurfWinMovableSlats(SurfNum),
Blind(BlNum).SolFrontDiffDiffTrans));
- } else if (ShadeFlag == ExtShadeOn) { // Exterior shade
+ } else if (ShadeFlag == WinShadingType::ExtShade) { // Exterior shade
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
SurfWinDividerQRadOutAbs(SurfNum) =
DividerAbs * state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNumSh).LayerPoint(1)).Trans *
@@ -3355,7 +3309,7 @@ namespace HeatBalanceSurfaceManager {
DividerAbs * state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNumSh).LayerPoint(1)).Trans *
(DivIncSolarInBm +DivIncSolarInDif);
- } else if (ShadeFlag == ExtScreenOn) { // Exterior screen
+ } else if (ShadeFlag == WinShadingType::ExtScreen) { // Exterior screen
SurfWinDividerQRadOutAbs(SurfNum) = DividerAbs * (SurfaceScreens(
SurfWinScreenNumber(SurfNum)).BmBmTrans + SurfaceScreens(
SurfWinScreenNumber(SurfNum)).BmDifTrans) *
@@ -3569,7 +3523,7 @@ namespace HeatBalanceSurfaceManager {
ConstrNumSh = Surface(SurfNum).activeStormWinShadedConstruction;
}
int TotGlassLayers = state.dataConstruction->Construct(ConstrNum).TotGlassLayers;
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
// These calculations are repeated from InitInternalHeatGains for the Zone Component Loads Report
Real64 pulseMultipler = 0.01; // use to create a pulse for the load component report computations, the W/sqft pulse for the zone
@@ -3587,49 +3541,43 @@ namespace HeatBalanceSurfaceManager {
SurfQRadThermInAbs(SurfNum) = adjQL * TMULT(radEnclosureNum) * ITABSF(SurfNum);
}
- if (ShadeFlag <= 0) { // No window shading
+ if (NOT_SHADED(ShadeFlag)) { // No window shading
for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
SurfWinQRadSWwinAbs(IGlass, SurfNum) +=
QS(solEnclosureNum) * state.dataConstruction->Construct(ConstrNum).AbsDiffBack(IGlass);
}
- } else if (ConstrNumSh != 0 && (ShadeFlag == IntShadeOn || ShadeFlag >= 3)) {
+ } else if (ConstrNumSh != 0 && ShadeFlag != WinShadingType::SwitchableGlazing) {
// Interior, exterior or between-glass shade, screen or blind in place
for (int IGlass = 1; IGlass <= state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers; ++IGlass) {
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == ExtScreenOn)
- SurfWinQRadSWwinAbs(IGlass, SurfNum) += QS(solEnclosureNum) *
- state.dataConstruction->Construct(ConstrNumSh).AbsDiffBack(
- IGlass);
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
+ SurfWinQRadSWwinAbs(IGlass, SurfNum) += QS(solEnclosureNum) * state.dataConstruction->Construct(ConstrNumSh).AbsDiffBack(IGlass);
+ } else if (BITF_TEST_ANY(BITF(ShadeFlag), BITF(WinShadingType::IntBlind) | BITF(WinShadingType::ExtBlind))) {
Real64 BlAbsDiffBk = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum),
state.dataConstruction->Construct(ConstrNumSh).BlAbsDiffBack(_, IGlass)); // Glass layer back diffuse solar absorptance when blind in place
SurfWinQRadSWwinAbs(IGlass, SurfNum) += QS(solEnclosureNum) * BlAbsDiffBk;
}
}
- if (ShadeFlag == IntShadeOn)
- SurfWinIntLWAbsByShade(SurfNum) =
- QL(radEnclosureNum) * state.dataConstruction->Construct(ConstrNumSh).ShadeAbsorpThermal *
- TMULT(radEnclosureNum);
- if (ShadeFlag == IntBlindOn) {
+ if (ShadeFlag == WinShadingType::IntShade) {
+ SurfWinIntLWAbsByShade(SurfNum) = QL(radEnclosureNum) * state.dataConstruction->Construct(ConstrNumSh).ShadeAbsorpThermal * TMULT(radEnclosureNum);
+ } else if (ShadeFlag == WinShadingType::IntBlind) {
Real64 EffBlEmiss = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum),
SurfaceWindow(SurfNum).EffShBlindEmiss); // Blind emissivity (thermal absorptance) as part of glazing system
SurfWinIntLWAbsByShade(SurfNum) = QL(radEnclosureNum) * EffBlEmiss * TMULT(radEnclosureNum);
}
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == ExtScreenOn)
- SurfWinIntSWAbsByShade(SurfNum) =
- QS(solEnclosureNum) * state.dataConstruction->Construct(ConstrNumSh).AbsDiffBackShade;
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)){
+ SurfWinIntSWAbsByShade(SurfNum) = QS(solEnclosureNum) * state.dataConstruction->Construct(ConstrNumSh).AbsDiffBackShade;
+ } else if (ANY_BLIND(ShadeFlag)) {
Real64 AbsDiffBkBl = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum),
state.dataConstruction->Construct(ConstrNumSh).AbsDiffBackBlind); // Blind diffuse back solar absorptance as part of glazing system
SurfWinIntSWAbsByShade(SurfNum) = QS(solEnclosureNum) * AbsDiffBkBl;
}
// Correct for divider shadowing
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn)
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
SurfWinIntSWAbsByShade(SurfNum) *= SurfWinGlazedFrac(SurfNum);
+ }
- } else if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
+ } else if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
SurfWinQRadSWwinAbs(IGlass, SurfNum) += QS(solEnclosureNum) *
@@ -3665,12 +3613,12 @@ namespace HeatBalanceSurfaceManager {
DividerThermAbs = state.dataMaterial->Material(MatNumGl).AbsorpThermalBack;
}
// Correct for interior shade transmittance
- if (ShadeFlag == IntShadeOn) {
+ if (ShadeFlag == WinShadingType::IntShade) {
int MatNumSh = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(
state.dataConstruction->Construct(ConstrNumSh).TotLayers); // Shade layer material number
DividerSolAbs *= state.dataMaterial->Material(MatNumSh).Trans;
DividerThermAbs *= state.dataMaterial->Material(MatNumSh).TransThermal;
- } else if (ShadeFlag == IntBlindOn) {
+ } else if (ShadeFlag == WinShadingType::IntBlind) {
int BlNum = SurfWinBlindNumber(SurfNum);
DividerSolAbs *= InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum),
Blind(BlNum).SolBackDiffDiffTrans);
@@ -3747,26 +3695,25 @@ namespace HeatBalanceSurfaceManager {
ConstrNumSh = Surface(SurfNum).activeStormWinShadedConstruction;
}
int TotGlassLayers = state.dataConstruction->Construct(ConstrNum).TotGlassLayers;
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
- if (ShadeFlag <= 0) { // No window shading
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
+ if (NOT_SHADED(ShadeFlag)) { // No window shading
for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
SurfWinQRadSWwinAbs(IGlass, SurfNum) += SurfWinInitialDifSolwinAbs(IGlass, SurfNum);
}
- } else if (ShadeFlag == IntShadeOn || ShadeFlag >= 3) {
+ } else if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
+ for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
+ SurfWinQRadSWwinAbs(IGlass, SurfNum) += SurfWinInitialDifSolwinAbs(IGlass, SurfNum);
+ }
+ } else {
// Interior, exterior or between-glass shade, screen or blind in place
for (int IGlass = 1; IGlass <= state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers; ++IGlass) {
SurfWinQRadSWwinAbs(IGlass, SurfNum) += SurfWinInitialDifSolwinAbs(IGlass, SurfNum);
}
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == ExtScreenOn)
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
SurfWinIntSWAbsByShade(SurfNum) += SurfWinInitialDifSolAbsByShade(SurfNum);
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
SurfWinIntSWAbsByShade(SurfNum) += SurfWinInitialDifSolAbsByShade(SurfNum);
}
- } else if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
- for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
- SurfWinQRadSWwinAbs(IGlass, SurfNum) += SurfWinInitialDifSolwinAbs(IGlass, SurfNum);
- }
} // End of shading flag check
} else if (SurfWinWindowModelType(SurfNum) == WindowBSDFModel) {
int TotGlassLayers = state.dataConstruction->Construct(ConstrNum).TotGlassLayers;
@@ -3801,8 +3748,8 @@ namespace HeatBalanceSurfaceManager {
} else {
TotGlassLayers = state.dataConstruction->Construct(ConstrNum).TotGlassLayers;
}
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
- if (ShadeFlag <= 0 || SurfWinWindowModelType(SurfNum) == WindowBSDFModel) { // No window shading
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
+ if (NOT_SHADED(ShadeFlag) || SurfWinWindowModelType(SurfNum) == WindowBSDFModel) { // No window shading
for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
// Initial Transmitted Diffuse Solar Absorbed on Inside of Surface[W]
SurfInitialDifSolInAbsReport(SurfNum) +=
@@ -3812,9 +3759,8 @@ namespace HeatBalanceSurfaceManager {
// Total Shortwave Absorbed:All Glass Layers[W]
SurfWinSWwinAbsTotalReport(SurfNum) += SurfWinQRadSWwinAbs(IGlass, SurfNum) * Surface(SurfNum).Area;
}
- } else if (ShadeFlag == IntShadeOn || ShadeFlag >= 3) {
- // Interior, exterior or between-glass shade, screen or blind in place
- for (int IGlass = 1; IGlass <= state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers; ++IGlass) {
+ } else if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
+ for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
// Initial Transmitted Diffuse Solar Absorbed on Inside of Surface[W]
SurfInitialDifSolInAbsReport(SurfNum) +=
SurfWinInitialDifSolwinAbs(IGlass, SurfNum) * Surface(SurfNum).Area;
@@ -3823,8 +3769,9 @@ namespace HeatBalanceSurfaceManager {
// Total Shortwave Absorbed:All Glass Layers[W]
SurfWinSWwinAbsTotalReport(SurfNum) += SurfWinQRadSWwinAbs(IGlass, SurfNum) * Surface(SurfNum).Area;
}
- } else if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
- for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
+ } else {
+ // Interior, exterior or between-glass shade, screen or blind in place
+ for (int IGlass = 1; IGlass <= state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers; ++IGlass) {
// Initial Transmitted Diffuse Solar Absorbed on Inside of Surface[W]
SurfInitialDifSolInAbsReport(SurfNum) +=
SurfWinInitialDifSolwinAbs(IGlass, SurfNum) * Surface(SurfNum).Area;
@@ -3902,8 +3849,8 @@ namespace HeatBalanceSurfaceManager {
if (firstSurfWin == -1) continue;
for (int SurfNum = firstSurfWin; SurfNum <= lastSurfWin; ++SurfNum) {
// For window with an interior shade or blind, emissivity is a combination of glass and shade/blind emissivity
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn)
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag))
ITABSF(SurfNum) = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum),
SurfaceWindow(SurfNum).EffShBlindEmiss) +
InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum),
@@ -3921,8 +3868,8 @@ namespace HeatBalanceSurfaceManager {
if (!Surface(SurfNum).HeatTransSurf) continue;
int ConstrNum = Surface(SurfNum).Construction;
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
- if (ShadeFlag != SwitchableGlazing) {
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
+ if (ShadeFlag != WinShadingType::SwitchableGlazing) {
SUM1 += Surface(SurfNum).Area * ITABSF(SurfNum);
} else { // Switchable glazing
SUM1 += Surface(SurfNum).Area * InterpSw(SurfWinSwitchingFactor(SurfNum),
@@ -3937,7 +3884,7 @@ namespace HeatBalanceSurfaceManager {
Real64 DividerThermAbs = SurfWinDividerEmis(SurfNum); // Window divider thermal absorptance
// Suspended (between-glass) divider; relevant emissivity is inner glass emissivity
if (SurfWinDividerType(SurfNum) == Suspended) DividerThermAbs = state.dataConstruction->Construct(ConstrNum).InsideAbsorpThermal;
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
// Interior shade or blind in place
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
if (SurfWinHasShadeOrBlindLayer(SurfNum)) {
@@ -3947,7 +3894,7 @@ namespace HeatBalanceSurfaceManager {
Real64 TauShIR = state.dataMaterial->Material(MatNumSh).TransThermal;
// Effective emissivity of shade or blind
Real64 EffShDevEmiss = SurfaceWindow(SurfNum).EffShBlindEmiss(1);
- if (ShadeFlag == IntBlindOn) {
+ if (ShadeFlag == WinShadingType::IntBlind) {
TauShIR = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum),
SurfWinMovableSlats(SurfNum),
Blind(SurfWinBlindNumber(SurfNum)).IRBackTrans);
@@ -4040,7 +3987,7 @@ namespace HeatBalanceSurfaceManager {
// Window
if (!state.dataConstruction->Construct(Surface(SurfNum).Construction).WindowTypeEQL) {
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
Real64 AbsDiffTotWin = 0.0; // Sum of window layer short-wave absorptances
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
if (SurfWinStormWinFlag(SurfNum) == 1) {
@@ -4055,9 +4002,9 @@ namespace HeatBalanceSurfaceManager {
// Window with shade, screen or blind
if (ConstrNumSh != 0) {
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
AbsDiffLayWin = state.dataConstruction->Construct(ConstrNumSh).AbsDiffBack(Lay);
- } else if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
AbsDiffLayWin = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum),
SurfWinMovableSlats(SurfNum),
state.dataConstruction->Construct(ConstrNumSh).BlAbsDiffBack(_, Lay));
@@ -4065,7 +4012,7 @@ namespace HeatBalanceSurfaceManager {
}
// Switchable glazing
- if (ShadeFlag == SwitchableGlazing)
+ if (ShadeFlag == WinShadingType::SwitchableGlazing)
AbsDiffLayWin = InterpSw(SwitchFac, AbsDiffLayWin, state.dataConstruction->Construct(ConstrNumSh).AbsDiffBack(Lay));
AbsDiffTotWin += AbsDiffLayWin;
@@ -4077,10 +4024,10 @@ namespace HeatBalanceSurfaceManager {
// Window with shade, screen or blind
if (ConstrNumSh != 0) {
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
TransDiffWin = state.dataConstruction->Construct(ConstrNumSh).TransDiff;
DiffAbsShade = state.dataConstruction->Construct(ConstrNumSh).AbsDiffBackShade;
- } else if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
TransDiffWin = InterpSlatAng(
SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), state.dataConstruction->Construct(ConstrNumSh).BlTransDiff);
DiffAbsShade = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum),
@@ -4091,7 +4038,7 @@ namespace HeatBalanceSurfaceManager {
// Switchable glazing
- if (ShadeFlag == SwitchableGlazing)
+ if (ShadeFlag == WinShadingType::SwitchableGlazing)
TransDiffWin = InterpSw(SwitchFac, TransDiffWin, state.dataConstruction->Construct(ConstrNumSh).TransDiff);
SUM1 += Surface(SurfNum).Area * (TransDiffWin + AbsDiffTotWin + DiffAbsShade);
@@ -4112,7 +4059,7 @@ namespace HeatBalanceSurfaceManager {
Real64 DividerRefl = 1.0 - DividerAbs; // Window divider short-wave reflectance
DividerAbs = AbsGl + TransGl * (DividerAbs + DividerRefl * AbsGl) / (1.0 - DividerRefl * ReflGl);
}
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
SUM1 += SurfWinDividerArea(SurfNum) * (DividerAbs + DiffAbsShade);
} else {
SUM1 += SurfWinDividerArea(SurfNum) * (1.0 + SurfWinProjCorrDivIn(SurfNum)) * DividerAbs;
@@ -6789,7 +6736,7 @@ namespace HeatBalanceSurfaceManager {
int RoughSurf = state.dataMaterial->Material(construct.LayerPoint(1)).Roughness; // Outside surface roughness
Real64 EmisOut = state.dataMaterial->Material(construct.LayerPoint(1)).AbsorpThermalFront; // Glass outside surface emissivity
auto const shading_flag(SurfWinShadingFlag(SurfNum));
- if (shading_flag == ExtShadeOn || shading_flag == ExtBlindOn || shading_flag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(shading_flag)) {
// Exterior shade in place
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
if (ConstrNumSh != 0) {
@@ -7491,7 +7438,7 @@ namespace HeatBalanceSurfaceManager {
Real64 EmisOut =
state.dataMaterial->Material(construct.LayerPoint(1)).AbsorpThermalFront; // Glass outside surface emissivity
auto const shading_flag(SurfWinShadingFlag(surfNum));
- if (shading_flag == ExtShadeOn || shading_flag == ExtBlindOn || shading_flag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(shading_flag)) {
// Exterior shade in place
int ConstrNumSh = Surface(surfNum).activeShadedConstruction;
if (ConstrNumSh != 0) {
diff --git a/src/EnergyPlus/HighTempRadiantSystem.cc b/src/EnergyPlus/HighTempRadiantSystem.cc
index 7336019735d..34f43ffa29f 100644
--- a/src/EnergyPlus/HighTempRadiantSystem.cc
+++ b/src/EnergyPlus/HighTempRadiantSystem.cc
@@ -1491,7 +1491,7 @@ namespace HighTempRadiantSystem {
Area = Surface(SurfNum).Area;
if (Surface(SurfNum).Class == SurfaceClass::Window) {
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The area is the shade or blind area = the sum of the glazing area and the divider area (which is zero if no divider)
Area += SurfWinDividerArea(SurfNum);
}
@@ -1502,8 +1502,7 @@ namespace HighTempRadiantSystem {
SurfWinFrameTempSurfIn(SurfNum);
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn &&
- SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf += HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) *
SurfWinDividerTempSurfIn(SurfNum);
diff --git a/src/EnergyPlus/InternalHeatGains.cc b/src/EnergyPlus/InternalHeatGains.cc
index 3f0960a92a7..1674acb1b22 100644
--- a/src/EnergyPlus/InternalHeatGains.cc
+++ b/src/EnergyPlus/InternalHeatGains.cc
@@ -5386,6 +5386,10 @@ namespace InternalHeatGains {
e.CO2Rate = 0.0;
}
+ for (auto &e : DataHeatBalance::ZonePreDefRep) {
+ e.NumOcc = 0.0;
+ }
+
// QSA = 0.0
// Process Internal Heat Gains, People done below
@@ -5433,10 +5437,11 @@ namespace InternalHeatGains {
// For predefined tabular reports related to outside air ventilation
ZonePreDefRep(NZ).isOccupied = true; // set flag to occupied to be used in tabular reporting for ventilation
+ ZonePreDefRep(NZ).NumOcc += NumberOccupants;
ZonePreDefRep(NZ).NumOccAccum += NumberOccupants * state.dataGlobal->TimeStepZone;
ZonePreDefRep(NZ).NumOccAccumTime += state.dataGlobal->TimeStepZone;
} else {
- ZonePreDefRep(NZ).isOccupied = false; // set flag to occupied to be used in tabular reporting for ventilation
+ DataHeatBalance::ZonePreDefRep(NZ).isOccupied = false; // set flag to occupied to be used in tabular reporting for ventilation
}
People(Loop).NumOcc = NumberOccupants;
@@ -7113,13 +7118,14 @@ namespace InternalHeatGains {
IntGainTypeOf_SecCoolingDXCoilTwoSpeed,
IntGainTypeOf_SecCoolingDXCoilMultiSpeed,
IntGainTypeOf_SecHeatingDXCoilMultiSpeed});
- static Array1D_int IntGainTypesPowerGen(9,
+ static Array1D_int IntGainTypesPowerGen(10,
{IntGainTypeOf_GeneratorFuelCell,
IntGainTypeOf_GeneratorMicroCHP,
IntGainTypeOf_ElectricLoadCenterTransformer,
IntGainTypeOf_ElectricLoadCenterInverterSimple,
IntGainTypeOf_ElectricLoadCenterInverterFunctionOfPower,
IntGainTypeOf_ElectricLoadCenterInverterLookUpTable,
+ IntGainTypeOf_ElectricLoadCenterStorageLiIonNmcBattery,
IntGainTypeOf_ElectricLoadCenterStorageBattery,
IntGainTypeOf_ElectricLoadCenterStorageSimple,
IntGainTypeOf_ElectricLoadCenterConverter});
diff --git a/src/EnergyPlus/LowTempRadiantSystem.cc b/src/EnergyPlus/LowTempRadiantSystem.cc
index 9319e21a09c..a9cd866549d 100644
--- a/src/EnergyPlus/LowTempRadiantSystem.cc
+++ b/src/EnergyPlus/LowTempRadiantSystem.cc
@@ -5806,7 +5806,7 @@ namespace LowTempRadiantSystem {
Real64 Area = Surface(surfNum).Area;
if (Surface(surfNum).Class == SurfaceClass::Window) {
- if (SurfWinShadingFlag(surfNum) == IntShadeOn || SurfWinShadingFlag(surfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(surfNum))) {
// The area is the shade or blind are = sum of the glazing area and the divider area (which is zero if no divider)
Area += SurfWinDividerArea(surfNum);
}
@@ -5817,8 +5817,7 @@ namespace LowTempRadiantSystem {
SurfWinFrameTempSurfIn(surfNum);
}
- if (SurfWinDividerArea(surfNum) > 0.0 && SurfWinShadingFlag(surfNum) != IntShadeOn &&
- SurfWinShadingFlag(surfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(surfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(surfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
sumHATsurf += HConvIn(surfNum) * SurfWinDividerArea(surfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(surfNum)) *
SurfWinDividerTempSurfIn(surfNum);
diff --git a/src/EnergyPlus/OutputReportPredefined.cc b/src/EnergyPlus/OutputReportPredefined.cc
index bf3d12321f2..9d6ea554abe 100644
--- a/src/EnergyPlus/OutputReportPredefined.cc
+++ b/src/EnergyPlus/OutputReportPredefined.cc
@@ -643,7 +643,7 @@ namespace OutputReportPredefined {
s->pdchULnotMetHeatOcc = newPreDefColumn(state, s->pdstUnmetLoads, "During Occupied Heating [hr]");
s->pdchULnotMetCoolOcc = newPreDefColumn(state, s->pdstUnmetLoads, "During Occupied Cooling [hr]");
- // Outside Air Report
+ // Outdoor Air Report
s->pdrOutsideAir = newPreDefReport(state, "OutdoorAirSummary", "OA", "Outdoor Air Summary");
s->pdstOAavgOcc = newPreDefSubTable(state, s->pdrOutsideAir, "Average Outdoor Air During Occupied Hours");
@@ -671,6 +671,82 @@ namespace OutputReportPredefined {
// s->pdchOaoMinTotVent = newPreDefColumn(state, s->pdstOAminOcc,'Total Ventilation [ach]')
addFootNoteSubTable(state, s->pdstOAminOcc, "Values shown for a single zone without multipliers");
+ // Outdoor Air Details Report
+ s->pdrOutsideAirDetails = newPreDefReport(state, "OutdoorAirDetails", "OAD", "Outdoor Air Details");
+
+ s->pdstOAmechVentParByZone = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Mechanical Ventilation Parameters by Zone");
+ s->pdchOaMvAirLpNm = newPreDefColumn(state, s->pdstOAmechVentParByZone, "AirLoop Name");
+ s->pdchOaMvAvgNumOcc = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Average Number of Occupants");
+ s->pdchOaMvNomNumOcc = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Nominal Number of Occupants");
+ s->pdchOaMvZoneVol = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Zone Volume [m3]");
+ s->pdchOaMvZoneArea = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Zone Area [m2]");
+ s->pdchOaMvDesZnOa = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Design Zone Outdoor Airflow - Voz [m3/s]");
+ s->pdchOaMvMinDynTrgVent = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Minimum Dynamic Target Ventilation - Voz-dyn-min [m3/s]");
+
+ s->pdstOAtotAirByZone = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Total Outdoor Air by Zone");
+ s->pdchOaTaBzMechVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Mechanical Ventilation [m3]");
+ s->pdchOaTaBzNatVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Natural Ventilation [m3]");
+ s->pdchOaTaBzTotVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Total Ventilation [m3]");
+ s->pdchOaTaBzInfil = newPreDefColumn(state, s->pdstOAtotAirByZone, "Infiltration [m3]");
+ s->pdchOaTaBzTotVentInfil = newPreDefColumn(state, s->pdstOAtotAirByZone, "Total Ventilation and Infiltration [m3]");
+ s->pdchOaTaBzDynTrgVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Dynamic Target Ventilation - Voz-dyn [m3]");
+ s->pdchOaTaBzTmBelow = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time Below Voz-dyn [hr]");
+ s->pdchOaTaBzTmAt = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time At Voz-dyn [hr]");
+ s->pdchOaTaBzTmAbove = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time Above Voz-dyn [hr]");
+ s->pdchOaTaBzTmAboveUnocc = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time Above Zero When Unoccupied [hr]");
+
+ s->pdstOAavgOccByZone = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Average Outdoor Air During Occupancy by Zone - Flow Rates");
+ s->pdchOaOccBzMechVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Mechanical Ventilation [m3/s]");
+ s->pdchOaOccBzNatVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Natural Ventilation [m3/s]");
+ s->pdchOaOccBzTotVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Total Ventilation [m3/s]");
+ s->pdchOaOccBzInfil = newPreDefColumn(state, s->pdstOAavgOccByZone, "Infiltration [m3/s]");
+ s->pdchOaOccBzTotVentInfil = newPreDefColumn(state, s->pdstOAavgOccByZone, "Total Ventilation and Infiltration [m3/s]");
+ s->pdchOaOccBzDynTrgVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Dynamic Target Ventilation - Voz-dyn [m3/s]");
+ s->pdchOaOccBzTmBelow = newPreDefColumn(state, s->pdstOAavgOccByZone, "Time Below Voz-dyn [hr]");
+ s->pdchOaOccBzTmAt = newPreDefColumn(state, s->pdstOAavgOccByZone, "Time At Voz-dyn [hr]");
+ s->pdchOaOccBzTmAbove = newPreDefColumn(state, s->pdstOAavgOccByZone, "Time Above Voz-dyn [hr]");
+
+ s->pdstOAtotAirByLoop = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Total Outdoor Air by AirLoop");
+ s->pdchOaTaAlMechVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Mechanical Ventilation [m3]");
+ s->pdchOaTaAlNatVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Natural Ventilation [m3/s]");
+ s->pdchOaTaAlTotVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Total Ventilation [m3/s]");
+ s->pdchOaTaAlSumDynTrgVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Sum Zone Dynamic Target Ventilation - Voz-sum-dyn [m3]");
+ s->pdchOaTaAlTmBelow = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time Below Voz-sum-dyn [hr]");
+ s->pdchOaTaAlTmAt = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time At Voz-sum-dyn [hr]");
+ s->pdchOaTaAlTmAbove = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time Above Voz-sum-dyn [hr]");
+ s->pdchOaTaAlTmAboveUnocc = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time Above Zero When Unoccupied [hr]");
+
+ s->pdstOAavgOccByLoop = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Average Outdoor Air During Occupancy by AirLoop");
+ s->pdchOaOccAlMechVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Mechanical Ventilation [m3/s]");
+ s->pdchOaOccAlNatVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Natural Ventilation [m3/s]");
+ s->pdchOaOccAlTotVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Total Ventilation [m3/s]");
+ s->pdchOaOccAlSumDynTrgVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Sum Zone Dynamic Target Ventilation - Voz-sum-dyn [m3/s]");
+ s->pdchOaOccAlTmBelow = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Time Below Voz-sum-dyn [hr]");
+ s->pdchOaOccAlTmAt = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Time At Voz-sum-dyn [hr]");
+ s->pdchOaOccAlTmAbove = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Time Above Voz-sum-dyn [hr]");
+
+ s->pdstOAtimeFactorsDurOcc = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Times for Outdoor Air Limiting Factors During Occupancy");
+ s->pdchOaTmFctNoLimit = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "No Limiting Factor [hr]"); //todo
+ s->pdchOaTmFctHiHumid = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "High Humidity [hr]"); //todo
+ s->pdchOaTmFctNiteVent = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Night Ventilation [hr]"); //todo
+ s->pdchOaTmFctEcono = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Economizer [hr]"); //todo
+ s->pdchOaTmFctDCV = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Demand Controlled Ventilation [hr]"); //todo
+ s->pdchOaTmFctExhaust = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Exhaust Flow [hr]"); //todo
+ s->pdchOaTmFctLimit = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Limits and Scheduled Limits [hr]"); //todo
+ s->pdchOaTmFctDemand = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Demand Limiting [hr]"); //todo
+ s->pdchOaTmFctEMS = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Energy Management System [hr]"); //todo
+
+ s->pdstOAavgFactorsDurOcc = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Average Outdoor Air for Outdoor Air Limiting Factors During Occupancy");
+ s->pdchOaAvFctNoLimit = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "No Limiting Factor [m3/s]"); //todo
+ s->pdchOaAvFctHiHumid = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "High Humidity [m3/s]"); //todo
+ s->pdchOaAvFctNiteVent = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Night Ventilation [m3/s]"); //todo
+ s->pdchOaAvFctEcono = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Economizer [m3/s]"); //todo
+ s->pdchOaAvFctDCV = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Demand Controlled Ventilation [m3/s]"); //todo
+ s->pdchOaAvFctExhaust = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Exhaust Flow [m3/s]"); //todo
+ s->pdchOaAvFctLimit = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Limits and Scheduled Limits [m3/s]"); //todo
+ s->pdchOaAvFctDemand = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Demand Limiting [m3/s]"); //todo
+ s->pdchOaAvFctEMS = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Energy Management System [m3/s]"); //todo
+
// Object Count Report
s->pdrObjCnt = newPreDefReport(state, "ObjectCountSummary", "Count", "Object Count Summary");
diff --git a/src/EnergyPlus/OutputReportPredefined.hh b/src/EnergyPlus/OutputReportPredefined.hh
index a962fef25ac..68cf33a92e9 100644
--- a/src/EnergyPlus/OutputReportPredefined.hh
+++ b/src/EnergyPlus/OutputReportPredefined.hh
@@ -658,7 +658,7 @@ struct OutputReportPredefinedData : BaseGlobalStruct {
int pdchULnotMetHeatOcc = 0;
int pdchULnotMetCoolOcc = 0;
- // Outside Air Report
+ // Outdoor Air Report
int pdrOutsideAir = 0;
int pdstOAavgOcc = 0;
int pdchOaoAvgNumOcc1 = 0;
@@ -679,6 +679,82 @@ struct OutputReportPredefinedData : BaseGlobalStruct {
int pdchOaoMinSimpVent = 0;
int pdchOaoMinTotVent = 0;
+ // Outdoor Air Details Report
+ int pdrOutsideAirDetails = 0;
+
+ int pdstOAmechVentParByZone = 0;
+ int pdchOaMvAirLpNm = 0;
+ int pdchOaMvAvgNumOcc = 0;
+ int pdchOaMvNomNumOcc = 0;
+ int pdchOaMvZoneVol = 0;
+ int pdchOaMvZoneArea = 0;
+ int pdchOaMvDesZnOa = 0;
+ int pdchOaMvMinDynTrgVent = 0;
+
+ int pdstOAtotAirByZone = 0;
+ int pdchOaTaBzMechVent = 0;
+ int pdchOaTaBzNatVent = 0;
+ int pdchOaTaBzTotVent = 0;
+ int pdchOaTaBzInfil = 0;
+ int pdchOaTaBzTotVentInfil = 0;
+ int pdchOaTaBzDynTrgVent = 0;
+ int pdchOaTaBzTmBelow = 0;
+ int pdchOaTaBzTmAt = 0;
+ int pdchOaTaBzTmAbove = 0;
+ int pdchOaTaBzTmAboveUnocc = 0;
+
+ int pdstOAavgOccByZone = 0;
+ int pdchOaOccBzMechVent = 0;
+ int pdchOaOccBzNatVent = 0;
+ int pdchOaOccBzTotVent = 0;
+ int pdchOaOccBzInfil = 0;
+ int pdchOaOccBzTotVentInfil = 0;
+ int pdchOaOccBzDynTrgVent = 0;
+ int pdchOaOccBzTmBelow = 0;
+ int pdchOaOccBzTmAt = 0;
+ int pdchOaOccBzTmAbove = 0;
+
+ int pdstOAtotAirByLoop = 0;
+ int pdchOaTaAlMechVent = 0;
+ int pdchOaTaAlNatVent = 0;
+ int pdchOaTaAlTotVent = 0;
+ int pdchOaTaAlSumDynTrgVent = 0;
+ int pdchOaTaAlTmBelow = 0;
+ int pdchOaTaAlTmAt = 0;
+ int pdchOaTaAlTmAbove = 0;
+ int pdchOaTaAlTmAboveUnocc = 0;
+
+ int pdstOAavgOccByLoop = 0;
+ int pdchOaOccAlMechVent = 0;
+ int pdchOaOccAlNatVent = 0;
+ int pdchOaOccAlTotVent = 0;
+ int pdchOaOccAlSumDynTrgVent = 0;
+ int pdchOaOccAlTmBelow = 0;
+ int pdchOaOccAlTmAt = 0;
+ int pdchOaOccAlTmAbove = 0;
+
+ int pdstOAtimeFactorsDurOcc = 0;
+ int pdchOaTmFctNoLimit = 0;
+ int pdchOaTmFctHiHumid = 0;
+ int pdchOaTmFctNiteVent = 0;
+ int pdchOaTmFctEcono = 0;
+ int pdchOaTmFctDCV = 0;
+ int pdchOaTmFctExhaust = 0;
+ int pdchOaTmFctLimit = 0;
+ int pdchOaTmFctDemand = 0;
+ int pdchOaTmFctEMS = 0;
+
+ int pdstOAavgFactorsDurOcc = 0;
+ int pdchOaAvFctNoLimit = 0;
+ int pdchOaAvFctHiHumid = 0;
+ int pdchOaAvFctNiteVent = 0;
+ int pdchOaAvFctEcono = 0;
+ int pdchOaAvFctDCV = 0;
+ int pdchOaAvFctExhaust = 0;
+ int pdchOaAvFctLimit = 0;
+ int pdchOaAvFctDemand = 0;
+ int pdchOaAvFctEMS = 0;
+
// Object Count Report
int pdrObjCnt = 0;
int pdstSurfCnt = 0;
@@ -1080,11 +1156,30 @@ struct OutputReportPredefinedData : BaseGlobalStruct {
int sizeShadowRelate = 0;
int numShadowRelate = 0;
+ // Totals for ABUPS report
Real64 TotalNotMetHeatingOccupiedForABUPS = 0.0;
Real64 TotalNotMetCoolingOccupiedForABUPS = 0.0;
Real64 TotalNotMetOccupiedForABUPS = 0.0;
Real64 TotalTimeNotSimpleASH55EitherForABUPS = 0.0;
+ // Totals for OA details report
+ Real64 TotalVozMax = 0.0; // total Voz (max of heating and cooling)
+ Real64 TotalAnyZoneBelowVozDynForOA = 0.0; // total time any zone below target Voz-Dyn
+ Real64 TotalAllZonesAtVozDynForOA = 0.0; // total time all zones at target Voz-Dyn
+ Real64 TotalAnyZoneAboveVozDynForOA = 0.0; // total time any zone above target Voz-Dyn
+ Real64 TotalAnyZoneBelowVozDynOccForOA = 0.0; // total time any zone below target Voz-Dyn
+ Real64 TotalAllZonesAtVozDynOccForOA = 0.0; // total time all zones at target Voz-Dyn
+ Real64 TotalAnyZoneAboveVozDynOccForOA = 0.0; // total time any zone above target Voz-Dyn
+ Real64 TotalAnyZoneVentUnoccForOA = 0.0; // total time any zone has ventilation when unoccupied
+
+ Real64 TotalAnyAirLoopBelowVozDynForOA = 0.0; // total time any air loop below target Voz-Dyn
+ Real64 TotalAllAirLoopsAtVozDynForOA = 0.0; // total time all air loops at target Voz-Dyn
+ Real64 TotalAnyAirLoopAboveVozDynForOA = 0.0; // total time any air loop above target Voz-Dyn
+ Real64 TotalAnyAirLoopBelowVozDynOccForOA = 0.0; // total time any air loop below target Voz-Dyn
+ Real64 TotalAllAirLoopsAtVozDynOccForOA = 0.0; // total time all air loops at target Voz-Dyn
+ Real64 TotalAnyAirLoopAboveVozDynOccForOA = 0.0; // total time any air loop above target Voz-Dyn
+ Real64 TotalAnyAirLoopVentUnoccForOA = 0.0; // total time any air loop has ventilation when unoccupied
+
Array1D reportName;
Array1D subTable;
Array1D columnTag;
@@ -1503,6 +1598,7 @@ struct OutputReportPredefinedData : BaseGlobalStruct {
this->pdchULnotMetCool = 0;
this->pdchULnotMetHeatOcc = 0;
this->pdchULnotMetCoolOcc = 0;
+
this->pdrOutsideAir = 0;
this->pdstOAavgOcc = 0;
this->pdchOaoAvgNumOcc1 = 0;
@@ -1522,6 +1618,81 @@ struct OutputReportPredefinedData : BaseGlobalStruct {
this->pdchOaoMinAFNInfil = 0;
this->pdchOaoMinSimpVent = 0;
this->pdchOaoMinTotVent = 0;
+
+ this->pdrOutsideAirDetails = 0;
+ this->pdstOAmechVentParByZone = 0;
+ this->pdchOaMvAirLpNm = 0;
+ this->pdchOaMvAvgNumOcc = 0;
+ this->pdchOaMvNomNumOcc = 0;
+ this->pdchOaMvZoneVol = 0;
+ this->pdchOaMvZoneArea = 0;
+ this->pdchOaMvDesZnOa = 0;
+ this->pdchOaMvMinDynTrgVent = 0;
+
+ this->pdstOAtotAirByZone = 0;
+ this->pdchOaTaBzMechVent = 0;
+ this->pdchOaTaBzNatVent = 0;
+ this->pdchOaTaBzTotVent = 0;
+ this->pdchOaTaBzInfil = 0;
+ this->pdchOaTaBzTotVentInfil = 0;
+ this->pdchOaTaBzDynTrgVent = 0;
+ this->pdchOaTaBzTmBelow = 0;
+ this->pdchOaTaBzTmAt = 0;
+ this->pdchOaTaBzTmAbove = 0;
+ this->pdchOaTaBzTmAboveUnocc = 0;
+
+ this->pdstOAavgOccByZone = 0;
+ this->pdchOaOccBzMechVent = 0;
+ this->pdchOaOccBzNatVent = 0;
+ this->pdchOaOccBzTotVent = 0;
+ this->pdchOaOccBzInfil = 0;
+ this->pdchOaOccBzTotVentInfil = 0;
+ this->pdchOaOccBzDynTrgVent = 0;
+ this->pdchOaOccBzTmBelow = 0;
+ this->pdchOaOccBzTmAt = 0;
+ this->pdchOaOccBzTmAbove = 0;
+
+ this->pdstOAtotAirByLoop = 0;
+ this->pdchOaTaAlMechVent = 0;
+ this->pdchOaTaAlNatVent = 0;
+ this->pdchOaTaAlTotVent = 0;
+ this->pdchOaTaAlSumDynTrgVent = 0;
+ this->pdchOaTaAlTmBelow = 0;
+ this->pdchOaTaAlTmAt = 0;
+ this->pdchOaTaAlTmAbove = 0;
+ this->pdchOaTaAlTmAboveUnocc = 0;
+
+ this->pdstOAavgOccByLoop = 0;
+ this->pdchOaOccAlMechVent = 0;
+ this->pdchOaOccAlNatVent = 0;
+ this->pdchOaOccAlTotVent = 0;
+ this->pdchOaOccAlSumDynTrgVent = 0;
+ this->pdchOaOccAlTmBelow = 0;
+ this->pdchOaOccAlTmAt = 0;
+ this->pdchOaOccAlTmAbove = 0;
+
+ this->pdstOAtimeFactorsDurOcc = 0;
+ this->pdchOaTmFctNoLimit = 0;
+ this->pdchOaTmFctHiHumid = 0;
+ this->pdchOaTmFctNiteVent = 0;
+ this->pdchOaTmFctEcono = 0;
+ this->pdchOaTmFctDCV = 0;
+ this->pdchOaTmFctExhaust = 0;
+ this->pdchOaTmFctLimit = 0;
+ this->pdchOaTmFctDemand = 0;
+ this->pdchOaTmFctEMS = 0;
+
+ this->pdstOAavgFactorsDurOcc = 0;
+ this->pdchOaAvFctNoLimit = 0;
+ this->pdchOaAvFctHiHumid = 0;
+ this->pdchOaAvFctNiteVent = 0;
+ this->pdchOaAvFctEcono = 0;
+ this->pdchOaAvFctDCV = 0;
+ this->pdchOaAvFctExhaust = 0;
+ this->pdchOaAvFctLimit = 0;
+ this->pdchOaAvFctDemand = 0;
+ this->pdchOaAvFctEMS = 0;
+
this->pdrObjCnt = 0;
this->pdstSurfCnt = 0;
this->pdchSurfCntTot = 0;
@@ -1879,6 +2050,21 @@ struct OutputReportPredefinedData : BaseGlobalStruct {
this->TotalNotMetCoolingOccupiedForABUPS = 0.0;
this->TotalNotMetOccupiedForABUPS = 0.0;
this->TotalTimeNotSimpleASH55EitherForABUPS = 0.0;
+ this->TotalVozMax = 0.0;
+ this->TotalAnyZoneBelowVozDynForOA = 0.0;
+ this->TotalAllZonesAtVozDynForOA = 0.0;
+ this->TotalAnyZoneAboveVozDynForOA = 0.0;
+ this->TotalAnyZoneBelowVozDynOccForOA = 0.0;
+ this->TotalAllZonesAtVozDynOccForOA = 0.0;
+ this->TotalAnyZoneAboveVozDynOccForOA = 0.0;
+ this->TotalAnyZoneVentUnoccForOA = 0.0;
+ this->TotalAnyAirLoopBelowVozDynForOA = 0.0;
+ this->TotalAllAirLoopsAtVozDynForOA = 0.0;
+ this->TotalAnyAirLoopAboveVozDynForOA = 0.0;
+ this->TotalAnyAirLoopBelowVozDynOccForOA = 0.0;
+ this->TotalAllAirLoopsAtVozDynOccForOA = 0.0;
+ this->TotalAnyAirLoopAboveVozDynOccForOA = 0.0;
+ this->TotalAnyAirLoopVentUnoccForOA = 0.0;
this->reportName.deallocate();
this->subTable.deallocate();
this->columnTag.deallocate();
diff --git a/src/EnergyPlus/OutputReportTabular.cc b/src/EnergyPlus/OutputReportTabular.cc
index 584bf86adab..45b8b6fdc57 100644
--- a/src/EnergyPlus/OutputReportTabular.cc
+++ b/src/EnergyPlus/OutputReportTabular.cc
@@ -76,6 +76,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -5983,56 +5984,124 @@ namespace EnergyPlus::OutputReportTabular {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchExLtConsump, "Exterior Lighting Total", consumptionTotal);
// outside air ventilation
+ Real64 totalOccupants = 0.;
+ Real64 totalAverageOccupants = 0.;
+ Real64 totalArea = 0.;
+ Real64 totalVozMin = 0;
+ Real64 totalMechVentVol = 0;
+ Real64 totalNatVentVol = 0;
+ Real64 totalInfilVol = 0;
+ Real64 totalVozDyn = 0;
+ Real64 totalMechVentRateOcc = 0;
+ Real64 totalNatVentRateOcc = 0;
+ Real64 totalInfilRateOcc = 0;
+ Real64 totalVozDynOcc = 0;
+
+ // Outdoor Air Summary and Outdoor Air Details
for (iZone = 1; iZone <= state.dataGlobal->NumOfZones; ++iZone) {
+ int const zoneMult = Zone(iZone).Multiplier * Zone(iZone).ListMultiplier;
if (Zone(iZone).SystemZoneNodeNumber >= 0) { // conditioned zones only
- if (Zone(iZone).isNominalOccupied) {
+
+ // AFN infiltration -- check that afn sim is being done.
+ if (!(AirflowNetwork::SimulateAirflowNetwork == AirflowNetwork::AirflowNetworkControlMultizone ||
+ AirflowNetwork::SimulateAirflowNetwork == AirflowNetwork::AirflowNetworkControlMultiADS)) {
+ ZonePreDefRep(iZone).AFNInfilVolTotalStdDen = 0.0;
+ ZonePreDefRep(iZone).AFNInfilVolMin = 0.0;
+ ZonePreDefRep(iZone).AFNInfilVolTotalOcc = 0.0;
+ }
+
+ // air loop name
+ std::string airLoopName = "";
+ int ctrlZoneNum = DataHeatBalance::Zone(iZone).ZoneEqNum;
+ if (ctrlZoneNum > 0) {
+ for (int zoneInNode = 1; zoneInNode <= state.dataZoneEquip->ZoneEquipConfig(ctrlZoneNum).NumInletNodes; ++zoneInNode) {
+ int airLoopNumber = state.dataZoneEquip->ZoneEquipConfig(ctrlZoneNum).InletNodeAirLoopNum(zoneInNode);
+ if (airLoopNumber > 0) {
+ if (airLoopName.empty()) {
+ airLoopName = state.dataAirSystemsData->PrimaryAirSystems(airLoopNumber).Name;
+ }
+ else {
+ airLoopName += "; " + state.dataAirSystemsData->PrimaryAirSystems(airLoopNumber).Name;
+ }
+ }
+ }
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvAirLpNm, Zone(iZone).Name, airLoopName);
+
// occupants
- if (ZonePreDefRep(iZone).NumOccAccumTime > 0) {
- PreDefTableEntry(state,
- state.dataOutRptPredefined->pdchOaoAvgNumOcc1, Zone(iZone).Name, ZonePreDefRep(iZone).NumOccAccum / ZonePreDefRep(iZone).NumOccAccumTime);
- PreDefTableEntry(state,
- state.dataOutRptPredefined->pdchOaoAvgNumOcc2, Zone(iZone).Name, ZonePreDefRep(iZone).NumOccAccum / ZonePreDefRep(iZone).NumOccAccumTime);
+ if (Zone(iZone).isNominalOccupied) {
+ if (ZonePreDefRep(iZone).NumOccAccumTime > 0) {
+ Real64 const avgOcc = ZonePreDefRep(iZone).NumOccAccum / ZonePreDefRep(iZone).NumOccAccumTime;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoAvgNumOcc1, Zone(iZone).Name, avgOcc);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoAvgNumOcc2, Zone(iZone).Name, avgOcc);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvAvgNumOcc, Zone(iZone).Name, avgOcc);
+ totalAverageOccupants += avgOcc * zoneMult;
+ }
}
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvNomNumOcc, Zone(iZone).Name, Zone(iZone).TotOccupants);
+ totalOccupants += Zone(iZone).TotOccupants * zoneMult;
+
+ // Zone volume and area
+
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoZoneVol1, Zone(iZone).Name, Zone(iZone).Volume);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoZoneVol2, Zone(iZone).Name, Zone(iZone).Volume);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvZoneVol, Zone(iZone).Name, Zone(iZone).Volume);
+ totalVolume += Zone(iZone).Volume * zoneMult;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvZoneArea, Zone(iZone).Name, Zone(iZone).FloorArea);
+ totalArea += Zone(iZone).FloorArea * zoneMult;
+
+ // minimum dynamic target ventilation Voz-dyn-min
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvMinDynTrgVent, Zone(iZone).Name, ZonePreDefRep(iZone).VozMin, 3);
+ totalVozMin += ZonePreDefRep(iZone).VozMin * zoneMult;
+
// Mechanical ventilation
if (Zone(iZone).Volume > 0 && ZonePreDefRep(iZone).TotTimeOcc > 0) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoAvgMechVent,
- Zone(iZone).Name,
- ZonePreDefRep(iZone).MechVentVolTotal / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume *
- Zone(iZone).Multiplier * Zone(iZone).ListMultiplier),
- 3);
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).MechVentVolTotalOcc / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume *
+ Zone(iZone).Multiplier * Zone(iZone).ListMultiplier),
+ 3);
}
if ((Zone(iZone).Volume > 0) && (ZonePreDefRep(iZone).TotTimeOcc > 0)) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoMinMechVent,
- Zone(iZone).Name,
- ZonePreDefRep(iZone).MechVentVolMin /
- (Zone(iZone).Volume * Zone(iZone).Multiplier * Zone(iZone).ListMultiplier),
- 3);
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).MechVentVolMin /
+ (Zone(iZone).Volume * Zone(iZone).Multiplier * Zone(iZone).ListMultiplier),
+ 3);
}
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzMechVent, Zone(iZone).Name, ZonePreDefRep(iZone).MechVentVolTotalStdDen, 0);
+ totalMechVentVol += ZonePreDefRep(iZone).MechVentVolTotalStdDen * zoneMult;
+
+ // Natural ventilation
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaBzNatVent,
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).SimpVentVolTotalStdDen + ZonePreDefRep(iZone).AFNVentVolTotalStdDen,
+ 0);
+ totalNatVentVol += (ZonePreDefRep(iZone).SimpVentVolTotalStdDen + ZonePreDefRep(iZone).AFNVentVolTotalStdDen) * zoneMult;
+
+ // Total ventilation
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaBzTotVent,
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).MechVentVolTotalStdDen + ZonePreDefRep(iZone).SimpVentVolTotalStdDen +
+ ZonePreDefRep(iZone).AFNVentVolTotalStdDen,
+ 0);
+
// infiltration
if (Zone(iZone).Volume > 0 && ZonePreDefRep(iZone).TotTimeOcc > 0) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoAvgInfil,
- Zone(iZone).Name,
- ZonePreDefRep(iZone).InfilVolTotal / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume),
- 3);
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).InfilVolTotalOcc / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume),
+ 3);
}
if ((Zone(iZone).Volume > 0) && (ZonePreDefRep(iZone).TotTimeOcc > 0)) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoMinInfil, Zone(iZone).Name, ZonePreDefRep(iZone).InfilVolMin / (Zone(iZone).Volume), 3);
}
- // AFN infiltration -- check that afn sim is being done.
- if (AirflowNetwork::SimulateAirflowNetwork < AirflowNetwork::AirflowNetworkControlMultizone) {
- ZonePreDefRep(iZone).AFNInfilVolMin = 0.0;
- ZonePreDefRep(iZone).AFNInfilVolTotal = 0.0;
- if (!(AirflowNetwork::SimulateAirflowNetwork == AirflowNetwork::AirflowNetworkControlMultizone ||
- AirflowNetwork::SimulateAirflowNetwork == AirflowNetwork::AirflowNetworkControlMultiADS)) {
- ZonePreDefRep(iZone).AFNInfilVolMin = 0.0;
- ZonePreDefRep(iZone).AFNInfilVolTotal = 0.0;
- }
- }
if (Zone(iZone).Volume > 0 && ZonePreDefRep(iZone).TotTimeOcc > 0) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoAvgAFNInfil,
- Zone(iZone).Name,
- ZonePreDefRep(iZone).AFNInfilVolTotal / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume),
- 3);
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).AFNInfilVolTotalOcc / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume),
+ 3);
}
if ((Zone(iZone).Volume > 0) && (ZonePreDefRep(iZone).TotTimeOcc > 0)) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoMinAFNInfil, Zone(iZone).Name, ZonePreDefRep(iZone).AFNInfilVolMin / (Zone(iZone).Volume), 3);
@@ -6040,22 +6109,200 @@ namespace EnergyPlus::OutputReportTabular {
// simple 'ZoneVentilation'
if (Zone(iZone).Volume > 0 && ZonePreDefRep(iZone).TotTimeOcc > 0) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoAvgSimpVent,
- Zone(iZone).Name,
- ZonePreDefRep(iZone).SimpVentVolTotal / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume),
- 3);
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).SimpVentVolTotalOcc / (ZonePreDefRep(iZone).TotTimeOcc * Zone(iZone).Volume),
+ 3);
}
if ((Zone(iZone).Volume > 0) && (ZonePreDefRep(iZone).TotTimeOcc > 0)) {
PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoMinSimpVent, Zone(iZone).Name, ZonePreDefRep(iZone).SimpVentVolMin / (Zone(iZone).Volume), 3);
}
- // Zone volume
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoZoneVol1, Zone(iZone).Name, Zone(iZone).Volume);
- PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaoZoneVol2, Zone(iZone).Name, Zone(iZone).Volume);
- totalVolume += Zone(iZone).Volume;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzInfil, Zone(iZone).Name, ZonePreDefRep(iZone).InfilVolTotalStdDen, 0);
+ totalInfilVol += ZonePreDefRep(iZone).InfilVolTotalStdDen * zoneMult;
+
+ // Total ventilation and infiltration
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaBzTotVentInfil,
+ Zone(iZone).Name,
+ ZonePreDefRep(iZone).MechVentVolTotalStdDen + ZonePreDefRep(iZone).SimpVentVolTotalStdDen +
+ ZonePreDefRep(iZone).AFNInfilVolTotalStdDen + ZonePreDefRep(iZone).InfilVolTotalStdDen,
+ 0);
+
+ // Dynamic target ventilation Voz-dyn
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzDynTrgVent, Zone(iZone).Name, ZonePreDefRep(iZone).VozTargetTotal, 0);
+ totalVozDyn += ZonePreDefRep(iZone).VozTargetTotal * zoneMult;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzTmBelow, Zone(iZone).Name, ZonePreDefRep(iZone).VozTargetTimeBelow, 0);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzTmAt, Zone(iZone).Name, ZonePreDefRep(iZone).VozTargetTimeAt, 0);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzTmAbove, Zone(iZone).Name, ZonePreDefRep(iZone).VozTargetTimeAbove, 0);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzTmAboveUnocc, Zone(iZone).Name, ZonePreDefRep(iZone).TotVentTimeNonZeroUnocc, 0);
+
+ if (Zone(iZone).isNominalOccupied && (ZonePreDefRep(iZone).TotTimeOcc > 0.0)) {
+ Real64 totTimeOccSec = ZonePreDefRep(iZone).TotTimeOcc * SecInHour;
+ // Mechanical ventilation
+ Real64 mechVent = ZonePreDefRep(iZone).MechVentVolTotalOccStdDen / totTimeOccSec;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzMechVent, Zone(iZone).Name, mechVent, 4);
+ totalMechVentRateOcc += mechVent * zoneMult;
+
+ // Natural ventilation
+ Real64 natVent = (ZonePreDefRep(iZone).SimpVentVolTotalOccStdDen + ZonePreDefRep(iZone).AFNVentVolTotalOccStdDen) / totTimeOccSec;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzNatVent, Zone(iZone).Name, natVent);
+ totalNatVentRateOcc += natVent * zoneMult;
+
+ // Total ventilation
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzTotVent, Zone(iZone).Name, mechVent + natVent, 4);
+
+ // infiltration
+ Real64 infil = (ZonePreDefRep(iZone).InfilVolTotalOccStdDen+ ZonePreDefRep(iZone).AFNInfilVolTotalOccStdDen) / totTimeOccSec;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzInfil, Zone(iZone).Name, infil, 4);
+ totalInfilRateOcc += infil * zoneMult;
+
+ // Total ventilation and infiltration
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzTotVentInfil, Zone(iZone).Name, mechVent + natVent + infil, 4);
+
+ // Dynamic target ventilation Voz-dyn
+ Real64 avgVoz = ZonePreDefRep(iZone).VozTargetTotalOcc / totTimeOccSec;
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzDynTrgVent, Zone(iZone).Name, avgVoz, 4);
+ totalVozDynOcc += avgVoz * zoneMult;
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaOccBzTmBelow, Zone(iZone).Name, ZonePreDefRep(iZone).VozTargetTimeBelowOcc, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaOccBzTmAt, Zone(iZone).Name, ZonePreDefRep(iZone).VozTargetTimeAtOcc, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaOccBzTmAbove, Zone(iZone).Name, ZonePreDefRep(iZone).VozTargetTimeAboveOcc, 0);
+ }
}
}
}
+ for (int iSys = 1; iSys <= DataHVACGlobals::NumPrimaryAirSys; ++iSys) {
+ // Total Outdoor Air by Airloop
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlMechVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysMechVentTotal,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlNatVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysNatVentTotal,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlTotVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysMechVentTotal + state.dataSysRpts->SysPreDefRep(iSys).SysNatVentTotal,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlSumDynTrgVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTargetVentTotalVoz,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlTmBelow,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeBelowVozDynTotal,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlTmAt,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeAtVozDynTotal,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlTmAbove,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeAboveVozDynTotal,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaTaAlTmAboveUnocc,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeVentUnoccTotal,
+ 0);
+ // Average Outdoor Air During Occupancy by Airloop
+ if (state.dataSysRpts->SysPreDefRep(iSys).SysTimeOccupiedTotal > 0.0) {
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaOccAlMechVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysMechVentTotalOcc /
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeOccupiedTotal,
+ 4);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaOccAlNatVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysNatVentTotalOcc /
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeOccupiedTotal,
+ 4);
+ PreDefTableEntry(
+ state,
+ state.dataOutRptPredefined->pdchOaOccAlTotVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ (state.dataSysRpts->SysPreDefRep(iSys).SysMechVentTotalOcc + state.dataSysRpts->SysPreDefRep(iSys).SysNatVentTotalOcc) /
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeOccupiedTotal,
+ 4);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaOccAlSumDynTrgVent,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTargetVentTotalVozOcc /
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeOccupiedTotal,
+ 4);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaOccAlTmBelow,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeBelowVozDynTotalOcc,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaOccAlTmAt,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeAtVozDynTotalOcc,
+ 0);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaOccAlTmAbove,
+ state.dataAirSystemsData->PrimaryAirSystems(iSys).Name,
+ state.dataSysRpts->SysPreDefRep(iSys).SysTimeAboveVozDynTotalOcc,
+ 0);
+ }
+ }
+ // add total rows for outdoor air details
+ OutputReportPredefined::PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaMvDesZnOa, "Total Facility", state.dataOutRptPredefined->TotalVozMax, 4);
+
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvZoneVol, "Total Facility", totalVolume);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvZoneArea, "Total Facility", totalArea);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvNomNumOcc, "Total Facility", totalOccupants);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvAvgNumOcc, "Total Facility", totalAverageOccupants);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvMinDynTrgVent, "Total Facility", totalVozMin, 3);
+
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzMechVent, "Total Facility", totalMechVentVol, 0);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzNatVent, "Total Facility", totalNatVentVol, 0);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzTotVent, "Total Facility", totalMechVentVol + totalNatVentVol, 0);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzInfil, "Total Facility", totalInfilVol, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaTaBzTotVentInfil, "Total Facility", totalMechVentVol + totalNatVentVol + totalInfilVol, 0);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaTaBzDynTrgVent, "Total Facility", totalVozDyn, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaTaBzTmBelow, "Total Facility", state.dataOutRptPredefined->TotalAnyZoneBelowVozDynForOA, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaTaBzTmAt, "Total Facility", state.dataOutRptPredefined->TotalAllZonesAtVozDynForOA, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaTaBzTmAbove, "Total Facility", state.dataOutRptPredefined->TotalAnyZoneAboveVozDynForOA, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaTaBzTmAboveUnocc, "Total Facility", state.dataOutRptPredefined->TotalAnyZoneVentUnoccForOA, 0);
+
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzMechVent, "Total Facility", totalMechVentRateOcc, 4);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzNatVent, "Total Facility", totalNatVentRateOcc, 4);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzTotVent, "Total Facility", totalMechVentRateOcc + totalNatVentRateOcc, 4);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzInfil, "Total Facility", totalInfilRateOcc, 4);
+ PreDefTableEntry(state,
+ state.dataOutRptPredefined->pdchOaOccBzTotVentInfil,
+ "Total Facility",
+ totalMechVentRateOcc + totalNatVentRateOcc + totalInfilRateOcc,
+ 4);
+ PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaOccBzDynTrgVent, "Total Facility", totalVozDynOcc, 4);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaOccBzTmBelow, "Total Facility", state.dataOutRptPredefined->TotalAnyZoneBelowVozDynOccForOA, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaOccBzTmAt, "Total Facility", state.dataOutRptPredefined->TotalAllZonesAtVozDynOccForOA, 0);
+ PreDefTableEntry(
+ state, state.dataOutRptPredefined->pdchOaOccBzTmAbove, "Total Facility", state.dataOutRptPredefined->TotalAnyZoneAboveVozDynOccForOA, 0);
+
// Add the number of central air distributions system to the count report
PreDefTableEntry(state, state.dataOutRptPredefined->pdchHVACcntVal, "HVAC Air Loops", NumPrimaryAirSys);
// Add the number of conditioned and unconditioned zones to the count report
@@ -15881,14 +16128,19 @@ namespace EnergyPlus::OutputReportTabular {
for (iZone = 1; iZone <= state.dataGlobal->NumOfZones; ++iZone) {
if (Zone(iZone).SystemZoneNodeNumber >= 0) { // conditioned zones only
if (Zone(iZone).isNominalOccupied) {
- ZonePreDefRep(iZone).MechVentVolTotal = 0.;
+ ZonePreDefRep(iZone).MechVentVolTotalOcc = 0.;
+ ZonePreDefRep(iZone).MechVentVolTotalOccStdDen = 0.;
ZonePreDefRep(iZone).MechVentVolMin = HUGE_(bigVal);
- ZonePreDefRep(iZone).InfilVolTotal = 0.;
+ ZonePreDefRep(iZone).InfilVolTotalOcc = 0.;
+ ZonePreDefRep(iZone).InfilVolTotalOccStdDen = 0.;
ZonePreDefRep(iZone).InfilVolMin = HUGE_(bigVal);
- ZonePreDefRep(iZone).AFNInfilVolTotal = 0.;
+ ZonePreDefRep(iZone).AFNInfilVolTotalOcc = 0.;
+ ZonePreDefRep(iZone).AFNInfilVolTotalOccStdDen = 0.;
ZonePreDefRep(iZone).AFNInfilVolMin = HUGE_(bigVal);
- ZonePreDefRep(iZone).SimpVentVolTotal = 0.;
+ ZonePreDefRep(iZone).SimpVentVolTotalOcc = 0.;
+ ZonePreDefRep(iZone).SimpVentVolTotalOccStdDen = 0.;
ZonePreDefRep(iZone).SimpVentVolMin = HUGE_(bigVal);
+ ZonePreDefRep(iZone).AFNVentVolTotalOccStdDen = 0.;
ZonePreDefRep(iZone).TotTimeOcc = 0.;
}
}
diff --git a/src/EnergyPlus/RoomAirModelAirflowNetwork.cc b/src/EnergyPlus/RoomAirModelAirflowNetwork.cc
index 8c4e4650ed1..6f522e370dc 100644
--- a/src/EnergyPlus/RoomAirModelAirflowNetwork.cc
+++ b/src/EnergyPlus/RoomAirModelAirflowNetwork.cc
@@ -1051,14 +1051,14 @@ namespace RoomAirModelAirflowNetwork {
if (Surface(SurfNum).Class == DataSurfaces::SurfaceClass::Window) {
// Add to the convective internal gains
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The shade area covers the area of the glazing plus the area of the dividers.
Area += SurfWinDividerArea(SurfNum);
SumIntGain += SurfWinDividerHeatGain(SurfNum);
}
// Convective heat gain from natural convection in gap between glass and interior shade or blind
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn)
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum)))
SumIntGain += SurfWinConvHeatFlowNatural(SurfNum);
// Convective heat gain from airflow window
@@ -1088,8 +1088,7 @@ namespace RoomAirModelAirflowNetwork {
HA += HConvIn(SurfNum) * SurfWinFrameArea(SurfNum) * (1.0 + SurfWinProjCorrFrIn(SurfNum));
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn &&
- SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution(only from shade or blind for window with divider and interior shade or blind)
SumHATsurf += HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) *
SurfWinDividerTempSurfIn(SurfNum);
diff --git a/src/EnergyPlus/SimulationManager.cc b/src/EnergyPlus/SimulationManager.cc
index ff43d382993..abd2968f8d3 100644
--- a/src/EnergyPlus/SimulationManager.cc
+++ b/src/EnergyPlus/SimulationManager.cc
@@ -3105,7 +3105,7 @@ void Resimulate(EnergyPlusData &state,
// HVAC simulation
ManageZoneAirUpdates(state, iGetZoneSetPoints, ZoneTempChange, false, UseZoneTimeStepHistory, 0.0);
if (state.dataContaminantBalance->Contaminant.SimulateContaminants) ManageZoneContaminanUpdates(state, iGetZoneSetPoints, false, UseZoneTimeStepHistory, 0.0);
- CalcAirFlowSimple(state, 0, ZoneAirMassFlow.EnforceZoneMassBalance);
+ CalcAirFlowSimple(state, 0, ZoneAirMassFlow.EnforceZoneMassBalance, ZoneAirMassFlow.EnforceZoneMassBalance);
ManageZoneAirUpdates(state, iPredictStep, ZoneTempChange, false, UseZoneTimeStepHistory, 0.0);
if (state.dataContaminantBalance->Contaminant.SimulateContaminants) ManageZoneContaminanUpdates(state, iPredictStep, false, UseZoneTimeStepHistory, 0.0);
SimHVAC(state);
diff --git a/src/EnergyPlus/SizingManager.cc b/src/EnergyPlus/SizingManager.cc
index 6869bb45429..c97382f19c4 100644
--- a/src/EnergyPlus/SizingManager.cc
+++ b/src/EnergyPlus/SizingManager.cc
@@ -1621,6 +1621,7 @@ namespace EnergyPlus::SizingManager {
VbzByZone(termUnitSizingIndex) /
TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling,
4); // Voz-clg
+
}
OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zvpHtEz,
TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName,
@@ -1715,11 +1716,12 @@ namespace EnergyPlus::SizingManager {
TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName,
VpzMinClgByZone(termUnitSizingIndex),
4); // Vpz-min
+ Real64 VozClg = 0.0;
if (TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling > 0.0) {
+ VozClg = VbzByZone(termUnitSizingIndex) / TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling;
OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdVozclg,
TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName,
- VbzByZone(termUnitSizingIndex) /
- TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffCooling,
+ VozClg,
4); // Voz-clg
}
OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zcdZpz,
@@ -1776,13 +1778,21 @@ namespace EnergyPlus::SizingManager {
TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName,
VpzMinHtgByZone(termUnitSizingIndex),
4); // Vpz-min
+ Real64 VozHtg = 0.0;
if (TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating != 0.0) {
+ VozHtg = VbzByZone(termUnitSizingIndex) / TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating;
OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdVozhtg,
TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName,
- VbzByZone(termUnitSizingIndex) /
- TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneADEffHeating,
+ VozHtg,
4); // Voz-htg
}
+ // Outdoor Air Details Report - Design Zone Outdoor Airflow - Voz
+ Real64 VozMax = std::max(VozHtg, VozClg); // take larger of the heating and cooling Voz values
+ OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchOaMvDesZnOa,
+ TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName,
+ VozMax,
+ 4);
+ state.dataOutRptPredefined->TotalVozMax += VozMax * DataHeatBalance::Zone(zoneNum).Multiplier * DataHeatBalance::Zone(zoneNum).ListMultiplier;
OutputReportPredefined::PreDefTableEntry(state, state.dataOutRptPredefined->pdchS62zhdZpz,
TermUnitFinalZoneSizing(termUnitSizingIndex).ZoneName,
TermUnitFinalZoneSizing(termUnitSizingIndex).ZpzHtgByZone,
@@ -1877,6 +1887,8 @@ namespace EnergyPlus::SizingManager {
4); // Voz-htg
OutputReportPredefined::PreDefTableEntry(state,
state.dataOutRptPredefined->pdchS62shdEvz, FinalSysSizing(AirLoopNum).AirPriLoopName, EvzMinBySysHeat(AirLoopNum), 4); // Evz-min
+
+
} // loop over air loops for table writing
}
diff --git a/src/EnergyPlus/SolarShading.cc b/src/EnergyPlus/SolarShading.cc
index 45eecb27a6a..6472448b014 100644
--- a/src/EnergyPlus/SolarShading.cc
+++ b/src/EnergyPlus/SolarShading.cc
@@ -1347,8 +1347,8 @@ namespace SolarShading {
// Added TH 5/26/2009 for switchable windows to report switching factor (tinted level)
// CurrentModuleObject='Switchable Windows'
if (Surface(SurfLoop).HasShadeControl) {
- if (WindowShadingControl(Surface(SurfLoop).activeWindowShadingControl).ShadingType == WSC_ST_SwitchableGlazing) {
- // IF (SurfaceWindow(SurfLoop)%ShadingFlag == SwitchableGlazing) THEN !ShadingFlag is not set to SwitchableGlazing yet!
+ if (WindowShadingControl(Surface(SurfLoop).activeWindowShadingControl).ShadingType == WinShadingType::SwitchableGlazing) {
+ // IF (SurfaceWindow(SurfLoop)%ShadingFlag == WinShadingType::SwitchableGlazing) THEN !ShadingFlag is not set to WinShadingType::SwitchableGlazing yet!
SetupOutputVariable(state, "Surface Window Switchable Glazing Switching Factor",
OutputProcessor::Unit::None,
SurfWinSwitchingFactor(SurfLoop),
@@ -6068,7 +6068,7 @@ namespace SolarShading {
}
int BlNum = SurfWinBlindNumber(SurfNum);
int ScNum = SurfWinScreenNumber(SurfNum);
- int ShadeFlag = SurfWinShadingFlag(SurfNum); // Set in subr. WindowShadingManager
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum); // Set in subr. WindowShadingManager
Real64 ProfAng = 0.0; // Window solar profile angle (radians)
@@ -6111,8 +6111,8 @@ namespace SolarShading {
AbWin(Lay) = POLYF(CosInc, state.dataConstruction->Construct(ConstrNum).AbsBeamCoef({1, 6}, Lay)) *
CosInc * SunLitFract * SurfaceWindow(SurfNum).OutProjSLFracMult(state.dataGlobal->HourOfDay);
}
- if (ShadeFlag <= 0 || ShadeFlag >= 10) {
- // Bare window (ShadeFlag = -1 or 0 or shading device of off)
+ if (!IS_SHADED_NO_GLARE_CTRL(ShadeFlag)) {
+ // (ShadeFlag <= 0 || ShadeFlag >= 10) - Bare window (ShadeFlag = -1 or 0 or shading device of off)
for (int Lay = 1; Lay <= NGlass; ++Lay) {
// Add contribution of beam reflected from outside and inside reveal
SurfWinA(Lay, SurfNum) = AbWin(Lay) + SurfWinOutsRevealDiffOntoGlazing(SurfNum) * state.dataConstruction->Construct(ConstrNum).AbsDiff(Lay) +
@@ -6124,30 +6124,30 @@ namespace SolarShading {
Real64 InOutProjSLFracMult = SurfaceWindow(SurfNum).InOutProjSLFracMult(state.dataGlobal->HourOfDay);
Array1D AbWinSh(NGlass); // Like AbWin, but for shaded window
Array1D ADiffWinSh(NGlass); // Diffuse solar absorptance of glass layer, window with shading device
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) FracSunLit = SunLitFract;
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) FracSunLit = SunLitFract;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == SwitchableGlazing) {
+ if (ANY_SHADE(ShadeFlag) || ShadeFlag == WinShadingType::SwitchableGlazing) {
// Shade or switchable glazing on
for (int Lay = 1; Lay <= NGlass; ++Lay) {
AbWinSh(Lay) = POLYF(CosInc, state.dataConstruction->Construct(ConstrNumSh).AbsBeamCoef({1, 6}, Lay)) * CosInc * FracSunLit;
ADiffWinSh(Lay) = state.dataConstruction->Construct(ConstrNumSh).AbsDiff(Lay);
}
- if (ShadeFlag == IntShadeOn) { // Exterior beam absorbed by INTERIOR SHADE
+ if (ShadeFlag == WinShadingType::IntShade) { // Exterior beam absorbed by INTERIOR SHADE
// Note that AbsBeamShadeCoef includes effect of shade/glazing inter-reflection
Real64 AbsShade = POLYF(CosInc, state.dataConstruction->Construct(ConstrNumSh).AbsBeamShadeCoef); // Interior shade or blind beam solar absorptance
ExtBeamAbsByShadFac(SurfNum) = (AbsShade * CosInc * SunLitFract * InOutProjSLFracMult + SurfWinOutsRevealDiffOntoGlazing(SurfNum) * state.dataConstruction->Construct(ConstrNumSh).AbsDiffShade) * SurfWinGlazedFrac(SurfNum);
// In the above, GlazedFrac corrects for shadowing of divider onto interior shade
- } else if (ShadeFlag == ExtShadeOn) { // Exterior beam absorbed by EXTERIOR SHADE
+ } else if (ShadeFlag == WinShadingType::ExtShade) { // Exterior beam absorbed by EXTERIOR SHADE
ExtBeamAbsByShadFac(SurfNum) = state.dataConstruction->Construct(ConstrNumSh).AbsDiffShade * CosInc * SunLitFract;
- } else if (ShadeFlag == BGShadeOn) { // Exterior beam absorbed by BETWEEN-GLASS SHADE
+ } else if (ShadeFlag == WinShadingType::BGShade) { // Exterior beam absorbed by BETWEEN-GLASS SHADE
Real64 AbsShade = POLYF(CosInc, state.dataConstruction->Construct(ConstrNumSh).AbsBeamShadeCoef);
ExtBeamAbsByShadFac(SurfNum) = AbsShade * CosInc * SunLitFract + SurfWinOutsRevealDiffOntoGlazing(SurfNum) * state.dataConstruction->Construct(ConstrNumSh).AbsDiffShade;
}
} else {
// Blind or screen on
- if (ShadeFlag != ExtScreenOn) ProfileAngle(SurfNum, state.dataEnvrn->SOLCOS, Blind(BlNum).SlatOrientation, ProfAng);
- if (ShadeFlag == IntBlindOn) {
+ if (ShadeFlag != WinShadingType::ExtScreen) ProfileAngle(SurfNum, state.dataEnvrn->SOLCOS, Blind(BlNum).SlatOrientation, ProfAng);
+ if (ShadeFlag == WinShadingType::IntBlind) {
// Interior blind on
Real64 TGlBm = POLYF(CosInc,state.dataConstruction->Construct(ConstrNum).TransSolBeamCoef); // Glazing system front solar beam transmittance
Real64 RGlDiffBack = state.dataConstruction->Construct(ConstrNum).ReflectSolDiffBack; // Glazing system back diffuse solar reflectance
@@ -6171,7 +6171,7 @@ namespace SolarShading {
SurfWinOutsRevealDiffOntoGlazing(SurfNum) * AbsShadeDiff) *
SurfWinGlazedFrac(SurfNum);
// In the above, GlazedFrac corrects for shadowing of divider onto interior blind
- } else if (ShadeFlag == ExtBlindOn) {
+ } else if (ShadeFlag == WinShadingType::ExtBlind) {
// Exterior blind on
Real64 TBlBmBm = BlindBeamBeamTrans(ProfAng, SlatAng, Blind(BlNum).SlatWidth, Blind(BlNum).SlatSeparation, Blind(BlNum).SlatThickness); // Blind solar front beam-beam transmittance
Real64 TBlDifDif = InterpSlatAng(SlatAng, VarSlats, Blind(BlNum).SolFrontDiffDiffTrans); // Diffuse-diffuse solar transmittance of blind
@@ -6196,7 +6196,7 @@ namespace SolarShading {
Real64 AbsBlDiffBack = InterpSlatAng(SlatAng, VarSlats, Blind(BlNum).SolBackDiffAbs); // Blind solar back diffuse absorptance
Real64 AbsShade = AbsBlFront + AbsBlBack * RGlFront * TBlBmBm + (AbsBlDiffBack * RGlDiffFront / (1.0 - RhoBlDiffBack * RGlDiffFront)) * (RGlFront * TBlBmBm * RhoBlBack + TBlBmDiff);
ExtBeamAbsByShadFac(SurfNum) = AbsShade * CosInc * SunLitFract * InOutProjSLFracMult;
- } else if (ShadeFlag == ExtScreenOn) {
+ } else if (ShadeFlag == WinShadingType::ExtScreen) {
// Exterior screen on
Real64 TScBmBm = SurfaceScreens(ScNum).BmBmTrans; // Screen solar front beam-beam transmittance
Real64 TScBmDiff = SurfaceScreens(ScNum).BmDifTrans; // Screen solar front beam-diffuse transmittance
@@ -6218,7 +6218,7 @@ namespace SolarShading {
Real64 AbsScDiffBack = SurfaceScreens(ScNum).DifScreenAbsorp; // Screen solar back diffuse absorptance
Real64 AbsScreen = AbsScBeam * (1.0 + TScBmBm * RGlFront) + (AbsScDiffBack * TScBmBm * RGlFront * RGlDiffFront * RScBack / (1.0 - RScDifBack * RGlDiffFront)); // Exterior screen beam solar absorptance
ExtBeamAbsByShadFac(SurfNum) = AbsScreen * CosInc * SunLitFract * InOutProjSLFracMult;
- } else if (ShadeFlag == BGBlindOn) {
+ } else if (ShadeFlag == WinShadingType::BGBlind) {
// Between-glass blind o
// Isolated glass and blind properties at current incidence angle, profile angle and slat angle
Real64 t1 = POLYF(CosInc, state.dataConstruction->Construct(ConstrNum).tBareSolCoef({1, 6}, 1)); // Bare-glass beam solar transmittance for glass layers 1,2 and 3
@@ -6281,12 +6281,12 @@ namespace SolarShading {
} // End of check if blind is interior, exterior or between-glass
} // End of check if a blind is on
- if (ShadeFlag != SwitchableGlazing) {
+ if (ShadeFlag != WinShadingType::SwitchableGlazing) {
// Interior or between glass shade or blind on
for (int Lay = 1; Lay <= NGlass; ++Lay) {
SurfWinA(Lay, SurfNum) = AbWinSh(Lay);
// Add contribution of diffuse from beam on outside reveal
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn)
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag) || ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag))
SurfWinA(Lay, SurfNum) += ADiffWinSh(Lay) * SurfWinOutsRevealDiffOntoGlazing(SurfNum);
}
} else {
@@ -6401,10 +6401,10 @@ namespace SolarShading {
}
if (SurfWinWindowModelType(SurfNum) == Window5DetailedModel) {
- if (ShadeFlag > 0 && ShadeFlag < 10) {
- if (ShadeFlag != SwitchableGlazing) {
+ if (IS_SHADED_NO_GLARE_CTRL(SurfWinShadingFlag(SurfNum))) {
+ if (ShadeFlag != WinShadingType::SwitchableGlazing) {
// Shade or blind
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
// Shade or screen
DiffTrans = state.dataConstruction->Construct(ConstrNumSh).TransDiff;
} else {
@@ -6489,10 +6489,10 @@ namespace SolarShading {
} else {
DiffTrans = state.dataConstruction->Construct(ConstrNum).TransDiff;
}
- if (ShadeFlag > 0 && ShadeFlag < 10) {
- if (ShadeFlag != SwitchableGlazing) {
+ if (IS_SHADED_NO_GLARE_CTRL(ShadeFlag)) {
+ if (ShadeFlag != WinShadingType::SwitchableGlazing) {
// Shade or blind
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
// Shade or screen
DiffTrans = state.dataConstruction->Construct(ConstrNumSh).TransDiff;
} else {
@@ -6546,10 +6546,10 @@ namespace SolarShading {
if (SurfWinWindowModelType(SurfNum) != WindowEQLModel) {
SurfWinBlGlSysTsolDifDif(SurfNum) = DiffTrans;
SurfWinScGlSysTsolDifDif(SurfNum) = DiffTrans;
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_BLIND(ShadeFlag)|| ShadeFlag == WinShadingType::ExtScreen) {
SurfWinBlGlSysTsolDifDif(SurfNum) = DiffTrans;
SurfWinScGlSysTsolDifDif(SurfNum) = DiffTrans;
- if (ShadeFlag == ExtScreenOn) {
+ if (ShadeFlag == WinShadingType::ExtScreen) {
SurfWinScTsolDifDif(SurfNum) = SurfaceScreens(ScNum).DifDifTrans;
} else {
SurfWinBlTsolDifDif(SurfNum) = InterpSlatAng(SlatAng, VarSlats, Blind(BlNum).SolFrontDiffDiffTrans);
@@ -6562,10 +6562,10 @@ namespace SolarShading {
//-----------------------------------------------------------------
if (ConstrNumSh != 0 && SunLitFract > 0.0) {
if (SurfWinWindowModelType(SurfNum) != WindowEQLModel) {
- if (ShadeFlag > 0 && ShadeFlag < 10) {
+ if (IS_SHADED_NO_GLARE_CTRL(ShadeFlag)) {
// Shade or screen or blind on, or switchable glazing
// (note in the following that diffusing glass is not allowed in a window with shade, blind or switchable glazing)
- if (ShadeFlag != IntBlindOn && ShadeFlag != ExtBlindOn && ShadeFlag != BGBlindOn && ShadeFlag != ExtScreenOn) {
+ if (ANY_SHADE(ShadeFlag) || ShadeFlag == WinShadingType::SwitchableGlazing) {
// Shade on or switchable glazing
TBmAllShBlSc = POLYF(CosInc, state.dataConstruction->Construct(ConstrNumSh).TransSolBeamCoef);
} else {
@@ -6575,7 +6575,7 @@ namespace SolarShading {
Real64 TBlDifDif; // Diffuse-diffuse solar transmittance of blind
Real64 TScBmBm;
Real64 TBlBmBm;
- if (ShadeFlag == ExtScreenOn) {// Exterior screen
+ if (ShadeFlag == WinShadingType::ExtScreen) {// Exterior screen
Real64 RScBack = SurfaceScreens(ScNum).ReflectSolBeamFront;
Real64 RScDifDifBk = SurfaceScreens(ScNum).DifReflect; // Diffuse-diffuse back refectance of screen
Real64 RGlBmFr = POLYF(CosInc, state.dataConstruction->Construct(ConstrNum).ReflSolBeamFrontCoef); // Beam front reflectance of glass
@@ -6595,7 +6595,7 @@ namespace SolarShading {
} else {
TBlBmBm = BlindBeamBeamTrans(ProfAng, SlatAng, Blind(BlNum).SlatWidth, Blind(BlNum).SlatSeparation, Blind(BlNum).SlatThickness);
TBlBmDif = InterpProfSlatAng(ProfAng, SlatAng, VarSlats, Blind(BlNum).SolFrontBeamDiffTrans);
- if (ShadeFlag == IntBlindOn) {
+ if (ShadeFlag == WinShadingType::IntBlind) {
Real64 RhoBlBmDifFr = InterpProfSlatAng(ProfAng, SlatAng, VarSlats, Blind(BlNum).SolFrontBeamDiffRefl); // Beam-diffuse front reflectance of blind
Real64 RGlDifBk = state.dataConstruction->Construct(ConstrNum).ReflectSolDiffBack; // Diffuse front reflectance of glass
Real64 RhoBlDifDifFr = InterpSlatAng(SlatAng, VarSlats, Blind(BlNum).SolFrontDiffDiffRefl); // Diffuse-diffuse front refectance of blind
@@ -6606,7 +6606,7 @@ namespace SolarShading {
TBmBmShBlSc = TBmBmBl; // TBmBm * TBlBmBm
TBmDifShBlSc = TBmAllShBlSc - TBmBmShBlSc;
if (TBmDifShBlSc < 0.0) TBmDifShBlSc = 0.0;
- } else if (ShadeFlag == ExtBlindOn) {
+ } else if (ShadeFlag == WinShadingType::ExtBlind) {
Real64 RhoBlBmDifBk = InterpProfSlatAng(ProfAng, SlatAng, VarSlats, Blind(BlNum).SolBackBeamDiffRefl); // Beam-diffuse back reflectance of blind
Real64 RhoBlDifDifBk = InterpSlatAng(SlatAng, VarSlats, Blind(BlNum).SolBackDiffDiffRefl); // Diffuse-diffuse back refectance of blind
Real64 RGlBmFr = POLYF(CosInc, state.dataConstruction->Construct(ConstrNum).ReflSolBeamFrontCoef);
@@ -6659,8 +6659,7 @@ namespace SolarShading {
} // end of checking if not eql window model
} // end of checking if sunlitfract > 0
- // TODO: Why this is updated after reporting
- if (ShadeFlag == SwitchableGlazing) {
+ if (ShadeFlag == WinShadingType::SwitchableGlazing) {
// Switchable glazing
Real64 SwitchFac = SurfWinSwitchingFactor(SurfNum);
if (!SurfWinSolarDiffusing(SurfNum)) {
@@ -6690,7 +6689,7 @@ namespace SolarShading {
Real64 InOutProjSLFracMult = SurfaceWindow(SurfNum).InOutProjSLFracMult(state.dataGlobal->HourOfDay);
if (SurfWinWindowModelType(SurfNum) != WindowEQLModel) {
WinTransDifSolar(SurfNum) = DiffTrans * Surface(SurfNum).Area;
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ if (ANY_BLIND(ShadeFlag)) {
if (Blind(SurfWinBlindNumber(SurfNum)).SlatOrientation == Horizontal) {
WinTransDifSolarGnd(SurfNum) = DiffTransGnd * Surface(SurfNum).Area;
WinTransDifSolarSky(SurfNum) = DiffTransSky * Surface(SurfNum).Area;
@@ -6705,7 +6704,8 @@ namespace SolarShading {
WinTransDifSolarSky(SurfNum) = DiffTrans * Surface(SurfNum).Area;
}
- if (ShadeFlag < 1 || ShadeFlag == SwitchableGlazing || ShadeFlag >= 10) { // Unshaded or switchable glazing
+ if (!IS_SHADED_NO_GLARE_CTRL(ShadeFlag) || ShadeFlag == WinShadingType::SwitchableGlazing) {
+ // Unshaded or switchable glazing
// Note: with previous defs of TBmBm & TBmDif, these come out right for Complex Fenestration
// WinTransBmSolar uses the directional-hemispherical transmittance
WinTransBmSolar(SurfNum) = (TBmBm + TBmDif) * SunLitFract * CosInc * Surface(SurfNum).Area * InOutProjSLFracMult;
@@ -6744,9 +6744,7 @@ namespace SolarShading {
// Window is schedule surface gained. Do not make addition to what enters into zone since that information is not available
if (FenSolAbsPtr == 0) {
Real64 TBmAll; // Window beam-to-(beam+diffuse) transmittance
- if (SurfWinWindowModelType(SurfNum) != WindowBSDFModel &&
- (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn ||
- ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn || ShadeFlag == ExtScreenOn)) {
+ if (SurfWinWindowModelType(SurfNum) != WindowBSDFModel && (ANY_BLIND(ShadeFlag) || ANY_SHADE_SCREEN(ShadeFlag))) {
TBmAll = TBmAllShBlSc;
} else {
TBmAll = TBmBm + TBmDif;
@@ -6787,9 +6785,10 @@ namespace SolarShading {
// from this exterior window since the beam-beam transmittance of shades and diffusing glass
// is assumed to be zero. The beam-beam transmittance of tubular daylighting devices is also
// assumed to be zero.
+
if (SunLitFract > 0.0) {
if (SurfWinWindowModelType(SurfNum) != WindowBSDFModel)
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || SurfWinSolarDiffusing(SurfNum) ||
+ if (ANY_SHADE(ShadeFlag) || SurfWinSolarDiffusing(SurfNum) ||
SurfWinOriginalClass(SurfNum) == SurfaceClass::TDD_Diffuser || Surface(SurfNum).Class == SurfaceClass::TDD_Dome)
continue;
@@ -6812,9 +6811,9 @@ namespace SolarShading {
if (ShelfNum > 0) { // Daylighting shelf
InShelfSurf = state.dataDaylightingDevicesData->Shelf(ShelfNum).InSurf;
}
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ if (ANY_BLIND(ShadeFlag)) {
TBm = TBmBmBl; // Interior, exterior or between-glass blind on
- } else if (ShadeFlag == ExtScreenOn) {
+ } else if (ShadeFlag == WinShadingType::ExtScreen) {
TBm = TBmBmSc; // Exterior screen on
} else {
TBm = TBmBm; // Bare glass or switchable glazing
@@ -6882,7 +6881,7 @@ namespace SolarShading {
// are assumed to be bare, i.e., they have no shading device and are non-switchable.
// The layer order for interior windows is "outside" to "inside," where "outside" refers to
// the adjacent zone and "inside" refers to the current zone.
- int ShadeFlagBack = SurfWinShadingFlag(BackSurfNum);
+ WinShadingType ShadeFlagBack = SurfWinShadingFlag(BackSurfNum);
bool VarSlatsBack = SurfWinMovableSlats(BackSurfNum);
Real64 SlatAngBack = SurfWinSlatAngThisTS(BackSurfNum);
Real64 CosIncBack = std::abs(CosIncAng(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, BackSurfNum));
@@ -6902,7 +6901,7 @@ namespace SolarShading {
// Interior beam absorptance of glass layers and beam transmittance of back exterior &
// or interior window WITHOUT SHADING this timestep
- if (ShadeFlagBack <= 0) {
+ if (NOT_SHADED(ShadeFlagBack)) {
for (int Lay = 1; Lay <= NBackGlass; ++Lay) {
AbsBeamWin(Lay) = POLYF(CosIncBack, state.dataConstruction->Construct(ConstrNumBack).AbsBeamBackCoef({1, 6}, Lay));
}
@@ -6911,7 +6910,7 @@ namespace SolarShading {
// Interior beam absorptance of glass layers and beam transmittance
// of back exterior window with SHADE
- if (ShadeFlagBack == IntShadeOn || ShadeFlagBack == ExtShadeOn || ShadeFlagBack == BGShadeOn) {
+ if (ANY_SHADE(ShadeFlagBack)) {
for (int Lay = 1; Lay <= state.dataConstruction->Construct(ConstrNumBackSh).TotGlassLayers; ++Lay) {
AbsBeamWin(Lay) = POLYF(CosIncBack, state.dataConstruction->Construct(ConstrNumBackSh).AbsBeamBackCoef({1, 6}, Lay));
}
@@ -6920,15 +6919,11 @@ namespace SolarShading {
// Interior beam absorbed by INTERIOR SHADE of back exterior window
- if (ShadeFlagBack == IntShadeOn) {
+ if (ShadeFlagBack == WinShadingType::IntShade) {
IntBeamAbsByShadFac(BackSurfNum) = BOverlap * state.dataConstruction->Construct(ConstrNumBackSh).AbsDiffBackShade /
(Surface(BackSurfNum).Area + SurfWinDividerArea(BackSurfNum));
BABSZone += BOverlap * state.dataConstruction->Construct(ConstrNumBackSh).AbsDiffBackShade;
- }
-
- // Interior beam absorbed by EXTERIOR SHADE of back exterior window
-
- if (ShadeFlagBack == ExtShadeOn) {
+ } else if (ShadeFlagBack == WinShadingType::ExtShade) { // Interior beam absorbed by EXTERIOR SHADE of back exterior window
Real64 RGlFront = state.dataConstruction->Construct(ConstrNumBack).ReflectSolDiffFront;
Real64 AbsSh = state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNumBackSh).LayerPoint(1)).AbsorpSolar;
Real64 RhoSh = 1.0 - AbsSh - state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNumBackSh).LayerPoint(1)).Trans;
@@ -6936,11 +6931,7 @@ namespace SolarShading {
BABSZone += BOverlap * AShBack;
IntBeamAbsByShadFac(BackSurfNum) =
BOverlap * AShBack / (Surface(BackSurfNum).Area + SurfWinDividerArea(BackSurfNum));
- }
-
- // Interior beam absorbed by BETWEEN-GLASS SHADE of back exterior window
-
- if (ShadeFlagBack == BGShadeOn) {
+ } else if (ShadeFlagBack == WinShadingType::BGShade) { // Interior beam absorbed by BETWEEN-GLASS SHADE of back exterior window
Real64 rbd1k = state.dataConstruction->Construct(ConstrNumBack).rbBareSolDiff(1);
Real64 rfd2k = state.dataConstruction->Construct(ConstrNumBack).rfBareSolDiff(2);
Real64 AShBack; // System shade absorptance for interior beam solar
@@ -6966,7 +6957,7 @@ namespace SolarShading {
// Interior beam absorptance of glass layers and beam absorbed in blind
// of back exterior window with BLIND
- if (ShadeFlagBack == IntBlindOn || ShadeFlagBack == ExtBlindOn || ShadeFlagBack == BGBlindOn) {
+ if (ANY_BLIND(ShadeFlagBack)) {
int BlNumBack = SurfWinBlindNumber(BackSurfNum); // Back surface blind number
Real64 ProfAngBack; // Back window solar profile angle (radians)
ProfileAngle(BackSurfNum, state.dataEnvrn->SOLCOS, Blind(BlNumBack).SlatOrientation, ProfAngBack);
@@ -6979,7 +6970,7 @@ namespace SolarShading {
Real64 TBlBmDiffBack = InterpProfSlatAng(ProfAngBack, SlatAngBack, VarSlatsBack,
Blind(BlNumBack).SolBackBeamDiffTrans); // Blind solar back beam-diffuse transmittance
- if (ShadeFlagBack == IntBlindOn) {
+ if (ShadeFlagBack == WinShadingType::IntBlind) {
// Interior beam absorptance of GLASS LAYERS of exterior back window with INTERIOR BLIND
// Blind solar front beam reflectance
@@ -7021,9 +7012,7 @@ namespace SolarShading {
IntBeamAbsByShadFac(BackSurfNum) =
BOverlap * ABlBack / (Surface(BackSurfNum).Area + SurfWinDividerArea(BackSurfNum));
BABSZone += BOverlap * ABlBack;
- }
-
- if (ShadeFlagBack == ExtBlindOn) {
+ } else if (ShadeFlagBack == WinShadingType::ExtBlind) {
// Interior beam absorptance of GLASS LAYERS of exterior back window with EXTERIOR BLIND
// Glazing system front diffuse solar reflectance
@@ -7058,10 +7047,8 @@ namespace SolarShading {
BABSZone += BOverlap * ABlBack;
IntBeamAbsByShadFac(BackSurfNum) =
BOverlap * ABlBack / (Surface(BackSurfNum).Area + SurfWinDividerArea(BackSurfNum));
- } // End of check if exterior blind on back window
-
- if (ShadeFlagBack == BGBlindOn) {
-
+ } else {
+ // ShadeFlagBack == BGBlindOn
Real64 t1k = POLYF(CosIncBack, state.dataConstruction->Construct(ConstrNumBack).tBareSolCoef({1, 6}, 1));
Real64 t2k = POLYF(CosIncBack, state.dataConstruction->Construct(ConstrNumBack).tBareSolCoef({1, 6}, 2));
Real64 af2k = POLYF(CosIncBack, state.dataConstruction->Construct(ConstrNumBack).afBareSolCoef({1, 6}, 2));
@@ -7122,10 +7109,8 @@ namespace SolarShading {
IntBeamAbsByShadFac(BackSurfNum) = BOverlap * ABlBack / Surface(BackSurfNum).Area;
} // End of check if between-glass blind is on back window
-
- } // End of check if blind is on back window
-
- if (ShadeFlagBack == ExtScreenOn) {
+ // End of check if blind is on back window
+ } else if (ShadeFlagBack == WinShadingType::ExtScreen) {
// Interior beam absorptance of GLASS LAYERS of exterior back window with EXTERIOR SCREEN
int ScNumBack = SurfWinScreenNumber(BackSurfNum); // Back surface screen number
@@ -7161,7 +7146,7 @@ namespace SolarShading {
// Interior beam absorptance of glass layers of back exterior window with SWITCHABLE GLAZING
- if (ShadeFlagBack == SwitchableGlazing && Surface(BackSurfNum).ExtBoundCond == 0) {
+ if (ShadeFlagBack == WinShadingType::SwitchableGlazing && Surface(BackSurfNum).ExtBoundCond == 0) {
Real64 SwitchFac = SurfWinSwitchingFactor(SurfNum); // Switching factor for a window
Real64 AbsBeamWinSh; // Glass layer beam solar absorptance of a shaded window
for (int Lay = 1; Lay <= NBackGlass; ++Lay) {
@@ -7564,7 +7549,7 @@ namespace SolarShading {
if ((Surface(SurfNum).ExtBoundCond == ExternalEnvironment) || (Surface(SurfNum).ExtBoundCond == OtherSideCondModeledExt)) {
- int ShadeFlag = SurfWinShadingFlag(SurfNum);
+ WinShadingType ShadeFlag = SurfWinShadingFlag(SurfNum);
int ShelfNum = Surface(SurfNum).Shelf;
int OutShelfSurf = 0;
if (ShelfNum > 0) { // Outside daylighting shelf
@@ -7627,7 +7612,7 @@ namespace SolarShading {
SurfWinDifSolar(SurfNum) = DifSolarInc * WinTransDifSolar(SurfNum);
SurfWinBmSolarEnergy(SurfNum) = SurfWinBmSolar(SurfNum) * state.dataGlobal->TimeStepZoneSec;
SurfWinDifSolarEnergy(SurfNum) = SurfWinDifSolar(SurfNum) * state.dataGlobal->TimeStepZoneSec;
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ if (ANY_BLIND(ShadeFlag)) {
if (Blind(SurfWinBlindNumber(SurfNum)).SlatOrientation == Horizontal) {
SurfWinDifSolar(SurfNum) = SkySolarInc * WinTransDifSolarSky(SurfNum) + GndSolarInc * WinTransDifSolarGnd(SurfNum);
SurfWinDifSolarEnergy(SurfNum) = SurfWinDifSolar(SurfNum) * state.dataGlobal->TimeStepZoneSec;
@@ -8672,7 +8657,7 @@ namespace SolarShading {
for (int ISurf = firstSurfWin; ISurf <= lastSurfWin; ++ISurf) {
SurfWinExtIntShadePrevTS(ISurf) = SurfWinShadingFlag(ISurf);
- SurfWinShadingFlag(ISurf) = NoShade;
+ SurfWinShadingFlag(ISurf) = WinShadingType::NoShade;
SurfWinFracTimeShadingDeviceOn(ISurf) = 0.0;
if (SurfWinWindowModelType(ISurf) == WindowEQLModel) {
int EQLNum = state.dataConstruction->Construct(Surface(ISurf).Construction).EQLConsPtr;
@@ -8694,10 +8679,14 @@ namespace SolarShading {
const int LayPtr = construction.LayerPoint(Lay);
auto &material(state.dataMaterial->Material(LayPtr));
const bool isShading = material.Group == ComplexWindowShade;
- if (isShading && Lay == 1) SurfWinShadingFlag(ISurf) = ExtShadeOn;
- if (isShading && Lay == TotLayers) SurfWinShadingFlag(ISurf) = IntShadeOn;
+ if (isShading && Lay == 1) {
+ SurfWinShadingFlag(ISurf) = WinShadingType::ExtShade;
+ }
+ if (isShading && Lay == TotLayers) {
+ SurfWinShadingFlag(ISurf) = WinShadingType::IntShade;
+ }
}
- if (SurfWinShadingFlag(ISurf) == IntShadeOn) {
+ if (SurfWinShadingFlag(ISurf) == WinShadingType::IntShade) {
auto &construction(state.dataConstruction->Construct(Surface(ISurf).Construction));
const int TotLay = construction.TotLayers;
int ShadingLayerPtr = construction.LayerPoint(TotLay);
@@ -8745,37 +8734,11 @@ namespace SolarShading {
Surface(ISurf).activeStormWinShadedConstruction = Surface(ISurf).shadedStormWinConstructionList[indexWindowShadingControl];
}
int IShadingCtrl = Surface(ISurf).activeWindowShadingControl;
-
- int ShadingType = WindowShadingControl(IShadingCtrl).ShadingType; // Type of shading (interior shade, interior blind, etc.)
- SurfWinShadingFlag(ISurf) = ShadeOff; // Initialize shading flag to off
-
int IZone = Surface(ISurf).Zone;
// Setpoint for shading
Real64 SetPoint = WindowShadingControl(IShadingCtrl).SetPoint; // Control setpoint
Real64 SetPoint2 = WindowShadingControl(IShadingCtrl).SetPoint2; // Second control setpoint
-
- // ShType = NoShade ! =-1 (see DataHeatBalance)
- // ShType = ShadeOff ! =0
- int ShType;
- // 1 = interior shade is on,
- // 2 = glass is switched to dark state,
- // 3 = exterior shade is on,
- // 4 = exterior screen is on,
- // 6 = interior blind is on,
- // 7 = exterior blind is on,
- // 8 = between-glass shade is on,
- // 9 = between-glass blind is on.
- // CHARACTER(len=32) :: ShadingType ! Type of shading (interior shade, interior blind, etc.)
- if (ShadingType == WSC_ST_InteriorShade) ShType = IntShadeOn; // =1
- if (ShadingType == WSC_ST_SwitchableGlazing) ShType = SwitchableGlazing; // =2
- if (ShadingType == WSC_ST_ExteriorShade) ShType = ExtShadeOn; // =3
- if (ShadingType == WSC_ST_ExteriorScreen) ShType = ExtScreenOn; // =4
- if (ShadingType == WSC_ST_InteriorBlind) ShType = IntBlindOn; // =6
- if (ShadingType == WSC_ST_ExteriorBlind) ShType = ExtBlindOn; // =7
- if (ShadingType == WSC_ST_BetweenGlassShade) ShType = BGShadeOn; // =8
- if (ShadingType == WSC_ST_BetweenGlassBlind) ShType = BGBlindOn; // =9
-
bool SchedAllowsControl = true; // True if control schedule is not specified or is specified and schedule value = 1
int SchedulePtr = WindowShadingControl(IShadingCtrl).Schedule;
if (SchedulePtr != 0) {
@@ -8802,195 +8765,226 @@ namespace SolarShading {
// Determine whether to deploy shading depending on type of control
- auto const SELECT_CASE_var(WindowShadingControl(IShadingCtrl).ShadingControlType);
-
- if (SELECT_CASE_var == WSCT_AlwaysOn) { // 'ALWAYSON'
- SurfWinShadingFlag(ISurf) = ShType;
-
- } else if (SELECT_CASE_var == WSCT_AlwaysOff) { // 'ALWAYSOFF'
- SurfWinShadingFlag(ISurf) = ShadeOff;
+ bool shadingOn = false;
+ bool shadingOffButGlareControlOn = false;
+ switch (WindowShadingControl(IShadingCtrl).ShadingControlType) {
+ case WindowShadingControlType::AlwaysOn: // 'ALWAYSON'
+ shadingOn = true;
+ break;
+ case WindowShadingControlType::AlwaysOff: // 'ALWAYSOFF'
+ break;
+ case WindowShadingControlType::OnIfScheduled: // 'ONIFSCHEDULEALLOWS'
+ if (SchedAllowsControl) shadingOn = true;
+ break;
+ case WindowShadingControlType::HiSolar: // 'ONIFHIGHSOLARONWINDOW'
+ // ! Direct plus diffuse solar intensity on window
+ if (state.dataEnvrn->SunIsUp) {
+ if (SolarOnWindow > SetPoint && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnIfScheduled) { // 'ONIFSCHEDULEALLOWS'
- if (SchedAllowsControl) SurfWinShadingFlag(ISurf) = ShType;
+ case WindowShadingControlType::HiHorzSolar: // 'ONIFHIGHHORIZONTALSOLAR' ! Direct plus diffuse exterior horizontal solar intensity
+ if (state.dataEnvrn->SunIsUp) {
+ if (HorizSolar > SetPoint && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_HiSolar) {
- // 'ONIFHIGHSOLARONWINDOW' ! Direct plus diffuse solar intensity on window
- if (state.dataEnvrn->SunIsUp) {
- if (SolarOnWindow > SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
+ case WindowShadingControlType::HiOutAirTemp: // 'OnIfHighOutdoorAirTemperature'
+ if (Surface(ISurf).OutDryBulbTemp > SetPoint && SchedAllowsControl) {
+ shadingOn = true;
} else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ shadingOffButGlareControlOn = true;
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_HiHorzSolar) {
- // 'ONIFHIGHHORIZONTALSOLAR' ! Direct plus diffuse exterior horizontal solar intensity
- if (state.dataEnvrn->SunIsUp) {
- if (HorizSolar > SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
+ case WindowShadingControlType::HiZoneAirTemp: // 'OnIfHighZoneAirTemperature' ! Previous time step zone air temperature
+ if (MAT(IZone) > SetPoint && SchedAllowsControl) {
+ shadingOn = true;
} else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ shadingOffButGlareControlOn = true;
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_HiOutAirTemp) { // 'OnIfHighOutdoorAirTemperature'
- if (Surface(ISurf).OutDryBulbTemp > SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
- }
+ case WindowShadingControlType::OnHiOutTemp_HiSolarWindow: // 'OnIfHighOutdoorAirTempAndHighSolarOnWindow' ! Outside air temp and solar on window
+ if (state.dataEnvrn->SunIsUp) {
+ if (Surface(ISurf).OutDryBulbTemp > SetPoint && SolarOnWindow > SetPoint2 && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_HiZoneAirTemp) {
- // 'OnIfHighZoneAirTemperature' ! Previous time step zone air temperature
- if (MAT(IZone) > SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
- }
+ case WindowShadingControlType::OnHiOutTemp_HiHorzSolar: // 'OnIfHighOutdoorAirTempAndHighHorizontalSolar' ! Outside air temp and horizontal solar
+ if (state.dataEnvrn->SunIsUp) {
+ if (Surface(ISurf).OutDryBulbTemp > SetPoint && HorizSolar > SetPoint2 && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnHiOutTemp_HiSolarWindow) {
- // 'OnIfHighOutdoorAirTempAndHighSolarOnWindow' ! Outside air temp and solar on window
- if (state.dataEnvrn->SunIsUp) {
- if (Surface(ISurf).OutDryBulbTemp > SetPoint && SolarOnWindow > SetPoint2 &&
- SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ case WindowShadingControlType::OnHiZoneTemp_HiSolarWindow: // 'ONIFHIGHZONEAIRTEMPANDHIGHSOLARONWINDOW' ! Zone air temp and solar on window
+ if (state.dataEnvrn->SunIsUp) {
+ if (MAT(IZone) > SetPoint && SolarOnWindow > SetPoint2 && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnHiOutTemp_HiHorzSolar) {
- // 'OnIfHighOutdoorAirTempAndHighHorizontalSolar' ! Outside air temp and horizontal solar
- if (state.dataEnvrn->SunIsUp) {
- if (Surface(ISurf).OutDryBulbTemp > SetPoint && HorizSolar > SetPoint2 &&
- SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ case WindowShadingControlType::OnHiZoneTemp_HiHorzSolar: // 'ONIFHIGHZONEAIRTEMPANDHIGHHORIZONTALSOLAR' ! Zone air temp and horizontal solar
+ if (state.dataEnvrn->SunIsUp) {
+ if (MAT(IZone) > SetPoint && HorizSolar > SetPoint2 && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnHiZoneTemp_HiSolarWindow) {
- // 'ONIFHIGHZONEAIRTEMPANDHIGHSOLARONWINDOW' ! Zone air temp and solar on window
- if (state.dataEnvrn->SunIsUp) {
- if (MAT(IZone) > SetPoint && SolarOnWindow > SetPoint2 && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ case WindowShadingControlType::HiZoneCooling:
+ // 'ONIFHIGHZONECOOLING' ! Previous time step zone sensible cooling rate [W]
+ // In the following, the check on BeginSimFlag is needed since SNLoadCoolRate (and SNLoadHeatRate,
+ // used in other CASEs) are not allocated at this point for the first time step of the simulation.
+ if (!state.dataGlobal->BeginSimFlag) {
+ if (SNLoadCoolRate(IZone) > SetPoint && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnHiZoneTemp_HiHorzSolar) {
- // 'ONIFHIGHZONEAIRTEMPANDHIGHHORIZONTALSOLAR' ! Zone air temp and horizontal solar
- if (state.dataEnvrn->SunIsUp) {
- if (MAT(IZone) > SetPoint && HorizSolar > SetPoint2 && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ case WindowShadingControlType::HiGlare:
+ // 'ONIFHIGHGLARE' ! Daylight glare index at first reference point in the zone.
+ // This type of shading control is done in DayltgInteriorIllum. Glare control is not affected
+ // by control schedule.
+ if (state.dataEnvrn->SunIsUp) {
+ shadingOffButGlareControlOn = true;
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_HiZoneCooling) {
- // 'ONIFHIGHZONECOOLING' ! Previous time step zone sensible cooling rate [W]
- // In the following, the check on BeginSimFlag is needed since SNLoadCoolRate (and SNLoadHeatRate,
- // used in other CASEs) are not allocated at this point for the first time step of the simulation.
- if (!state.dataGlobal->BeginSimFlag) {
- if (SNLoadCoolRate(IZone) > SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ case WindowShadingControlType::MeetDaylIlumSetp:
+ // 'MEETDAYLIGHTILLUMINANCESETPOINT') ! Daylight illuminance test is done in DayltgInteriorIllum
+ // Only switchable glazing does daylight illuminance control
+ if (state.dataEnvrn->SunIsUp && SchedAllowsControl) {
+ shadingOffButGlareControlOn = true;
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_HiGlare) {
- // 'ONIFHIGHGLARE' ! Daylight glare index at first reference point in the zone.
- // This type of shading control is done in DayltgInteriorIllum. Glare control is not affected
- // by control schedule.
- if (state.dataEnvrn->SunIsUp) SurfWinShadingFlag(ISurf) = 10 * ShType;
+ case WindowShadingControlType::OnNightLoOutTemp_OffDay: // 'OnNightIfLowOutdoorTempAndOffDay'
+ if (!state.dataEnvrn->SunIsUp && Surface(ISurf).OutDryBulbTemp < SetPoint && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_MeetDaylIlumSetp) {
- // 'MEETDAYLIGHTILLUMINANCESETPOINT') ! Daylight illuminance test is done in DayltgInteriorIllum
- // Only switchable glazing does daylight illuminance control
- if (state.dataEnvrn->SunIsUp && SchedAllowsControl) SurfWinShadingFlag(ISurf) = GlassConditionallyLightened;
+ case WindowShadingControlType::OnNightLoInTemp_OffDay: // 'OnNightIfLowInsideTempAndOffDay')
+ if (!state.dataEnvrn->SunIsUp && MAT(IZone) < SetPoint && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnNightLoOutTemp_OffDay) { // 'OnNightIfLowOutdoorTempAndOffDay'
- if (!state.dataEnvrn->SunIsUp && Surface(ISurf).OutDryBulbTemp < SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
- }
+ case WindowShadingControlType::OnNightIfHeating_OffDay: // 'OnNightIfHeatingAndOffDay'
+ if (!state.dataGlobal->BeginSimFlag) {
+ if (!state.dataEnvrn->SunIsUp && SNLoadHeatRate(IZone) > SetPoint && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnNightLoInTemp_OffDay) { // 'OnNightIfLowInsideTempAndOffDay')
- if (!state.dataEnvrn->SunIsUp && MAT(IZone) < SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
- }
+ case WindowShadingControlType::OnNightLoOutTemp_OnDayCooling: // 'OnNightIfLowOutdoorTempAndOnDayIfCooling'
+ if (!state.dataGlobal->BeginSimFlag) {
+ if (!state.dataEnvrn->SunIsUp) { // Night
+ if (Surface(ISurf).OutDryBulbTemp < SetPoint && SchedAllowsControl)
+ shadingOn = true;
+ } else { // Day
+ if (SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ }
+ }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnNightIfHeating_OffDay) { // 'OnNightIfHeatingAndOffDay'
- if (!state.dataGlobal->BeginSimFlag) {
- if (!state.dataEnvrn->SunIsUp && SNLoadHeatRate(IZone) > SetPoint && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ case WindowShadingControlType::OnNightIfHeating_OnDayCooling: // 'OnNightIfHeatingAndOnDayIfCooling'
+ if (!state.dataGlobal->BeginSimFlag) {
+ if (!state.dataEnvrn->SunIsUp) { // Night
+ if (SNLoadHeatRate(IZone) > SetPoint && SchedAllowsControl)
+ shadingOn = true;
+ } else { // Day
+ if (SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
+ shadingOn = true;
+ } else if (GlareControlIsActive) {
+ shadingOffButGlareControlOn = true;
+ }
+ }
}
- }
+ break;
- } else if (SELECT_CASE_var == WSCT_OnNightLoOutTemp_OnDayCooling) {
- // 'OnNightIfLowOutdoorTempAndOnDayIfCooling'
- if (!state.dataGlobal->BeginSimFlag) {
- if (!state.dataEnvrn->SunIsUp) { // Night
- if (Surface(ISurf).OutDryBulbTemp < SetPoint && SchedAllowsControl)
- SurfWinShadingFlag(ISurf) = ShType;
- } else { // Day
- if (SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
+ case WindowShadingControlType::OffNight_OnDay_HiSolarWindow: // 'OffNightAndOnDayIfCoolingAndHighSolarOnWindow'
+ if (!state.dataGlobal->BeginSimFlag) {
+ if (state.dataEnvrn->SunIsUp && SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
+ if (SolarOnWindow > SetPoint) shadingOn = true;
} else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ shadingOffButGlareControlOn = true;
}
}
- }
+ break;
- } else if (SELECT_CASE_var ==
- WSCT_OnNightIfHeating_OnDayCooling) { // 'OnNightIfHeatingAndOnDayIfCooling'
- if (!state.dataGlobal->BeginSimFlag) {
- if (!state.dataEnvrn->SunIsUp) { // Night
- if (SNLoadHeatRate(IZone) > SetPoint && SchedAllowsControl)
- SurfWinShadingFlag(ISurf) = ShType;
- } else { // Day
- if (SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
+ case WindowShadingControlType::OnNight_OnDay_HiSolarWindow: // 'OnNightAndOnDayIfCoolingAndHighSolarOnWindow'
+ if (!state.dataGlobal->BeginSimFlag) {
+ if (state.dataEnvrn->SunIsUp && SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
+ if (SolarOnWindow > SetPoint) shadingOn = true;
+ } else if (!state.dataEnvrn->SunIsUp && SchedAllowsControl) {
+ shadingOn = true;
} else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
+ shadingOffButGlareControlOn = true;
}
}
- }
+ break;
+ default:
+ ShowWarningError(state, "Invalid Selection of Window Shading Control Type for Surface " +
+ Surface(ISurf).Name);
+ }
- } else if (SELECT_CASE_var ==
- WSCT_OffNight_OnDay_HiSolarWindow) { // 'OffNightAndOnDayIfCoolingAndHighSolarOnWindow'
- if (!state.dataGlobal->BeginSimFlag) {
- if (state.dataEnvrn->SunIsUp && SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
- if (SolarOnWindow > SetPoint) SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
- }
- }
+ WinShadingType ShType = WindowShadingControl(IShadingCtrl).ShadingType;
- } else if (SELECT_CASE_var ==
- WSCT_OnNight_OnDay_HiSolarWindow) { // 'OnNightAndOnDayIfCoolingAndHighSolarOnWindow'
- if (!state.dataGlobal->BeginSimFlag) {
- if (state.dataEnvrn->SunIsUp && SNLoadCoolRate(IZone) > 0.0 && SchedAllowsControl) {
- if (SolarOnWindow > SetPoint) SurfWinShadingFlag(ISurf) = ShType;
- } else if (!state.dataEnvrn->SunIsUp && SchedAllowsControl) {
- SurfWinShadingFlag(ISurf) = ShType;
- } else if (GlareControlIsActive) {
- SurfWinShadingFlag(ISurf) = 10 * ShType;
- }
+ SurfWinShadingFlag(ISurf) = WinShadingType::ShadeOff; // Initialize shading flag to off
+
+ if (IS_SHADED(ShType)) {
+ if (shadingOn) {
+ SurfWinShadingFlag(ISurf) = ShType;
+ } else if (shadingOffButGlareControlOn) {
+ if (ShType == WinShadingType::SwitchableGlazing) SurfWinShadingFlag(ISurf) = WinShadingType::GlassConditionallyLightened;
+ else if (ShType == WinShadingType::IntShade) SurfWinShadingFlag(ISurf) = WinShadingType::IntShadeConditionallyOff;
+ else if (ShType == WinShadingType::ExtShade) SurfWinShadingFlag(ISurf) = WinShadingType::ExtShadeConditionallyOff;
+ else if (ShType == WinShadingType::IntBlind) SurfWinShadingFlag(ISurf) = WinShadingType::IntBlindConditionallyOff;
+ else if (ShType == WinShadingType::ExtBlind) SurfWinShadingFlag(ISurf) = WinShadingType::ExtBlindConditionallyOff;
+ else if (ShType == WinShadingType::BGShade) SurfWinShadingFlag(ISurf) = WinShadingType::BGShadeConditionallyOff;
+ else if (ShType == WinShadingType::BGBlind) SurfWinShadingFlag(ISurf) = WinShadingType::BGBlindConditionallyOff;
}
}
// Set switching factor to fully switched if ShadingFlag = 2
- if (SurfWinShadingFlag(ISurf) == SwitchableGlazing) {
+ if (SurfWinShadingFlag(ISurf) == WinShadingType::SwitchableGlazing) {
SurfWinSwitchingFactor(ISurf) = 1.0;
// Added TH 1/20/2010
@@ -9005,9 +8999,10 @@ namespace SolarShading {
SurfWinSlatAngThisTS(ISurf) = 0.0;
SurfWinSlatAngThisTSDeg(ISurf) = 0.0;
SurfWinSlatsBlockBeam(ISurf) = false;
- if (SurfWinShadingFlag(ISurf) == IntBlindOn || SurfWinShadingFlag(ISurf) == 10 * IntBlindOn ||
- SurfWinShadingFlag(ISurf) == ExtBlindOn || SurfWinShadingFlag(ISurf) == 10 * ExtBlindOn ||
- SurfWinShadingFlag(ISurf) == BGBlindOn || SurfWinShadingFlag(ISurf) == 10 * BGBlindOn) {
+ if (ANY_BLIND(SurfWinShadingFlag(ISurf)) ||
+ SurfWinShadingFlag(ISurf) == WinShadingType::IntBlindConditionallyOff ||
+ SurfWinShadingFlag(ISurf) == WinShadingType::ExtBlindConditionallyOff ||
+ SurfWinShadingFlag(ISurf) == WinShadingType::BGBlindConditionallyOff) {
// Blind in place or may be in place due to glare control
int BlNum = SurfWinBlindNumber(ISurf);
if (BlNum > 0) {
@@ -9138,19 +9133,68 @@ namespace SolarShading {
} // End of check if interior or exterior blind in place
// CALL CalcScreenTransmittance to intialized all screens prior to HB calc's
- if (SurfWinShadingFlag(ISurf) == ExtScreenOn && state.dataEnvrn->SunIsUp) {
+ if (SurfWinShadingFlag(ISurf) == WinShadingType::ExtScreen && state.dataEnvrn->SunIsUp) {
CalcScreenTransmittance(state, ISurf);
}
// EMS Actuator Point: override setting if ems flag on
if (SurfWinShadingFlagEMSOn(ISurf)) {
- SurfWinShadingFlag(ISurf) = SurfWinShadingFlagEMSValue(ISurf);
+ WinShadingType SurfWinShadingFlagEMS = findValueInEnumeration(SurfWinShadingFlagEMSValue(ISurf));
+ if (SurfWinShadingFlagEMS != WinShadingType::INVALID) {
+ SurfWinShadingFlag(ISurf) = SurfWinShadingFlagEMS;
+ } else {
+ ShowWarningError(state, "Invalid EMS value of Window Shading Control Type for Surface " +
+ Surface(ISurf).Name);
+ }
}
-
} // End of surface loop
}
}
+ DataSurfaces::WinShadingType findValueInEnumeration(Real64 controlValue) {
+ // This is a workaround to translate EMS Shading control numerical values
+ // EMS control of window shading devices involves setting the control values for shading control actuators with
+ // one of these values. The variable names can be used or replaced, it is the whole number values that trigger
+ // changes in the modeling.
+ // Shades and Blinds are either fully on or fully off, partial positions require multiple windows.
+ // the window shading control flag values follow
+ // -1: if window has no shading device
+ // 0: if shading device is off
+ // 1: if interior shade is on
+ // 2: if glazing is switched to darker state
+ // 3: if exterior shade is on
+ // 4: if exterior screen is on
+ // 6: if interior blind is on
+ // 7: if exterior blind is on
+ // 8: if between-glass shade is on
+ // 9: if between-glass blind is on
+ // 10: window has interior shade that is off but may be triggered on later to control daylight glare
+ // 20: window has switchable glazing that is unswitched but may be switched later to control daylight glare or daylight illuminance
+ // 30: window has exterior shade that is off but may be triggered on later to control daylight glare or daylight illuminance
+ // 60: window has interior blind that is off but may be triggered on later to control daylight glare or daylight illuminance
+ // 70: window has exterior blind that is off but may be triggered on later to control daylight glare or daylight illuminance
+ // 80: window has between-glass shade that is off but may be triggered on later to control daylight glare or daylight illuminance
+ // 90: window has between-glass blind that is off but may be triggered on later to control daylight glare or daylight illuminance
+ if (controlValue == -1.0) return WinShadingType::NoShade;
+ if (controlValue == 0.0) return WinShadingType::ShadeOff;
+ if (controlValue == 1.0) return WinShadingType::IntShade;
+ if (controlValue == 2.0) return WinShadingType::SwitchableGlazing;
+ if (controlValue == 3.0) return WinShadingType::ExtShade;
+ if (controlValue == 4.0) return WinShadingType::ExtScreen;
+ if (controlValue == 6.0) return WinShadingType::IntBlind;
+ if (controlValue == 7.0) return WinShadingType::ExtBlind;
+ if (controlValue == 8.0) return WinShadingType::BGShade;
+ if (controlValue == 9.0) return WinShadingType::BGBlind;
+ if (controlValue == 10.0) return WinShadingType::IntShadeConditionallyOff;
+ if (controlValue == 20.0) return WinShadingType::GlassConditionallyLightened;
+ if (controlValue == 30.0) return WinShadingType::ExtShadeConditionallyOff;
+ if (controlValue == 60.0) return WinShadingType::IntBlindConditionallyOff;
+ if (controlValue == 70.0) return WinShadingType::ExtBlindConditionallyOff;
+ if (controlValue == 80.0) return WinShadingType::BGShadeConditionallyOff;
+ if (controlValue == 90.0) return WinShadingType::BGBlindConditionallyOff;
+ return WinShadingType::INVALID;
+ }
+
int selectActiveWindowShadingControlIndex(EnergyPlusData &state, int curSurface)
{
// For a given surface, determine based on the schedules which index to the window shading control list vector should be active
@@ -9868,7 +9912,7 @@ namespace SolarShading {
// outside reveal surface (m2)
Real64 BmSolRefldInsReveal; // Multiplied by beam solar gives beam solar reflected by horiz or vertical
// inside reveal surface (m2)
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
int FrameDivNum; // Frame/Divider number
Real64 FrameWidth; // Frame width (m)
Real64 P1; // Frame outside/inside projection plus half of glazing thickness (m)
@@ -9922,7 +9966,7 @@ namespace SolarShading {
if (SurfWinInsideSillDepth(SurfNum) < SurfWinInsideReveal(SurfNum)) continue;
ShadeFlag = SurfWinShadingFlag(SurfNum);
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn) continue;
+ if (BITF_TEST_ANY(BITF(ShadeFlag), BITF(WinShadingType::ExtShade) | BITF(WinShadingType::ExtBlind))) continue;
if (CosIncAng(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, SurfNum) <= 0.0) continue;
@@ -10177,12 +10221,12 @@ namespace SolarShading {
// Quantities related to inside reveal; inside reveal reflection/absorption is assumed
// to occur only if an interior shade or blind is not in place.
- if (ShadeFlag <= 0 || ShadeFlag == SwitchableGlazing) {
+ if (NOT_SHADED(ShadeFlag) || ShadeFlag == WinShadingType::SwitchableGlazing) {
if (A2ill > 1.0e-6) {
DiffReflGlass = state.dataConstruction->Construct(ConstrNum).ReflectSolDiffBack;
- if (ShadeFlag == SwitchableGlazing) {
+ if (ShadeFlag == WinShadingType::SwitchableGlazing) {
SolTransGlassSh = POLYF(CosIncAng(state.dataGlobal->TimeStep, state.dataGlobal->HourOfDay, SurfNum),
state.dataConstruction->Construct(ConstrNumSh).TransSolBeamCoef);
SolTransGlass = InterpSw(SurfWinSwitchingFactor(SurfNum), SolTransGlass,
@@ -10517,18 +10561,16 @@ namespace SolarShading {
Real64 AbsorpEff = 0.0; // Effective absorptance of isolated shade layer (fraction of
// of incident radiation remaining after reflected portion is
// removed that is absorbed
- if (WindowShadingControl(WinShadeCtrlNum).ShadingType == WSC_ST_InteriorShade ||
- WindowShadingControl(WinShadeCtrlNum).ShadingType == WSC_ST_ExteriorShade ||
- WindowShadingControl(WinShadeCtrlNum).ShadingType == WSC_ST_BetweenGlassShade) {
+ if (ANY_SHADE(WindowShadingControl(WinShadeCtrlNum).ShadingType)) {
int ConstrNumSh = Surface(SurfNum).activeShadedConstruction; // Window construction number with shade
int TotLay = state.dataConstruction->Construct(ConstrNumSh).TotLayers; // Total layers in a construction
- if (WindowShadingControl(WinShadeCtrlNum).ShadingType == WSC_ST_InteriorShade) {
+ if (WindowShadingControl(WinShadeCtrlNum).ShadingType == WinShadingType::IntShade) {
MatNumSh = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(TotLay); // Interior shade
- } else if (WindowShadingControl(WinShadeCtrlNum).ShadingType == WSC_ST_ExteriorShade) {
+ } else if (WindowShadingControl(WinShadeCtrlNum).ShadingType == WinShadingType::ExtShade) {
MatNumSh = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(1); // Exterior shade
- } else if (WindowShadingControl(WinShadeCtrlNum).ShadingType == WSC_ST_BetweenGlassShade) {
+ } else if (WindowShadingControl(WinShadeCtrlNum).ShadingType == WinShadingType::BGShade) {
if (state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers == 2) {
// Double pane with between-glass shade
MatNumSh = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(3);
@@ -10765,10 +10807,10 @@ namespace SolarShading {
ConstrNumSh = Surface(HeatTransSurfNum).activeStormWinShadedConstruction;
}
int TotGlassLayers = state.dataConstruction->Construct(ConstrNum).TotGlassLayers;
- int ShadeFlag = SurfWinShadingFlag(HeatTransSurfNum);
+ WinShadingType ShadeFlag = SurfWinShadingFlag(HeatTransSurfNum);
if (SurfWinWindowModelType(HeatTransSurfNum) != WindowEQLModel) {
- if (ShadeFlag <= 0) { // No window shading
+ if (NOT_SHADED(ShadeFlag)) { // No window shading
// Init accumulator for transmittance calc below
DifSolarAbsW = 0.0;
@@ -10859,7 +10901,52 @@ namespace SolarShading {
// Accumulate transmitted diffuse solar for reporting
SurfWinInitialDifSolInTrans(HeatTransSurfNum) += DifSolarTransW * per_HTSurfaceArea;
- } else if (ConstrNumSh != 0 && (ShadeFlag == IntShadeOn || ShadeFlag >= 3)) {
+ } else if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
+ // Init accumulator for transmittance calc below
+ DifSolarAbsW = 0.0;
+
+ auto const &construct(state.dataConstruction->Construct(ConstrNum));
+ auto const &construct_AbsDiffBack(construct.AbsDiffBack);
+ auto const &construct_sh(state.dataConstruction->Construct(ConstrNumSh));
+ auto const &construct_sh_AbsDiffBack(construct_sh.AbsDiffBack);
+ for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
+ // Calc diffuse solar absorbed in each window glass layer
+ WinDifSolLayAbsW = WinDifSolarTrans_Factor *
+ InterpSw(win_SwitchingFactor, construct_AbsDiffBack(IGlass), construct_sh_AbsDiffBack(IGlass));
+
+ // Accumulate distributed diffuse solar absorbed [W] by overall window for transmittance calc below
+ DifSolarAbsW += WinDifSolLayAbsW;
+
+ // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
+// WinDifSolarDistAbsorbedTotl += WinDifSolLayAbsW; // debug
+// ZoneDifSolarDistAbsorbedTotl += WinDifSolLayAbsW; // debug
+
+ // Accumulate diffuse solar absorbed from the inside by each window glass layer [W/m2] for heat balance calcs
+ SurfWinInitialDifSolwinAbs(IGlass, HeatTransSurfNum) += WinDifSolLayAbsW * per_HTSurfaceArea;
+ }
+
+ // Calc diffuse solar reflected back to zone
+ DifSolarReflW = WinDifSolarTrans_Factor *
+ InterpSw(win_SwitchingFactor, construct.ReflectSolDiffBack, construct_sh.ReflectSolDiffBack);
+
+ // Accumulate total reflected distributed diffuse solar for each zone for subsequent interreflection calcs
+ InitialZoneDifSolReflW(enclosureNum) += DifSolarReflW; // [W]
+
+ // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
+// WinDifSolarDistReflectedTotl += DifSolarReflW; // debug
+// ZoneDifSolarDistReflectedTotl += DifSolarReflW; // debug
+
+ // Accumulate transmitted Window and Zone total distributed diffuse solar to check for conservation of energy
+ // This is not very effective since it assigns whatever distributed diffuse solar has not been
+ // absorbed or reflected to transmitted.
+ DifSolarTransW = WinDifSolarTrans_Factor - DifSolarAbsW - DifSolarReflW;
+// WinDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
+// ZoneDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
+
+ // Accumulate transmitted diffuse solar for reporting
+ SurfWinInitialDifSolInTrans(HeatTransSurfNum) += DifSolarTransW * per_HTSurfaceArea;
+
+ } else if (ConstrNumSh != 0) {
// Interior, exterior or between-glass shade, screen or blind in place
// Init accumulator for transmittance calc below
@@ -10871,12 +10958,10 @@ namespace SolarShading {
auto const &construct_sh_AbsDiffBack(construct_sh.AbsDiffBack);
auto const &construct_sh_BlAbsDiffBack(construct_sh.BlAbsDiffBack);
for (int IGlass = 1; IGlass <= construct_sh.TotGlassLayers; ++IGlass) {
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
// Calc diffuse solar absorbed in each window glass layer and shade
WinDifSolLayAbsW = WinDifSolarTrans_Factor * construct_sh_AbsDiffBack(IGlass);
- }
-
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
BlAbsDiffBk = InterpSlatAng(HTsurf_slat_ang, HTsurf_movable_slats, construct_sh_BlAbsDiffBack(_, IGlass));
// Calc diffuse solar absorbed in each window glass layer and shade
WinDifSolLayAbsW = WinDifSolarTrans_Factor * BlAbsDiffBk;
@@ -10896,7 +10981,7 @@ namespace SolarShading {
// Next calc diffuse solar reflected back to zone from window with shade or blind on
// Diffuse back solar reflectance, bare glass or shade on
InsideDifReflectance = state.dataConstruction->Construct(ConstrNum).ReflectSolDiffBack;
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn) {
+ if (BITF_TEST_ANY(BITF(ShadeFlag), BITF(WinShadingType::IntBlind) | BITF(WinShadingType::ExtBlind))) {
// Diffuse back solar reflectance, blind present, vs. slat angle
InsideDifReflectance =
InterpSlatAng(HTsurf_slat_ang, HTsurf_movable_slats, state.dataConstruction->Construct(ConstrNum).BlReflectSolDiffBack);
@@ -10912,18 +10997,18 @@ namespace SolarShading {
// Now calc diffuse solar absorbed by shade/blind itself
BlNum = SurfWinBlindNumber(HeatTransSurfNum);
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
// Calc diffuse solar absorbed by shade or screen [W]
ShBlDifSolarAbsW = WinDifSolarTrans_Factor * construct_sh.AbsDiffBackShade;
- }
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
// Calc diffuse solar absorbed by blind [W]
AbsDiffBkBl = InterpSlatAng(HTsurf_slat_ang, HTsurf_movable_slats, construct_sh.AbsDiffBackBlind);
ShBlDifSolarAbsW = WinDifSolarTrans_Factor * AbsDiffBkBl;
}
// Correct for divider shadowing
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn)
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
ShBlDifSolarAbsW *= SurfWinGlazedFrac(HeatTransSurfNum);
+ }
// Accumulate diffuse solar absorbed by shade or screen [W/m2] for heat balance calcs
SurfWinInitialDifSolAbsByShade(HeatTransSurfNum) += ShBlDifSolarAbsW * per_HTSurfaceArea;
@@ -10944,52 +11029,6 @@ namespace SolarShading {
// Accumulate transmitted diffuse solar for reporting
SurfWinInitialDifSolInTrans(HeatTransSurfNum) += DifSolarTransW * per_HTSurfaceArea;
-
- } else if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
- // Init accumulator for transmittance calc below
- DifSolarAbsW = 0.0;
-
- auto const &construct(state.dataConstruction->Construct(ConstrNum));
- auto const &construct_AbsDiffBack(construct.AbsDiffBack);
- auto const &construct_sh(state.dataConstruction->Construct(ConstrNumSh));
- auto const &construct_sh_AbsDiffBack(construct_sh.AbsDiffBack);
- for (int IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
- // Calc diffuse solar absorbed in each window glass layer
- WinDifSolLayAbsW = WinDifSolarTrans_Factor *
- InterpSw(win_SwitchingFactor, construct_AbsDiffBack(IGlass), construct_sh_AbsDiffBack(IGlass));
-
- // Accumulate distributed diffuse solar absorbed [W] by overall window for transmittance calc below
- DifSolarAbsW += WinDifSolLayAbsW;
-
- // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
-// WinDifSolarDistAbsorbedTotl += WinDifSolLayAbsW; // debug
-// ZoneDifSolarDistAbsorbedTotl += WinDifSolLayAbsW; // debug
-
- // Accumulate diffuse solar absorbed from the inside by each window glass layer [W/m2] for heat balance calcs
- SurfWinInitialDifSolwinAbs(IGlass, HeatTransSurfNum) += WinDifSolLayAbsW * per_HTSurfaceArea;
- }
-
- // Calc diffuse solar reflected back to zone
- DifSolarReflW = WinDifSolarTrans_Factor *
- InterpSw(win_SwitchingFactor, construct.ReflectSolDiffBack, construct_sh.ReflectSolDiffBack);
-
- // Accumulate total reflected distributed diffuse solar for each zone for subsequent interreflection calcs
- InitialZoneDifSolReflW(enclosureNum) += DifSolarReflW; // [W]
-
- // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
-// WinDifSolarDistReflectedTotl += DifSolarReflW; // debug
-// ZoneDifSolarDistReflectedTotl += DifSolarReflW; // debug
-
- // Accumulate transmitted Window and Zone total distributed diffuse solar to check for conservation of energy
- // This is not very effective since it assigns whatever distributed diffuse solar has not been
- // absorbed or reflected to transmitted.
- DifSolarTransW = WinDifSolarTrans_Factor - DifSolarAbsW - DifSolarReflW;
-// WinDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
-// ZoneDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
-
- // Accumulate transmitted diffuse solar for reporting
- SurfWinInitialDifSolInTrans(HeatTransSurfNum) += DifSolarTransW * per_HTSurfaceArea;
-
} // End of shading flag check
} else {
@@ -11098,7 +11137,7 @@ namespace SolarShading {
// IF(ShadeFlag == IntShadeOn) THEN
// MatNumSh = Construct(ConstrNumSh)%LayerPoint(Construct(ConstrNumSh)%TotLayers)
// DividerSolAbs = DividerSolAbs * dataMaterial.Material(MatNumSh)%Trans
- // ELSE IF(ShadeFlag == IntBlindOn) THEN
+ // ELSE IF(ShadeFlag == WinShadingType::IntBlind) THEN
// DividerSolAbs = DividerSolAbs * InterpSlatAng(SurfaceWindow(HeatTransSurfNum)%SlatAngThisTS, &
// SurfaceWindow(HeatTransSurfNum)%MovableSlats,Blind(BlNum)%SolBackDiffDiffTrans)
// END IF
@@ -11177,7 +11216,7 @@ namespace SolarShading {
int ConstrNumSh; // Shaded construction number
int IGlass; // Glass layer counter
int TotGlassLayers; // Number of glass layers in a window construction
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
Real64 AbsInt; // Tmp var for Inside surface short-wave absorptance
Real64 MovInsulSchedVal; // Value of the movable insulation schedule for current time
Real64 HMovInsul; // Conductance of movable insulation
@@ -11309,7 +11348,7 @@ namespace SolarShading {
TotGlassLayers = state.dataConstruction->Construct(ConstrNum).TotGlassLayers;
ShadeFlag = SurfWinShadingFlag(HeatTransSurfNum);
- if (ShadeFlag <= 0) { // No window shading
+ if (NOT_SHADED(ShadeFlag)) { // No window shading
// Init accumulator for transmittance calc below
DifSolarAbsW = 0.0;
@@ -11379,7 +11418,49 @@ namespace SolarShading {
InitialZoneDifSolReflW(Surface(AdjSurfNum).SolarEnclIndex) += DifSolarTransW; // [W]
}
- } else if (ShadeFlag == IntShadeOn || ShadeFlag >= 3) {
+ } else if (ShadeFlag == WinShadingType::SwitchableGlazing) { // Switchable glazing
+ // Init accumulator for transmittance calc below
+ DifSolarAbsW = 0.0;
+
+ for (IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
+ // Calc diffuse solar absorbed in each window glass layer
+ WinDifSolLayAbsW = SolarTrans_ViewFactor * InterpSw(SurfWinSwitchingFactor(HeatTransSurfNum),
+ state.dataConstruction->Construct(ConstrNum).AbsDiffBack(IGlass),
+ state.dataConstruction->Construct(ConstrNumSh).AbsDiffBack(IGlass));
+
+ // Accumulate distributed diffuse solar absorbed [W] by overall window for transmittance calc below
+ DifSolarAbsW += WinDifSolLayAbsW;
+
+ // Accumulate diffuse solar absorbed from the inside by each window glass layer [W/m2] for heat balance calcs
+ SurfWinInitialDifSolwinAbs(IGlass, HeatTransSurfNum) += (WinDifSolLayAbsW / Surface(HeatTransSurfNum).Area);
+ }
+ // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
+ // WinDifSolarDistAbsorbedTotl += DifSolarAbsW; // debug
+ // ZoneDifSolarDistAbsorbedTotl += DifSolarAbsW; // debug
+
+ // Calc diffuse solar reflected back to zone
+ DifSolarReflW = SolarTrans_ViewFactor * InterpSw(SurfWinSwitchingFactor(HeatTransSurfNum),
+ state.dataConstruction->Construct(ConstrNum).ReflectSolDiffBack,
+ state.dataConstruction->Construct(ConstrNumSh).ReflectSolDiffBack);
+
+ // Accumulate total reflected distributed diffuse solar for each zone for subsequent interreflection calcs
+ InitialZoneDifSolReflW_zone += DifSolarReflW; // [W]
+
+ // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
+ // WinDifSolarDistReflectedTotl += DifSolarReflW; // debug
+ // ZoneDifSolarDistReflectedTotl += DifSolarReflW; // debug
+
+ // Accumulate transmitted Window and Zone total distributed diffuse solar to check for conservation of energy
+ // This is not very effective since it assigns whatever distributed diffuse solar has not been
+ // absorbed or reflected to transmitted.
+ DifSolarTransW = SolarTrans_ViewFactor - DifSolarAbsW - DifSolarReflW;
+ // WinDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
+ // ZoneDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
+
+ // Accumulate transmitted diffuse solar for reporting
+ SurfWinInitialDifSolInTrans(HeatTransSurfNum) += (DifSolarTransW / Surface(HeatTransSurfNum).Area);
+
+ } else {
// Interior, exterior or between-glass shade, screen or blind in place
// Init accumulator for transmittance calc below
@@ -11388,12 +11469,10 @@ namespace SolarShading {
// First calc diffuse solar absorbed by each glass layer in this window with shade/blind in place
for (IGlass = 1; IGlass <= state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers; ++IGlass) {
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
// Calc diffuse solar absorbed in each window glass layer and shade
WinDifSolLayAbsW = SolarTrans_ViewFactor * state.dataConstruction->Construct(ConstrNumSh).AbsDiffBack(IGlass);
- }
-
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
BlAbsDiffBk = InterpSlatAng(SurfWinSlatAngThisTS(HeatTransSurfNum),
SurfWinMovableSlats(HeatTransSurfNum),
state.dataConstruction->Construct(ConstrNumSh).BlAbsDiffBack(_, IGlass));
@@ -11414,7 +11493,7 @@ namespace SolarShading {
// Next calc diffuse solar reflected back to zone from window with shade or blind on
// Diffuse back solar reflectance, bare glass or shade on
InsideDifReflectance = state.dataConstruction->Construct(ConstrNum).ReflectSolDiffBack;
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn) {
+ if (BITF_TEST_ANY(BITF(ShadeFlag), BITF(WinShadingType::IntBlind) | BITF(WinShadingType::ExtBlind))) {
// Diffuse back solar reflectance, blind present, vs. slat angle
InsideDifReflectance = InterpSlatAng(SurfWinSlatAngThisTS(HeatTransSurfNum),
SurfWinMovableSlats(HeatTransSurfNum),
@@ -11431,11 +11510,10 @@ namespace SolarShading {
// Now calc diffuse solar absorbed by shade/blind itself
BlNum = SurfWinBlindNumber(HeatTransSurfNum);
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
// Calc diffuse solar absorbed by shade or screen [W]
ShBlDifSolarAbsW = SolarTrans_ViewFactor * state.dataConstruction->Construct(ConstrNumSh).AbsDiffBackShade;
- }
- if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
// Calc diffuse solar absorbed by blind [W]
AbsDiffBkBl = InterpSlatAng(SurfWinSlatAngThisTS(HeatTransSurfNum),
SurfWinMovableSlats(HeatTransSurfNum),
@@ -11443,8 +11521,9 @@ namespace SolarShading {
ShBlDifSolarAbsW = SolarTrans_ViewFactor * AbsDiffBkBl;
}
// Correct for divider shadowing
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn)
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
ShBlDifSolarAbsW *= SurfWinGlazedFrac(HeatTransSurfNum);
+ }
// Accumulate diffuse solar absorbed by shade or screen [W/m2] for heat balance calcs
SurfWinInitialDifSolAbsByShade(HeatTransSurfNum) += (ShBlDifSolarAbsW / Surface(HeatTransSurfNum).Area);
@@ -11466,48 +11545,6 @@ namespace SolarShading {
// Accumulate transmitted diffuse solar for reporting
SurfWinInitialDifSolInTrans(HeatTransSurfNum) += (DifSolarTransW / Surface(HeatTransSurfNum).Area);
- } else if (ShadeFlag == SwitchableGlazing) { // Switchable glazing
- // Init accumulator for transmittance calc below
- DifSolarAbsW = 0.0;
-
- for (IGlass = 1; IGlass <= TotGlassLayers; ++IGlass) {
- // Calc diffuse solar absorbed in each window glass layer
- WinDifSolLayAbsW = SolarTrans_ViewFactor * InterpSw(SurfWinSwitchingFactor(HeatTransSurfNum),
- state.dataConstruction->Construct(ConstrNum).AbsDiffBack(IGlass),
- state.dataConstruction->Construct(ConstrNumSh).AbsDiffBack(IGlass));
-
- // Accumulate distributed diffuse solar absorbed [W] by overall window for transmittance calc below
- DifSolarAbsW += WinDifSolLayAbsW;
-
- // Accumulate diffuse solar absorbed from the inside by each window glass layer [W/m2] for heat balance calcs
- SurfWinInitialDifSolwinAbs(IGlass, HeatTransSurfNum) += (WinDifSolLayAbsW / Surface(HeatTransSurfNum).Area);
- }
- // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
- // WinDifSolarDistAbsorbedTotl += DifSolarAbsW; // debug
- // ZoneDifSolarDistAbsorbedTotl += DifSolarAbsW; // debug
-
- // Calc diffuse solar reflected back to zone
- DifSolarReflW = SolarTrans_ViewFactor * InterpSw(SurfWinSwitchingFactor(HeatTransSurfNum),
- state.dataConstruction->Construct(ConstrNum).ReflectSolDiffBack,
- state.dataConstruction->Construct(ConstrNumSh).ReflectSolDiffBack);
-
- // Accumulate total reflected distributed diffuse solar for each zone for subsequent interreflection calcs
- InitialZoneDifSolReflW_zone += DifSolarReflW; // [W]
-
- // Accumulate Window and Zone total distributed diffuse solar to check for conservation of energy
- // WinDifSolarDistReflectedTotl += DifSolarReflW; // debug
- // ZoneDifSolarDistReflectedTotl += DifSolarReflW; // debug
-
- // Accumulate transmitted Window and Zone total distributed diffuse solar to check for conservation of energy
- // This is not very effective since it assigns whatever distributed diffuse solar has not been
- // absorbed or reflected to transmitted.
- DifSolarTransW = SolarTrans_ViewFactor - DifSolarAbsW - DifSolarReflW;
- // WinDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
- // ZoneDifSolarDistTransmittedTotl += DifSolarTransW; // debug [W]
-
- // Accumulate transmitted diffuse solar for reporting
- SurfWinInitialDifSolInTrans(HeatTransSurfNum) += (DifSolarTransW / Surface(HeatTransSurfNum).Area);
-
} // End of shading flag check
// HERE 8/14/07 Ignore absorptance and reflectance of Frames and Dividers for now.
@@ -11532,7 +11569,7 @@ namespace SolarShading {
// IF(ShadeFlag == IntShadeOn) THEN
// MatNumSh = Construct(ConstrNumSh)%LayerPoint(Construct(ConstrNumSh)%TotLayers)
// DividerSolAbs = DividerSolAbs * dataMaterial.Material(MatNumSh)%Trans
- // ELSE IF(ShadeFlag == IntBlindOn) THEN
+ // ELSE IF(ShadeFlag == WinShadingType::IntBlind) THEN
// DividerSolAbs = DividerSolAbs * InterpSlatAng(SurfaceWindow(HeatTransSurfNum)%SlatAngThisTS, &
// SurfaceWindow(HeatTransSurfNum)%MovableSlats,Blind(BlNum)%SolBackDiffDiffTrans)
// END IF
diff --git a/src/EnergyPlus/SolarShading.hh b/src/EnergyPlus/SolarShading.hh
index 2949c3cb6eb..12ea05acb1c 100644
--- a/src/EnergyPlus/SolarShading.hh
+++ b/src/EnergyPlus/SolarShading.hh
@@ -273,6 +273,8 @@ namespace SolarShading {
void WindowShadingManager(EnergyPlusData &state);
+ DataSurfaces::WinShadingType findValueInEnumeration(Real64 controlValue);
+
int selectActiveWindowShadingControlIndex(EnergyPlusData &state, int curSurface);
void WindowGapAirflowControl(EnergyPlusData &state);
diff --git a/src/EnergyPlus/SteamBaseboardRadiator.cc b/src/EnergyPlus/SteamBaseboardRadiator.cc
index 01472dabf71..4612bef838c 100644
--- a/src/EnergyPlus/SteamBaseboardRadiator.cc
+++ b/src/EnergyPlus/SteamBaseboardRadiator.cc
@@ -1444,7 +1444,7 @@ namespace SteamBaseboardRadiator {
Area = Surface(SurfNum).Area;
if (Surface(SurfNum).Class == SurfaceClass::Window) {
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The area is the shade or blind area = the sum of the glazing area and the divider area (which is zero if no divider)
Area += SurfWinDividerArea(SurfNum);
}
@@ -1455,8 +1455,7 @@ namespace SteamBaseboardRadiator {
SurfWinFrameTempSurfIn(SurfNum);
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn &&
- SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf += HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) *
SurfWinDividerTempSurfIn(SurfNum);
diff --git a/src/EnergyPlus/SurfaceGeometry.cc b/src/EnergyPlus/SurfaceGeometry.cc
index ff91ab8c057..19d3e9e5cad 100644
--- a/src/EnergyPlus/SurfaceGeometry.cc
+++ b/src/EnergyPlus/SurfaceGeometry.cc
@@ -159,13 +159,13 @@ namespace SurfaceGeometry {
SurfWinProfileAngHor.dimension(NumSurfaces, 0);
SurfWinProfileAngVert.dimension(NumSurfaces, 0);
- SurfWinShadingFlag.dimension(NumSurfaces, 0);
+ SurfWinShadingFlag.dimension(NumSurfaces, WinShadingType::ShadeOff);
SurfWinShadingFlagEMSOn.dimension(NumSurfaces, 0);
- SurfWinShadingFlagEMSValue.dimension(NumSurfaces, 0);
+ SurfWinShadingFlagEMSValue.dimension(NumSurfaces, 0.0);
SurfWinStormWinFlag.dimension(NumSurfaces, 0);
SurfWinStormWinFlagPrevDay.dimension(NumSurfaces, 0);
SurfWinFracTimeShadingDeviceOn.dimension(NumSurfaces, 0);
- SurfWinExtIntShadePrevTS.dimension(NumSurfaces, 0);
+ SurfWinExtIntShadePrevTS.dimension(NumSurfaces, WinShadingType::ShadeOff);
SurfWinHasShadeOrBlindLayer.dimension(NumSurfaces, 0);
SurfWinSurfDayLightInit.dimension(NumSurfaces, 0);
SurfWinDaylFacPoint.dimension(NumSurfaces, 0);
@@ -1006,7 +1006,6 @@ namespace SurfaceGeometry {
// unused INTEGER :: SchID
int BlNumNew;
int WinShadingControlPtr(0);
- int ShadingType;
int ErrCount;
Real64 diffp;
bool izConstDiff; // differences in construction for IZ surfaces
@@ -2037,10 +2036,10 @@ namespace SurfaceGeometry {
ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
if (ConstrNumSh <= 0) continue;
- ShadingType = WindowShadingControl(WinShadingControlPtr).ShadingType;
+ WinShadingType ShadingType = WindowShadingControl(WinShadingControlPtr).ShadingType;
// only for blinds
- if (ShadingType == WSC_ST_ExteriorBlind || ShadingType == WSC_ST_InteriorBlind || ShadingType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BLIND(ShadingType)) {
// TH 1/7/2010. CR 7930
// The old code did not consider between-glass blind. Also there should not be two blinds - both interior and exterior
@@ -4772,11 +4771,7 @@ namespace SurfaceGeometry {
if (ConstrNumSh > 0) {
state.dataSurfaceGeometry->SurfaceTmp(SurfNum).activeShadedConstruction = ConstrNumSh;
} else {
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorBlind ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_ExteriorShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_ExteriorScreen ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_ExteriorBlind) {
+ if (ANY_INTERIOR_SHADE_BLIND(WindowShadingControl(WSCPtr).ShadingType) || ANY_EXTERIOR_SHADE_BLIND_SCREEN(WindowShadingControl(WSCPtr).ShadingType)) {
ShDevNum = WindowShadingControl(WSCPtr).ShadingDevice;
if (ShDevNum > 0) {
CreateShadedWindowConstruction(state, SurfNum, WSCPtr, ShDevNum, shadeControlIndex);
@@ -4791,8 +4786,7 @@ namespace SurfaceGeometry {
ConstrNum = state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Construction;
if (!ErrorsFound && WSCPtr > 0 && ConstrNum > 0 && ConstrNumSh > 0) {
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorBlind) {
+ if (ANY_INTERIOR_SHADE_BLIND(WindowShadingControl(WSCPtr).ShadingType)) {
TotLayers = state.dataConstruction->Construct(ConstrNum).TotLayers;
TotShLayers = state.dataConstruction->Construct(ConstrNumSh).TotLayers;
if (TotShLayers - 1 != TotLayers) {
@@ -4815,9 +4809,7 @@ namespace SurfaceGeometry {
}
}
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_ExteriorShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_ExteriorScreen ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_ExteriorBlind) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(WindowShadingControl(WSCPtr).ShadingType)) {
TotLayers = state.dataConstruction->Construct(ConstrNum).TotLayers;
TotShLayers = state.dataConstruction->Construct(ConstrNumSh).TotLayers;
if (TotShLayers - 1 != TotLayers) {
@@ -4840,8 +4832,7 @@ namespace SurfaceGeometry {
}
}
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_BetweenGlassShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BETWEENGLASS_SHADE_BLIND(WindowShadingControl(WSCPtr).ShadingType)) {
// Divider not allowed with between-glass shade or blind
if (state.dataSurfaceGeometry->SurfaceTmp(SurfNum).FrameDivider > 0) {
if (FrameDivider(state.dataSurfaceGeometry->SurfaceTmp(SurfNum).FrameDivider).DividerWidth > 0.0) {
@@ -4884,7 +4875,7 @@ namespace SurfaceGeometry {
MatGap1 = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(2 * TotGlassLayers - 2);
MatGap2 = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(2 * TotGlassLayers);
MatSh = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(2 * TotGlassLayers - 1);
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_BetweenGlassBlind) {
+ if (WindowShadingControl(WSCPtr).ShadingType == WinShadingType::BGBlind) {
MatGapCalc = std::abs(state.dataMaterial->Material(MatGap).Thickness - (state.dataMaterial->Material(MatGap1).Thickness + state.dataMaterial->Material(MatGap2).Thickness));
if (MatGapCalc > 0.001) {
ShowSevereError(state, cRoutineName + ": The gap width(s) for the unshaded window construction " + state.dataConstruction->Construct(ConstrNum).Name);
@@ -4972,8 +4963,7 @@ namespace SurfaceGeometry {
// Divider not allowed with between-glass shade or blind
for (int WSCPtr : state.dataSurfaceGeometry->SurfaceTmp(SurfNum).windowShadingControlList) {
if (!ErrorsFound && WSCPtr > 0 && ConstrNumSh > 0) {
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_BetweenGlassShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BETWEENGLASS_SHADE_BLIND(WindowShadingControl(WSCPtr).ShadingType)) {
if (state.dataSurfaceGeometry->SurfaceTmp(SurfNum).FrameDivider > 0) {
if (FrameDivider(state.dataSurfaceGeometry->SurfaceTmp(SurfNum).FrameDivider).DividerWidth > 0.0) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Name + "\", invalid " +
@@ -8168,25 +8158,19 @@ namespace SurfaceGeometry {
using ScheduleManager::GetScheduleIndex;
// SUBROUTINE PARAMETER DEFINITIONS:
- int const NumValidShadingTypes(8);
+
+ int const NumValidShadingTypes(9);
static Array1D_string const cValidShadingTypes(NumValidShadingTypes,
- {"INTERIORSHADE",
- "EXTERIORSHADE",
- "EXTERIORSCREEN",
- "INTERIORBLIND",
- "EXTERIORBLIND",
- "BETWEENGLASSSHADE",
- "BETWEENGLASSBLIND",
- "SWITCHABLEGLAZING"});
- static Array1D_int const ValidShadingTypes(NumValidShadingTypes,
- {WSC_ST_InteriorShade,
- WSC_ST_ExteriorShade,
- WSC_ST_ExteriorScreen,
- WSC_ST_InteriorBlind,
- WSC_ST_ExteriorBlind,
- WSC_ST_BetweenGlassShade,
- WSC_ST_BetweenGlassBlind,
- WSC_ST_SwitchableGlazing});
+ {"SHADEOFF", // 1
+ "INTERIORSHADE", // 2
+ "SWITCHABLEGLAZING", // 3
+ "EXTERIORSHADE", // 4
+ "EXTERIORSCREEN", // 5
+ "INTERIORBLIND", // 6
+ "EXTERIORBLIND", // 7
+ "BETWEENGLASSSHADE", // 8
+ "BETWEENGLASSBLIND" // 9
+ });
int const NumValidWindowShadingControlTypes(21);
static Array1D_string const cValidWindowShadingControlTypes(NumValidWindowShadingControlTypes,
@@ -8212,43 +8196,7 @@ namespace SurfaceGeometry {
"ONIFHIGHZONEAIRTEMPANDHIGHSOLARONWINDOW",
"ONIFHIGHZONEAIRTEMPANDHIGHHORIZONTALSOLAR"});
- static Array1D_int const ValidWindowShadingControlTypes(
- NumValidWindowShadingControlTypes,
- {WSCT_AlwaysOn,
- WSCT_AlwaysOff,
- WSCT_OnIfScheduled,
- WSCT_HiSolar,
- WSCT_HiHorzSolar,
- WSCT_HiOutAirTemp,
- WSCT_HiZoneAirTemp,
- WSCT_HiZoneCooling,
- WSCT_HiGlare,
- WSCT_MeetDaylIlumSetp,
- WSCT_OnNightLoOutTemp_OffDay,
- WSCT_OnNightLoInTemp_OffDay,
- WSCT_OnNightIfHeating_OffDay,
- WSCT_OnNightLoOutTemp_OnDayCooling,
- WSCT_OnNightIfHeating_OnDayCooling,
- WSCT_OffNight_OnDay_HiSolarWindow,
- WSCT_OnNight_OnDay_HiSolarWindow,
- WSCT_OnHiOutTemp_HiSolarWindow,
- WSCT_OnHiOutTemp_HiHorzSolar,
- WSCT_OnHiZoneTemp_HiSolarWindow,
- WSCT_OnHiZoneTemp_HiHorzSolar}); // 'ALWAYSON ', & | 'ALWAYSOFF ', &
- // | 'ONIFSCHEDULEALLOWS ', & | 'ONIFHIGHSOLARONWINDOW ',
- // & | 'ONIFHIGHHORIZONTALSOLAR ', & | 'ONIFHIGHOUTDOORAIRTEMPERATURE
- // ', & | 'ONIFHIGHZONEAIRTEMPERATURE ', & | 'ONIFHIGHZONECOOLING
- // ', & | 'ONIFHIGHGLARE ', & | 'MEETDAYLIGHTILLUMINANCESETPOINT
- // ', & | 'ONNIGHTIFLOWOUTDOORTEMPANDOFFDAY ', & | 'ONNIGHTIFLOWINSIDETEMPANDOFFDAY
- // ', & | 'ONNIGHTIFHEATINGANDOFFDAY ', & |
- // 'ONNIGHTIFLOWOUTDOORTEMPANDONDAYIFCOOLING ', & | 'ONNIGHTIFHEATINGANDONDAYIFCOOLING
- // ', & | 'OFFNIGHTANDONDAYIFCOOLINGANDHIGHSOLARONWINDOW ', & |
- // 'ONNIGHTANDONDAYIFCOOLINGANDHIGHSOLARONWINDOW ', & | 'ONIFHIGHOUTDOORAIRTEMPANDHIGHSOLARONWINDOW ',
- // & | 'ONIFHIGHOUTDOORAIRTEMPANDHIGHHORIZONTALSOLAR', & | 'ONIFHIGHZONEAIRTEMPANDHIGHSOLARONWINDOW
- // ', & | 'ONIFHIGHZONEAIRTEMPANDHIGHHORIZONTALSOLAR '/)
-
// SUBROUTINE LOCAL VARIABLE DECLARATIONS:
-
int IOStat; // IO Status when calling get input subroutine
int ControlNumAlpha; // Number of control alpha names being passed
int ControlNumProp; // Number of control properties being passed
@@ -8259,7 +8207,6 @@ namespace SurfaceGeometry {
bool ErrorInName;
bool IsBlank;
int Loop;
- int ShTyp; // Shading type
std::string ControlType; // Shading control type
bool BGShadeBlindError; // True if problem with construction that is supposed to have between-glass
// shade or blind
@@ -8446,7 +8393,7 @@ namespace SurfaceGeometry {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" invalid " + cAlphaFieldNames(5) + "=\"" +
cAlphaArgs(5) + "\".");
} else {
- WindowShadingControl(ControlNum).ShadingControlType = ValidWindowShadingControlTypes(Found);
+ WindowShadingControl(ControlNum).ShadingControlType = WindowShadingControlType(Found);
}
// Error checks
@@ -8461,7 +8408,7 @@ namespace SurfaceGeometry {
cAlphaArgs(8) + "\".");
}
- if ((WindowShadingControl(ControlNum).ShadingControlType == WSCT_OnIfScheduled) &&
+ if ((WindowShadingControl(ControlNum).ShadingControlType == WindowShadingControlType::OnIfScheduled) &&
(!WindowShadingControl(ControlNum).ShadingControlIsScheduled)) { // CR 7709 BG
ErrorsFound = true;
ShowSevereError(state, cCurrentModuleObject + " = \"" + WindowShadingControl(ControlNum).Name + "\" invalid, " + cAlphaFieldNames(7) +
@@ -8485,13 +8432,13 @@ namespace SurfaceGeometry {
if (cAlphaArgs(3) == "INTERIORNONINSULATINGSHADE" || cAlphaArgs(3) == "INTERIORINSULATINGSHADE") {
ShowWarningError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" is using obsolete " +
cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) + "\", changing to \"InteriorShade\"");
- WindowShadingControl(ControlNum).ShadingType = WSC_ST_InteriorShade;
+ WindowShadingControl(ControlNum).ShadingType = WinShadingType::IntShade;
cAlphaArgs(3) = "INTERIORSHADE";
}
if (cAlphaArgs(3) == "EXTERIORNONINSULATINGSHADE" || cAlphaArgs(3) == "EXTERIORINSULATINGSHADE") {
ShowWarningError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" is using obsolete " +
cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) + "\", changing to \"ExteriorShade\"");
- WindowShadingControl(ControlNum).ShadingType = WSC_ST_ExteriorShade;
+ WindowShadingControl(ControlNum).ShadingType = WinShadingType::ExtShade;
cAlphaArgs(3) = "EXTERIORSHADE";
}
@@ -8505,15 +8452,15 @@ namespace SurfaceGeometry {
// Check for illegal shading type name
Found = UtilityRoutines::FindItemInList(cAlphaArgs(3), cValidShadingTypes, NumValidShadingTypes);
- if (Found == 0) {
+ if (Found <= 1) {
ErrorsFound = true;
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" invalid " + cAlphaFieldNames(3) + "=\"" +
cAlphaArgs(3) + "\".");
} else {
- WindowShadingControl(ControlNum).ShadingType = ValidShadingTypes(Found);
+ WindowShadingControl(ControlNum).ShadingType = WinShadingType(Found);
}
- ShTyp = WindowShadingControl(ControlNum).ShadingType;
+ WinShadingType ShTyp = WindowShadingControl(ControlNum).ShadingType;
IShadedConst = WindowShadingControl(ControlNum).getInputShadedConstruction;
IShadingDevice = WindowShadingControl(ControlNum).ShadingDevice;
@@ -8522,30 +8469,30 @@ namespace SurfaceGeometry {
"\" has no matching shaded construction or shading device.");
ErrorsFound = true;
} else if (IShadedConst == 0 && IShadingDevice > 0) {
- if (ShTyp == WSC_ST_SwitchableGlazing) {
+ if (ShTyp == WinShadingType::SwitchableGlazing) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaArgs(3) +
"= SwitchableGlazing but no matching shaded construction");
ErrorsFound = true;
}
- if ((ShTyp == WSC_ST_InteriorShade || ShTyp == WSC_ST_ExteriorShade) && state.dataMaterial->Material(IShadingDevice).Group != Shade) {
+ if ((ShTyp == WinShadingType::IntShade || ShTyp == WinShadingType::ExtShade) && state.dataMaterial->Material(IShadingDevice).Group != Shade) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaArgs(3) +
"= InteriorShade or ExteriorShade but matching shading device is not a window shade");
ShowContinueError(state, cAlphaFieldNames(8) + " in error=\"" + state.dataMaterial->Material(IShadingDevice).Name + "\".");
ErrorsFound = true;
}
- if ((ShTyp == WSC_ST_ExteriorScreen) && state.dataMaterial->Material(IShadingDevice).Group != Screen) {
+ if ((ShTyp == WinShadingType::ExtScreen) && state.dataMaterial->Material(IShadingDevice).Group != Screen) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaArgs(3) +
"= ExteriorScreen but matching shading device is not a window screen");
ShowContinueError(state, cAlphaFieldNames(8) + " in error=\"" + state.dataMaterial->Material(IShadingDevice).Name + "\".");
ErrorsFound = true;
}
- if ((ShTyp == WSC_ST_InteriorBlind || ShTyp == WSC_ST_ExteriorBlind) && state.dataMaterial->Material(IShadingDevice).Group != WindowBlind) {
+ if ((ShTyp == WinShadingType::IntBlind || ShTyp == WinShadingType::ExtBlind) && state.dataMaterial->Material(IShadingDevice).Group != WindowBlind) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaArgs(3) +
"= InteriorBlind or ExteriorBlind but matching shading device is not a window blind");
ShowContinueError(state, cAlphaFieldNames(8) + " in error=\"" + state.dataMaterial->Material(IShadingDevice).Name + "\".");
ErrorsFound = true;
}
- if (ShTyp == WSC_ST_BetweenGlassShade || ShTyp == WSC_ST_BetweenGlassBlind) {
+ if (ShTyp == WinShadingType::BGShade || ShTyp == WinShadingType::BGBlind) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaArgs(3) +
"= BetweenGlassShade or BetweenGlassBlind and");
ShowContinueError(state, cAlphaFieldNames(8) + " is specified. This is illegal. Specify shaded construction instead.");
@@ -8566,7 +8513,7 @@ namespace SurfaceGeometry {
BGShadeBlindError = false;
IShadingDevice = 0;
if (state.dataConstruction->Construct(IShadedConst).LayerPoint(NLayers) != 0) {
- if (WindowShadingControl(ControlNum).ShadingType == WSC_ST_InteriorShade) {
+ if (WindowShadingControl(ControlNum).ShadingType == WinShadingType::IntShade) {
IShadingDevice = state.dataConstruction->Construct(IShadedConst).LayerPoint(NLayers);
if (state.dataMaterial->Material(state.dataConstruction->Construct(IShadedConst).LayerPoint(NLayers)).Group != Shade) {
ErrorsFound = true;
@@ -8575,7 +8522,7 @@ namespace SurfaceGeometry {
ShowContinueError(state, "of " + cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) +
"\" should have a shade layer on the inside of the window.");
}
- } else if (WindowShadingControl(ControlNum).ShadingType == WSC_ST_ExteriorShade) {
+ } else if (WindowShadingControl(ControlNum).ShadingType == WinShadingType::ExtShade) {
IShadingDevice = state.dataConstruction->Construct(IShadedConst).LayerPoint(1);
if (state.dataMaterial->Material(state.dataConstruction->Construct(IShadedConst).LayerPoint(1)).Group != Shade) {
ErrorsFound = true;
@@ -8584,7 +8531,7 @@ namespace SurfaceGeometry {
ShowContinueError(state, "of " + cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) +
"\" should have a shade layer on the outside of the window.");
}
- } else if (WindowShadingControl(ControlNum).ShadingType == WSC_ST_ExteriorScreen) {
+ } else if (WindowShadingControl(ControlNum).ShadingType == WinShadingType::ExtScreen) {
IShadingDevice = state.dataConstruction->Construct(IShadedConst).LayerPoint(1);
if (state.dataMaterial->Material(state.dataConstruction->Construct(IShadedConst).LayerPoint(1)).Group != Screen) {
ErrorsFound = true;
@@ -8593,7 +8540,7 @@ namespace SurfaceGeometry {
ShowContinueError(state, "of " + cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) +
"\" should have a screen layer on the outside of the window.");
}
- } else if (WindowShadingControl(ControlNum).ShadingType == WSC_ST_InteriorBlind) {
+ } else if (WindowShadingControl(ControlNum).ShadingType == WinShadingType::IntBlind) {
IShadingDevice = state.dataConstruction->Construct(IShadedConst).LayerPoint(NLayers);
if (state.dataMaterial->Material(state.dataConstruction->Construct(IShadedConst).LayerPoint(NLayers)).Group != WindowBlind) {
ErrorsFound = true;
@@ -8602,7 +8549,7 @@ namespace SurfaceGeometry {
ShowContinueError(state, "of " + cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) +
"\" should have a blind layer on the inside of the window.");
}
- } else if (WindowShadingControl(ControlNum).ShadingType == WSC_ST_ExteriorBlind) {
+ } else if (WindowShadingControl(ControlNum).ShadingType == WinShadingType::ExtBlind) {
IShadingDevice = state.dataConstruction->Construct(IShadedConst).LayerPoint(1);
if (state.dataMaterial->Material(state.dataConstruction->Construct(IShadedConst).LayerPoint(1)).Group != WindowBlind) {
ErrorsFound = true;
@@ -8611,7 +8558,7 @@ namespace SurfaceGeometry {
ShowContinueError(state, "of " + cAlphaFieldNames(3) + "=\"" + cAlphaArgs(3) +
"\" should have a blind layer on the outside of the window.");
}
- } else if (WindowShadingControl(ControlNum).ShadingType == WSC_ST_BetweenGlassShade) {
+ } else if (WindowShadingControl(ControlNum).ShadingType == WinShadingType::BGShade) {
if (NLayers != 5 && NLayers != 7) BGShadeBlindError = true;
if (NLayers == 5) {
if (state.dataMaterial->Material(state.dataConstruction->Construct(IShadedConst).LayerPoint(3)).Group != Shade) BGShadeBlindError = true;
@@ -8627,7 +8574,7 @@ namespace SurfaceGeometry {
"\" should have two or three glass layers and a");
ShowContinueError(state, "between-glass shade layer with a gas layer on each side.");
}
- } else if (WindowShadingControl(ControlNum).ShadingType == WSC_ST_BetweenGlassBlind) {
+ } else if (WindowShadingControl(ControlNum).ShadingType == WinShadingType::BGBlind) {
if (NLayers != 5 && NLayers != 7) BGShadeBlindError = true;
if (NLayers == 5) {
if (state.dataMaterial->Material(state.dataConstruction->Construct(IShadedConst).LayerPoint(3)).Group != WindowBlind) BGShadeBlindError = true;
@@ -8645,19 +8592,19 @@ namespace SurfaceGeometry {
}
}
if (IShadingDevice > 0) {
- if ((ShTyp == WSC_ST_InteriorShade || ShTyp == WSC_ST_ExteriorShade) && state.dataMaterial->Material(IShadingDevice).Group != Shade) {
+ if ((ShTyp == WinShadingType::IntShade || ShTyp == WinShadingType::ExtShade) && state.dataMaterial->Material(IShadingDevice).Group != Shade) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaFieldNames(3) +
"= InteriorShade or ExteriorShade but matching shading device is not a window shade");
ShowContinueError(state, "Shading Device in error=\"" + state.dataMaterial->Material(IShadingDevice).Name + "\".");
ErrorsFound = true;
}
- if ((ShTyp == WSC_ST_ExteriorScreen) && state.dataMaterial->Material(IShadingDevice).Group != Screen) {
+ if ((ShTyp == WinShadingType::ExtScreen) && state.dataMaterial->Material(IShadingDevice).Group != Screen) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaFieldNames(3) +
"= ExteriorScreen but matching shading device is not an exterior window screen.");
ShowContinueError(state, "Shading Device in error=\"" + state.dataMaterial->Material(IShadingDevice).Name + "\".");
ErrorsFound = true;
}
- if ((ShTyp == WSC_ST_InteriorBlind || ShTyp == WSC_ST_ExteriorBlind) && state.dataMaterial->Material(IShadingDevice).Group != WindowBlind) {
+ if ((ShTyp == WinShadingType::IntBlind || ShTyp == WinShadingType::ExtBlind) && state.dataMaterial->Material(IShadingDevice).Group != WindowBlind) {
ShowSevereError(state, cCurrentModuleObject + "=\"" + WindowShadingControl(ControlNum).Name + "\" has " + cAlphaFieldNames(3) +
"= InteriorBlind or ExteriorBlind but matching shading device is not a window blind.");
ShowContinueError(state, "Shading Device in error=\"" + state.dataMaterial->Material(IShadingDevice).Name + "\".");
@@ -9178,8 +9125,7 @@ namespace SurfaceGeometry {
if (Surface(SurfNum).HasShadeControl) {
for (std::size_t listIndex = 0; listIndex < Surface(SurfNum).windowShadingControlList.size(); ++listIndex) {
int WSCPtr = Surface(SurfNum).windowShadingControlList[listIndex];
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_BetweenGlassShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_BetweenGlassBlind) {
+ if (ANY_BETWEENGLASS_SHADE_BLIND(WindowShadingControl(WSCPtr).ShadingType)) {
ConstrNumSh = Surface(SurfNum).shadedConstructionList[listIndex];
if (state.dataConstruction->Construct(ConstrNum).TotGlassLayers == 2) {
MatGapFlow1 = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(2);
@@ -11691,7 +11637,7 @@ namespace SurfaceGeometry {
ShDevName = state.dataMaterial->Material(ShDevNum).Name;
ConstrNum = state.dataSurfaceGeometry->SurfaceTmp(SurfNum).Construction;
ConstrName = state.dataConstruction->Construct(ConstrNum).Name;
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorShade || WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorBlind) {
+ if (ANY_INTERIOR_SHADE_BLIND(WindowShadingControl(WSCPtr).ShadingType)) {
ConstrNameSh = ConstrName + ':' + ShDevName + ":INT";
} else {
ConstrNameSh = ConstrName + ':' + ShDevName + ":EXT";
@@ -11723,8 +11669,8 @@ namespace SurfaceGeometry {
state.dataConstruction->Construct(ConstrNewSh).LayerPoint = 0;
- if (WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorShade ||
- WindowShadingControl(WSCPtr).ShadingType == WSC_ST_InteriorBlind) {
+ if (WindowShadingControl(WSCPtr).ShadingType == WinShadingType::IntShade ||
+ WindowShadingControl(WSCPtr).ShadingType == WinShadingType::IntBlind) {
// Interior shading device
state.dataConstruction->Construct(ConstrNewSh).LayerPoint({1, TotLayersOld}) = state.dataConstruction->Construct(ConstrNum).LayerPoint({1, TotLayersOld});
state.dataConstruction->Construct(ConstrNewSh).LayerPoint(TotLayersNew) = ShDevNum;
diff --git a/src/EnergyPlus/SwimmingPool.cc b/src/EnergyPlus/SwimmingPool.cc
index ded8e83b51e..ad4b0250a7b 100644
--- a/src/EnergyPlus/SwimmingPool.cc
+++ b/src/EnergyPlus/SwimmingPool.cc
@@ -1007,8 +1007,8 @@ namespace EnergyPlus::SwimmingPool {
Real64 Area = DataSurfaces::Surface(SurfNum).Area; // Effective surface area
if (DataSurfaces::Surface(SurfNum).Class == DataSurfaces::SurfaceClass::Window) {
- if (DataSurfaces::SurfWinShadingFlag(SurfNum) == DataSurfaces::IntShadeOn ||
- DataSurfaces::SurfWinShadingFlag(SurfNum) == DataSurfaces::IntBlindOn) {
+ if (DataSurfaces::SurfWinShadingFlag(SurfNum) == DataSurfaces::WinShadingType::IntShade ||
+ DataSurfaces::SurfWinShadingFlag(SurfNum) == DataSurfaces::WinShadingType::IntBlind) {
// The area is the shade or blind are = sum of the glazing area and the divider area (which is zero if no divider)
Area += DataSurfaces::SurfWinDividerArea(SurfNum);
}
@@ -1020,8 +1020,8 @@ namespace EnergyPlus::SwimmingPool {
}
if (DataSurfaces::SurfWinDividerArea(SurfNum) > 0.0 &&
- DataSurfaces::SurfWinShadingFlag(SurfNum) != DataSurfaces::IntShadeOn &&
- DataSurfaces::SurfWinShadingFlag(SurfNum) != DataSurfaces::IntBlindOn) {
+ DataSurfaces::SurfWinShadingFlag(SurfNum) != DataSurfaces::WinShadingType::IntShade &&
+ DataSurfaces::SurfWinShadingFlag(SurfNum) != DataSurfaces::WinShadingType::IntBlind) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf += DataHeatBalance::HConvIn(SurfNum) * DataSurfaces::SurfWinDividerArea(SurfNum) *
(1.0 + 2.0 * DataSurfaces::SurfWinProjCorrDivIn(SurfNum)) *
diff --git a/src/EnergyPlus/SystemReports.cc b/src/EnergyPlus/SystemReports.cc
index db29cc39857..5b09f84c57a 100644
--- a/src/EnergyPlus/SystemReports.cc
+++ b/src/EnergyPlus/SystemReports.cc
@@ -57,10 +57,12 @@
#include
// EnergyPlus Headers
+#include
#include
#include
#include
#include
+#include
#include
#include
#include
@@ -75,6 +77,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -1651,6 +1654,21 @@ namespace EnergyPlus::SystemReports {
state.dataSysRpts->ZoneOAVolFlowCrntRho.allocate(state.dataGlobal->NumOfZones);
state.dataSysRpts->ZoneOAVolCrntRho.allocate(state.dataGlobal->NumOfZones);
state.dataSysRpts->ZoneMechACH.allocate(state.dataGlobal->NumOfZones);
+ state.dataSysRpts->ZoneTargetVentilationFlowVoz.allocate(state.dataGlobal->NumOfZones);
+ state.dataSysRpts->ZoneTimeBelowVozDyn.allocate(state.dataGlobal->NumOfZones);
+ state.dataSysRpts->ZoneTimeAtVozDyn.allocate(state.dataGlobal->NumOfZones);
+ state.dataSysRpts->ZoneTimeAboveVozDyn.allocate(state.dataGlobal->NumOfZones);
+ state.dataSysRpts->ZoneTimeVentUnocc.allocate(state.dataGlobal->NumOfZones);
+
+ state.dataSysRpts->SysMechVentFlow.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysNatVentFlow.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysTargetVentilationFlowVoz.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysTimeBelowVozDyn.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysTimeAtVozDyn.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysTimeAboveVozDyn.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysTimeVentUnocc.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysAnyZoneOccupied.allocate(NumPrimaryAirSys);
+ state.dataSysRpts->SysPreDefRep.allocate(NumPrimaryAirSys);
state.dataSysRpts->SysTotZoneLoadHTNG.allocate(NumPrimaryAirSys);
state.dataSysRpts->SysTotZoneLoadCLNG.allocate(NumPrimaryAirSys);
@@ -1728,6 +1746,20 @@ namespace EnergyPlus::SystemReports {
state.dataSysRpts->ZoneOAVolFlowCrntRho = 0.0;
state.dataSysRpts->ZoneOAVolCrntRho = 0.0;
state.dataSysRpts->ZoneMechACH = 0.0;
+ state.dataSysRpts->ZoneTargetVentilationFlowVoz = 0.0;
+ state.dataSysRpts->ZoneTimeBelowVozDyn = 0.0;
+ state.dataSysRpts->ZoneTimeAtVozDyn = 0.0;
+ state.dataSysRpts->ZoneTimeAboveVozDyn = 0.0;
+ state.dataSysRpts->ZoneTimeVentUnocc = 0.0;
+
+ state.dataSysRpts->SysMechVentFlow = 0.0;
+ state.dataSysRpts->SysNatVentFlow = 0.0;
+ state.dataSysRpts->SysTargetVentilationFlowVoz = 0.0;
+ state.dataSysRpts->SysTimeBelowVozDyn = 0.0;
+ state.dataSysRpts->SysTimeAtVozDyn = 0.0;
+ state.dataSysRpts->SysTimeAboveVozDyn = 0.0;
+ state.dataSysRpts->SysTimeVentUnocc = 0.0;
+ state.dataSysRpts->SysAnyZoneOccupied = false;
// SYSTEM LOADS REPORT
state.dataSysRpts->SysTotZoneLoadHTNG = 0.0;
@@ -2004,6 +2036,63 @@ namespace EnergyPlus::SystemReports {
"HVAC",
"Sum",
state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
+ SetupOutputVariable(state,
+ "Air System Mechanical Ventilation Flow Rate",
+ OutputProcessor::Unit::m3_s,
+ state.dataSysRpts->SysMechVentFlow(SysIndex),
+ "HVAC",
+ "Sum",
+ state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
+ SetupOutputVariable(state,
+ "Air System Natural Ventilation Flow Rate",
+ OutputProcessor::Unit::m3_s,
+ state.dataSysRpts->SysNatVentFlow(SysIndex),
+ "HVAC",
+ "Sum",
+ state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
+ SetupOutputVariable(state,
+ "Air System Target Voz Ventilation Flow Rate",
+ OutputProcessor::Unit::m3_s,
+ state.dataSysRpts->SysTargetVentilationFlowVoz(SysIndex),
+ "HVAC",
+ "Sum",
+ state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
+ SetupOutputVariable(state,
+ "Air System Ventilation Below Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->SysTimeBelowVozDyn(SysIndex),
+ "HVAC",
+ "Sum",
+ state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
+ SetupOutputVariable(state,
+ "Air System Ventilation At Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->SysTimeAtVozDyn(SysIndex),
+ "HVAC",
+ "Sum",
+ state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
+ SetupOutputVariable(state,
+ "Air System Ventilation Above Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->SysTimeAboveVozDyn(SysIndex),
+ "HVAC",
+ "Sum",
+ state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
+ SetupOutputVariable(state,
+ "Air System Ventilation When Unoccupied Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->SysTimeVentUnocc(SysIndex),
+ "HVAC",
+ "Sum",
+ state.dataAirSystemsData->PrimaryAirSystems(SysIndex).Name);
+
}
}
for (int ZoneIndex = 1; ZoneIndex <= state.dataGlobal->NumOfZones; ++ZoneIndex) {
@@ -2116,7 +2205,73 @@ namespace EnergyPlus::SystemReports {
"HVAC",
"Average",
state.dataZoneEquip->ZoneEquipConfig(ZoneIndex).ZoneName);
+
+ SetupOutputVariable(state, "Zone Target Voz Ventilation Flow Rate",
+ OutputProcessor::Unit::m3_s,
+ state.dataSysRpts->ZoneTargetVentilationFlowVoz(ZoneIndex),
+ "HVAC",
+ "Sum",
+ state.dataZoneEquip->ZoneEquipConfig(ZoneIndex).ZoneName);
+
+ SetupOutputVariable(state, "Zone Ventilation Below Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->ZoneTimeBelowVozDyn(ZoneIndex),
+ "HVAC",
+ "Sum",
+ state.dataZoneEquip->ZoneEquipConfig(ZoneIndex).ZoneName);
+
+ SetupOutputVariable(state, "Zone Ventilation At Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->ZoneTimeAtVozDyn(ZoneIndex),
+ "HVAC",
+ "Sum",
+ state.dataZoneEquip->ZoneEquipConfig(ZoneIndex).ZoneName);
+
+ SetupOutputVariable(state, "Zone Ventilation Above Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->ZoneTimeAboveVozDyn(ZoneIndex),
+ "HVAC",
+ "Sum",
+ state.dataZoneEquip->ZoneEquipConfig(ZoneIndex).ZoneName);
+
+ SetupOutputVariable(state, "Zone Ventilation When Unoccupied Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->ZoneTimeVentUnocc(ZoneIndex),
+ "HVAC",
+ "Sum",
+ state.dataZoneEquip->ZoneEquipConfig(ZoneIndex).ZoneName);
+
}
+
+ // Facility outputs
+ SetupOutputVariable(state, "Facility Any Zone Ventilation Below Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->AnyZoneTimeBelowVozDyn,
+ "HVAC",
+ "Sum",
+ "Facility");
+
+ SetupOutputVariable(state, "Facility All Zones Ventilation At Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->AllZonesTimeAtVozDyn,
+ "HVAC",
+ "Sum",
+ "Facility");
+
+ SetupOutputVariable(state, "Facility Any Zone Ventilation Above Target Voz Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->AnyZoneTimeAboveVozDyn,
+ "HVAC",
+ "Sum",
+ "Facility");
+
+ SetupOutputVariable(state, "Facility Any Zone Ventilation When Unoccupied Time",
+ OutputProcessor::Unit::hr,
+ state.dataSysRpts->AnyZoneTimeVentUnocc,
+ "HVAC",
+ "Sum",
+ "Facility");
+
}
void CreateEnergyReportStructure(EnergyPlusData &state)
@@ -4086,7 +4241,6 @@ namespace EnergyPlus::SystemReports {
int ZoneInNum; // counter for zone air distribution inlets
int ReturnAirNode; // node number for return node on primary air loop
int MixedAirNode; // mixed air node number (right after the mixing box) on primary air loop
- int AirLoopNum; // index to AirloopHVAC
int AirDistCoolInletNodeNum; // Air distribution unit inlet node number
int AirDistHeatInletNodeNum; // Air distribution unit outlet node number
@@ -4115,21 +4269,49 @@ namespace EnergyPlus::SystemReports {
if (!state.dataSysRpts->VentReportStructureCreated) return;
if (!state.dataSysRpts->VentLoadsReportEnabled) return;
// following inits are array assignments across all controlled zones.
- state.dataSysRpts->ZoneOAMassFlow = 0.0;
- state.dataSysRpts->ZoneOAMass = 0.0;
- state.dataSysRpts->ZoneOAVolFlowStdRho = 0.0;
- state.dataSysRpts->ZoneOAVolStdRho = 0.0;
- state.dataSysRpts->ZoneOAVolFlowCrntRho = 0.0;
- state.dataSysRpts->ZoneOAVolCrntRho = 0.0;
- state.dataSysRpts->ZoneMechACH = 0.0;
- state.dataSysRpts->MaxCoolingLoadMetByVent = 0.0;
- state.dataSysRpts->MaxCoolingLoadAddedByVent = 0.0;
- state.dataSysRpts->MaxOvercoolingByVent = 0.0;
- state.dataSysRpts->MaxHeatingLoadMetByVent = 0.0;
- state.dataSysRpts->MaxHeatingLoadAddedByVent = 0.0;
- state.dataSysRpts->MaxOverheatingByVent = 0.0;
- state.dataSysRpts->MaxNoLoadHeatingByVent = 0.0;
- state.dataSysRpts->MaxNoLoadCoolingByVent = 0.0;
+ for (int zoneNum = 1; zoneNum <= state.dataGlobal->NumOfZones; ++zoneNum) {
+ state.dataSysRpts->ZoneOAMassFlow(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneOAMass(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneOAVolFlowStdRho(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneOAVolStdRho(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneOAVolFlowCrntRho(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneOAVolCrntRho(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneMechACH(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneTargetVentilationFlowVoz(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneTimeBelowVozDyn(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneTimeAtVozDyn(zoneNum) = 0.0;
+ }
+ for (int zoneNum = 1; zoneNum <= state.dataGlobal->NumOfZones; ++zoneNum) {
+ state.dataSysRpts->ZoneTimeAboveVozDyn(zoneNum) = 0.0;
+ state.dataSysRpts->ZoneTimeVentUnocc(zoneNum) = 0.0;
+ state.dataSysRpts->MaxCoolingLoadMetByVent(zoneNum) = 0.0;
+ state.dataSysRpts->MaxCoolingLoadAddedByVent(zoneNum) = 0.0;
+ state.dataSysRpts->MaxOvercoolingByVent(zoneNum) = 0.0;
+ state.dataSysRpts->MaxHeatingLoadMetByVent(zoneNum) = 0.0;
+ state.dataSysRpts->MaxHeatingLoadAddedByVent(zoneNum) = 0.0;
+ state.dataSysRpts->MaxOverheatingByVent(zoneNum) = 0.0;
+ state.dataSysRpts->MaxNoLoadHeatingByVent(zoneNum) = 0.0;
+ state.dataSysRpts->MaxNoLoadCoolingByVent(zoneNum) = 0.0;
+ }
+
+ state.dataSysRpts->AnyZoneTimeBelowVozDyn = 0.0;
+ state.dataSysRpts->AllZonesTimeAtVozDyn = 0.0;
+ state.dataSysRpts->AnyZoneTimeAboveVozDyn = 0.0;
+ state.dataSysRpts->AnyZoneTimeVentUnocc = 0.0;
+ state.dataSysRpts->AnyZoneTimeBelowVozDynOcc = 0.0;
+ state.dataSysRpts->AllZonesTimeAtVozDynOcc = 0.0;
+ state.dataSysRpts->AnyZoneTimeAboveVozDynOcc = 0.0;
+
+ for (int sysNum = 1; sysNum <= DataHVACGlobals::NumPrimaryAirSys; ++sysNum) {
+ state.dataSysRpts->SysMechVentFlow(sysNum) = 0.0;
+ state.dataSysRpts->SysNatVentFlow(sysNum) = 0.0;
+ state.dataSysRpts->SysTargetVentilationFlowVoz(sysNum) = 0.0;
+ state.dataSysRpts->SysTimeBelowVozDyn(sysNum) = 0.0;
+ state.dataSysRpts->SysTimeAtVozDyn(sysNum) = 0.0;
+ state.dataSysRpts->SysTimeAboveVozDyn(sysNum) = 0.0;
+ state.dataSysRpts->SysTimeVentUnocc(sysNum) = 0.0;
+ state.dataSysRpts->SysAnyZoneOccupied(sysNum) = false;
+ }
for (CtrlZoneNum = 1; CtrlZoneNum <= state.dataGlobal->NumOfZones; ++CtrlZoneNum) {
if (!state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).IsControlled) continue;
@@ -4138,7 +4320,7 @@ namespace EnergyPlus::SystemReports {
// first clear out working variables from previous zone.
ZFAUFlowRate = 0.0;
ZFAUZoneVentLoad = 0.0;
- ZFAUOutAirFlow = 0.0;
+ ZFAUOutAirFlow = 0.0; // kg/s
OutAirFlow = 0.0;
ZoneFlowFrac = 0.0;
@@ -4147,6 +4329,17 @@ namespace EnergyPlus::SystemReports {
ZoneLoad = state.dataZoneEnergyDemand->ZoneSysEnergyDemand(ActualZoneNum).TotalOutputRequired;
ZoneVolume = Zone(ActualZoneNum).Volume * Zone(ActualZoneNum).Multiplier * Zone(ActualZoneNum).ListMultiplier; // CR 7170
+ bool const UseOccSchFlag = true;
+ bool const UseMinOASchFlag = true;
+ state.dataSysRpts->ZoneTargetVentilationFlowVoz(CtrlZoneNum) = DataZoneEquipment::CalcDesignSpecificationOutdoorAir(
+ state, state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneDesignSpecOAIndex, ActualZoneNum, UseOccSchFlag, UseMinOASchFlag);
+ if (state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex > 0) {
+ state.dataSysRpts->ZoneTargetVentilationFlowVoz(CtrlZoneNum) =
+ state.dataSysRpts->ZoneTargetVentilationFlowVoz(CtrlZoneNum) /
+ DataSizing::ZoneAirDistribution(state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex).calculateEz(state, ActualZoneNum);
+ }
+
+
// if system operating in deadband reset zone load
if (state.dataZoneEnergyDemand->DeadBandOrSetback(ActualZoneNum)) ZoneLoad = 0.0;
@@ -4377,7 +4570,7 @@ namespace EnergyPlus::SystemReports {
Real64 AirSysTotalMixFlowRate = 0.0; // Mixed air mass flow rate [kg/s]
Real64 AirSysOutAirFlow = 0.0; // outside air flow rate for zone from primary air system [kg/s]
// retrieve air loop index
- AirLoopNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).InletNodeAirLoopNum(ZoneInNum);
+ int AirLoopNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).InletNodeAirLoopNum(ZoneInNum);
MixedAirNode = 0;
ReturnAirNode = 0;
AirDistCoolInletNodeNum = 0;
@@ -4408,6 +4601,25 @@ namespace EnergyPlus::SystemReports {
// Find the mixed air node and return air node of the system that supplies the zone
MixedAirNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysOutletNodeNum;
ReturnAirNode = state.dataAirSystemsData->PrimaryAirSystems(AirLoopNum).OASysInletNodeNum;
+
+ // Collect air loop Voz-dyn and natural ventilation
+ int ADUNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).InletNodeADUNum(ZoneInNum);
+ Real64 termUnitOAFrac = 1.0;
+ if (ADUNum > 0) {
+ int termUnitSizingNum = state.dataDefineEquipment->AirDistUnit(ADUNum).TermUnitSizingNum;
+ if (termUnitSizingNum > 0) {
+ termUnitOAFrac = DataSizing::TermUnitSizing(termUnitSizingNum).SpecMinOAFrac;
+ }
+ }
+ state.dataSysRpts->SysTargetVentilationFlowVoz(AirLoopNum) +=
+ termUnitOAFrac * state.dataSysRpts->ZoneTargetVentilationFlowVoz(CtrlZoneNum);
+ Real64 naturalVentVol = +ZnAirRpt(ActualZoneNum).VentilVolumeStdDensity + ZonePreDefRep(ActualZoneNum).AFNVentVolTotalStdDen;
+ state.dataSysRpts->SysNatVentFlow(AirLoopNum) += termUnitOAFrac * naturalVentVol;
+
+ if (ZonePreDefRep(ActualZoneNum).isOccupied) {
+ state.dataSysRpts->SysAnyZoneOccupied(AirLoopNum) = true;
+ }
+
}
if (MixedAirNode == 0 || ReturnAirNode == 0) {
@@ -4452,6 +4664,24 @@ namespace EnergyPlus::SystemReports {
state.dataSysRpts->ZoneOAVolFlowStdRho(CtrlZoneNum) = state.dataSysRpts->ZoneOAMassFlow(CtrlZoneNum) / state.dataEnvrn->StdRhoAir;
state.dataSysRpts->ZoneOAVolStdRho(CtrlZoneNum) = state.dataSysRpts->ZoneOAVolFlowStdRho(CtrlZoneNum) * TimeStepSys * DataGlobalConstants::SecInHour;
+ // set time mechanical+natural ventilation is below, at, or above target Voz-dyn
+ // MJWToDo - InfilVolume should be NatVentVolume or similar after this is split in AFN
+ Real64 afnVentVol = ZonePreDefRep(ActualZoneNum).AFNVentVolTotalStdDen;
+ Real64 totMechNatVentVolStdRho = state.dataSysRpts->ZoneOAVolStdRho(CtrlZoneNum) + ZnAirRpt(ActualZoneNum).VentilVolumeStdDensity +
+ afnVentVol;
+ Real64 targetVoz = state.dataSysRpts->ZoneTargetVentilationFlowVoz(CtrlZoneNum) * TimeStepSys * DataGlobalConstants::SecInHour;
+ // Allow 1% tolerance
+ if (totMechNatVentVolStdRho < (0.99 * targetVoz)) {
+ state.dataSysRpts->ZoneTimeBelowVozDyn(CtrlZoneNum) = TimeStepSys;
+ state.dataSysRpts->AnyZoneTimeBelowVozDyn = TimeStepSys;
+ } else if (totMechNatVentVolStdRho > (1.01 * targetVoz)) {
+ state.dataSysRpts->ZoneTimeAboveVozDyn(CtrlZoneNum) = TimeStepSys;
+ state.dataSysRpts->AnyZoneTimeAboveVozDyn = TimeStepSys;
+ } else if (totMechNatVentVolStdRho > SmallAirVolFlow) {
+ state.dataSysRpts->ZoneTimeAtVozDyn(CtrlZoneNum) = TimeStepSys;
+ state.dataSysRpts->AllZonesTimeAtVozDyn = TimeStepSys;
+ }
+
// determine volumetric values from mass flow using current air density for zone (adjusted for elevation)
currentZoneAirDensity = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->OutBaroPress, MAT(ActualZoneNum), ZoneAirHumRatAvg(ActualZoneNum));
if (currentZoneAirDensity > 0.0) state.dataSysRpts->ZoneOAVolFlowCrntRho(CtrlZoneNum) = state.dataSysRpts->ZoneOAMassFlow(CtrlZoneNum) / currentZoneAirDensity;
@@ -4462,22 +4692,48 @@ namespace EnergyPlus::SystemReports {
if (ZonePreDefRep(ActualZoneNum).isOccupied) {
// accumulate the occupied time
ZonePreDefRep(ActualZoneNum).TotTimeOcc += TimeStepSys;
- // mechnical ventilation
- ZonePreDefRep(ActualZoneNum).MechVentVolTotal += state.dataSysRpts->ZoneOAVolCrntRho(CtrlZoneNum);
+ // mechanical ventilation
+ ZonePreDefRep(ActualZoneNum).MechVentVolTotalOcc += state.dataSysRpts->ZoneOAVolCrntRho(CtrlZoneNum);
if ((state.dataSysRpts->ZoneOAVolCrntRho(CtrlZoneNum) / TimeStepSys) < ZonePreDefRep(ActualZoneNum).MechVentVolMin) {
ZonePreDefRep(ActualZoneNum).MechVentVolMin = state.dataSysRpts->ZoneOAVolCrntRho(CtrlZoneNum) / TimeStepSys;
}
+ ZonePreDefRep(ActualZoneNum).MechVentVolTotalOccStdDen += state.dataSysRpts->ZoneOAVolStdRho(CtrlZoneNum);
// infiltration
- ZonePreDefRep(ActualZoneNum).InfilVolTotal += ZnAirRpt(ActualZoneNum).InfilVolumeCurDensity;
+ ZonePreDefRep(ActualZoneNum).InfilVolTotalOcc += ZnAirRpt(ActualZoneNum).InfilVolumeCurDensity;
if (ZnAirRpt(ActualZoneNum).InfilVolumeCurDensity < ZonePreDefRep(ActualZoneNum).InfilVolMin) {
ZonePreDefRep(ActualZoneNum).InfilVolMin = ZnAirRpt(ActualZoneNum).InfilVolumeCurDensity;
}
- //'simple' mechanical ventilation
- ZonePreDefRep(ActualZoneNum).SimpVentVolTotal += ZnAirRpt(ActualZoneNum).VentilVolumeCurDensity;
+ ZonePreDefRep(ActualZoneNum).InfilVolTotalOccStdDen += ZnAirRpt(ActualZoneNum).InfilVolumeStdDensity;
+ // 'simple' natural ventilation
+ ZonePreDefRep(ActualZoneNum).SimpVentVolTotalOcc += ZnAirRpt(ActualZoneNum).VentilVolumeCurDensity;
if (ZnAirRpt(ActualZoneNum).VentilVolumeCurDensity < ZonePreDefRep(ActualZoneNum).SimpVentVolMin) {
ZonePreDefRep(ActualZoneNum).SimpVentVolMin = ZnAirRpt(ActualZoneNum).VentilVolumeCurDensity;
}
+ ZonePreDefRep(ActualZoneNum).SimpVentVolTotalOccStdDen +=
+ ZnAirRpt(ActualZoneNum).VentilVolumeStdDensity + afnVentVol;
+ //target ventilation Voz-dyn
+ state.dataSysRpts->AnyZoneTimeBelowVozDynOcc = state.dataSysRpts->AnyZoneTimeBelowVozDyn;
+ state.dataSysRpts->AllZonesTimeAtVozDynOcc = state.dataSysRpts->AllZonesTimeAtVozDyn;
+ state.dataSysRpts->AnyZoneTimeAboveVozDynOcc = state.dataSysRpts->AnyZoneTimeAboveVozDyn;
+ ZonePreDefRep(ActualZoneNum).VozTargetTotalOcc += targetVoz;
+
+ // time mechanical+natural ventilation is below, at, or above target Voz-dyn
+ ZonePreDefRep(ActualZoneNum).VozTargetTimeBelowOcc += state.dataSysRpts->ZoneTimeBelowVozDyn(CtrlZoneNum);
+ ZonePreDefRep(ActualZoneNum).VozTargetTimeAtOcc += state.dataSysRpts->ZoneTimeAtVozDyn(CtrlZoneNum);
+ ZonePreDefRep(ActualZoneNum).VozTargetTimeAboveOcc += state.dataSysRpts->ZoneTimeAboveVozDyn(CtrlZoneNum);
+ } else if (totMechNatVentVolStdRho > SmallAirVolFlow) {
+ state.dataSysRpts->ZoneTimeVentUnocc(CtrlZoneNum) = TimeStepSys;
+ ZonePreDefRep(ActualZoneNum).TotVentTimeNonZeroUnocc += state.dataSysRpts->ZoneTimeVentUnocc(CtrlZoneNum);
}
+ // accumulate during occupancy or not
+ ZonePreDefRep(ActualZoneNum).MechVentVolTotalStdDen += state.dataSysRpts->ZoneOAVolStdRho(CtrlZoneNum);
+ ZonePreDefRep(ActualZoneNum).InfilVolTotalStdDen += ZnAirRpt(ActualZoneNum).InfilVolumeStdDensity;
+ ZonePreDefRep(ActualZoneNum).SimpVentVolTotalStdDen +=
+ ZnAirRpt(ActualZoneNum).VentilVolumeStdDensity + afnVentVol;
+ ZonePreDefRep(ActualZoneNum).VozTargetTotal += targetVoz;
+ ZonePreDefRep(ActualZoneNum).VozTargetTimeBelow += state.dataSysRpts->ZoneTimeBelowVozDyn(CtrlZoneNum);
+ ZonePreDefRep(ActualZoneNum).VozTargetTimeAt += state.dataSysRpts->ZoneTimeAtVozDyn(CtrlZoneNum);
+ ZonePreDefRep(ActualZoneNum).VozTargetTimeAbove += state.dataSysRpts->ZoneTimeAboveVozDyn(CtrlZoneNum);
// now combine Vent load from zone forced air units with primary air system
ZoneVentLoad = ZAirSysZoneVentLoad + ZFAUZoneVentLoad;
@@ -4524,7 +4780,55 @@ namespace EnergyPlus::SystemReports {
} else {
}
} // loop over controlled zones
- }
+
+ // loop over air loops
+ for (int sysNum = 1; sysNum <= NumPrimaryAirSys; ++sysNum){
+ Real64 mechVentFlow = state.dataAirLoop->AirLoopFlow(sysNum).OAFlow * state.dataEnvrn->StdRhoAir;
+ state.dataSysRpts->SysMechVentFlow(sysNum) = mechVentFlow;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysMechVentTotal += mechVentFlow;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysNatVentTotal += state.dataSysRpts->SysNatVentFlow(sysNum);;
+ // set time mechanical+natural ventilation is below, at, or above target Voz-dyn
+ // MJWToDo - InfilVolume should be NatVentVolume or similar after this is split in AFN
+ Real64 totMechNatVentVolFlowStdRho =
+ mechVentFlow + state.dataSysRpts->SysNatVentFlow(sysNum);
+
+ Real64 targetFlowVoz = state.dataSysRpts->SysTargetVentilationFlowVoz(sysNum);
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTargetVentTotalVoz += targetFlowVoz;
+ // Allow 1% tolerance
+ if (totMechNatVentVolFlowStdRho < (0.99 * targetFlowVoz)) {
+ state.dataSysRpts->SysTimeBelowVozDyn(sysNum) = TimeStepSys;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeBelowVozDynTotal += TimeStepSys;
+ }
+ else if (totMechNatVentVolFlowStdRho > (1.01 * targetFlowVoz)) {
+ state.dataSysRpts->SysTimeAboveVozDyn(sysNum) = TimeStepSys;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeAboveVozDynTotal += TimeStepSys;
+ }
+ else if (totMechNatVentVolFlowStdRho > SmallAirVolFlow) {
+ state.dataSysRpts->SysTimeAtVozDyn(sysNum) = TimeStepSys;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeAtVozDynTotal += TimeStepSys;
+ }
+ if (state.dataSysRpts->SysAnyZoneOccupied(sysNum)) {
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeOccupiedTotal += TimeStepSys;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysMechVentTotalOcc += mechVentFlow;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysNatVentTotalOcc += state.dataSysRpts->SysNatVentFlow(sysNum);
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTargetVentTotalVozOcc += targetFlowVoz;
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeBelowVozDynTotalOcc += state.dataSysRpts->SysTimeBelowVozDyn(sysNum);
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeAboveVozDynTotalOcc += state.dataSysRpts->SysTimeAboveVozDyn(sysNum);
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeAtVozDynTotalOcc += state.dataSysRpts->SysTimeAtVozDyn(sysNum);
+ } else if (totMechNatVentVolFlowStdRho > SmallAirVolFlow) {
+ state.dataSysRpts->SysPreDefRep(sysNum).SysTimeVentUnoccTotal += TimeStepSys;
+ }
+
+ }
+ // Accumulate facility totals
+ state.dataOutRptPredefined->TotalAnyZoneBelowVozDynForOA += state.dataSysRpts->AnyZoneTimeBelowVozDyn;
+ state.dataOutRptPredefined->TotalAllZonesAtVozDynForOA += state.dataSysRpts->AllZonesTimeAtVozDyn;
+ state.dataOutRptPredefined->TotalAnyZoneAboveVozDynForOA += state.dataSysRpts->AnyZoneTimeAboveVozDyn;
+ state.dataOutRptPredefined->TotalAnyZoneVentUnoccForOA += state.dataSysRpts->AnyZoneTimeVentUnocc;
+ state.dataOutRptPredefined->TotalAnyZoneBelowVozDynOccForOA += state.dataSysRpts->AnyZoneTimeBelowVozDynOcc;
+ state.dataOutRptPredefined->TotalAllZonesAtVozDynOccForOA += state.dataSysRpts->AllZonesTimeAtVozDynOcc;
+ state.dataOutRptPredefined->TotalAnyZoneAboveVozDynOccForOA += state.dataSysRpts->AnyZoneTimeAboveVozDynOcc;
+ }
void MatchPlantSys(EnergyPlusData &state,
int const AirLoopNum, // counter for zone air distribution inlets
diff --git a/src/EnergyPlus/SystemReports.hh b/src/EnergyPlus/SystemReports.hh
index 7092db71bef..581b23d0e39 100644
--- a/src/EnergyPlus/SystemReports.hh
+++ b/src/EnergyPlus/SystemReports.hh
@@ -125,6 +125,33 @@ namespace SystemReports {
}
};
+ struct SysPreDefRepType
+ {
+ Real64 SysMechVentTotal; // air loop mechanical vent total volume OA at standard density {m3}
+ Real64 SysNatVentTotal; // air loop natural vent total volume OA at standard density {m3}
+ Real64 SysTargetVentTotalVoz; // air loop target ventilation ventilation flow based on 62.1 Voz-dyn {m3}
+ Real64 SysTimeBelowVozDynTotal; // time [hrs] that mechanical+natural ventilation is < VozTarget - 1%
+ Real64 SysTimeAtVozDynTotal; // time [hrs] that mechanical+natural ventilation is = VozTarget within 1% and > zero
+ Real64 SysTimeAboveVozDynTotal; // time [hrs] that mechanical+natural ventilation is > VozTarget + 1%
+ Real64 SysMechVentTotalOcc; // air loop mechanical vent total volume OA at standard density {m3}
+ Real64 SysNatVentTotalOcc; // air loop natural vent total volume OA at standard density {m3}
+ Real64 SysTargetVentTotalVozOcc; // air loop target ventilation ventilation flow based on 62.1 Voz-dyn {m3} during occupied
+ Real64 SysTimeBelowVozDynTotalOcc; // time [hrs] that mechanical+natural ventilation is < VozTarget - 1% during occupied
+ Real64 SysTimeAtVozDynTotalOcc; // time [hrs] that mechanical+natural ventilation is = VozTarget within 1% and > zero during occ
+ Real64 SysTimeAboveVozDynTotalOcc; // time [hrs] that mechanical+natural ventilation is > VozTarget + 1% during occupied
+ Real64 SysTimeVentUnoccTotal; // time [hrs] that mechanical+natural ventilation is > zero during unoccupied
+ Real64 SysTimeOccupiedTotal; // time [hrs] that any zone is occupied
+
+ // Default Constructor
+ SysPreDefRepType()
+ : SysMechVentTotal(0.0), SysNatVentTotal(0.0), SysTargetVentTotalVoz(0.0), SysTimeBelowVozDynTotal(0.0), SysTimeAtVozDynTotal(0.0),
+ SysTimeAboveVozDynTotal(0.0), SysMechVentTotalOcc(0.0), SysNatVentTotalOcc(0.0), SysTargetVentTotalVozOcc(0.0),
+ SysTimeBelowVozDynTotalOcc(0.0), SysTimeAtVozDynTotalOcc(0.0), SysTimeAboveVozDynTotalOcc(0.0), SysTimeVentUnoccTotal(0.0),
+ SysTimeOccupiedTotal(0.0)
+ {
+ }
+ };
+
// Functions
void InitEnergyReports(EnergyPlusData &state);
@@ -292,13 +319,34 @@ struct SystemReportsData : BaseGlobalStruct {
Array1D SysHCCompSteam;
Array1D SysDomesticH2O;
- Array1D ZoneOAMassFlow; // zone mech vent mass flow rate {kg/s}
- Array1D ZoneOAMass; // zone mech vent total mass for time {kg}
- Array1D ZoneOAVolFlowStdRho; // zone mech vent volume flow rate at standard density {m3/s}
- Array1D ZoneOAVolStdRho; // zone mech vent total volume OA at standard density {m3/s}
- Array1D ZoneOAVolFlowCrntRho; // zone mech vent volume flow rate at current density {m3/s}
- Array1D ZoneOAVolCrntRho; // zone mech vent total volume OA at current density {m3/s}
- Array1D ZoneMechACH; // zone mech vent air changes per hour {ACH}
+ Array1D ZoneOAMassFlow; // zone mech vent mass flow rate {kg/s}
+ Array1D ZoneOAMass; // zone mech vent total mass for time {kg}
+ Array1D ZoneOAVolFlowStdRho; // zone mech vent volume flow rate at standard density {m3/s}
+ Array1D ZoneOAVolStdRho; // zone mech vent total volume OA at standard density {m3}
+ Array1D ZoneOAVolFlowCrntRho; // zone mech vent volume flow rate at current density {m3/s}
+ Array1D ZoneOAVolCrntRho; // zone mech vent total volume OA at current density {m3}
+ Array1D ZoneMechACH; // zone mech vent air changes per hour {ACH}
+ Array1D ZoneTargetVentilationFlowVoz; // zone target ventilation ventilation flow based on 62.1 Voz-dyn {m3/s}
+ Array1D ZoneTimeBelowVozDyn; // time [hrs] that mechanical+natural ventilation is < VozTarget - 1%
+ Array1D ZoneTimeAtVozDyn; // time [hrs] that mechanical+natural ventilation is = VozTarget within 1% and > zero
+ Array1D ZoneTimeAboveVozDyn; // time [hrs] that mechanical+natural ventilation is > VozTarget + 1%
+ Array1D ZoneTimeVentUnocc; // time [hrs] that mechanical+natural ventilation is > zero during unoccupied
+ Real64 AnyZoneTimeBelowVozDyn = 0.0; // time [hrs] that any zone mechanical+natural ventilation is < VozTarget - 1%
+ Real64 AllZonesTimeAtVozDyn = 0.0; // time [hrs] that all zones mechanical+natural ventilation is = VozTarget within 1% and > zero
+ Real64 AnyZoneTimeAboveVozDyn = 0.0; // time [hrs] that any zone mechanical+natural ventilation is > VozTarget + 1%
+ Real64 AnyZoneTimeVentUnocc = 0.0; // time [hrs] that any zone mechanical+natural ventilation is > zero during unoccupied
+ Real64 AnyZoneTimeBelowVozDynOcc = 0.0; // time [hrs] that any zone mechanical+natural ventilation is < VozTarget - 1% during occupied
+ Real64 AllZonesTimeAtVozDynOcc = 0.0; // time [hrs] that all zones mech+nat vent is = VozTarget within 1% and > zero during occupied
+ Real64 AnyZoneTimeAboveVozDynOcc = 0.0; // time [hrs] that any zone mechanical+natural ventilation is > VozTarget + 1% during occupied
+
+ Array1D SysMechVentFlow; // air loop mechanical vent total volume OA at standard density {m3/s}
+ Array1D SysNatVentFlow; // air loop natural vent total volume OA at standard density {m3/s}
+ Array1D SysTargetVentilationFlowVoz; // air loop target ventilation ventilation flow based on 62.1 Voz-dyn {m3/s}
+ Array1D SysTimeBelowVozDyn; // time [hrs] that mechanical+natural ventilation is < VozTarget - 1%
+ Array1D SysTimeAtVozDyn; // time [hrs] that mechanical+natural ventilation is = VozTarget within 1% and > zero
+ Array1D SysTimeAboveVozDyn; // time [hrs] that mechanical+natural ventilation is > VozTarget + 1%
+ Array1D SysTimeVentUnocc; // time [hrs] that mechanical+natural ventilation is > zero during unoccupied
+ Array1D SysAnyZoneOccupied; // true if any zone on system is occupied
bool AirLoopLoadsReportEnabled = true;
bool VentLoadsReportEnabled = true;
@@ -318,6 +366,7 @@ struct SystemReportsData : BaseGlobalStruct {
Array1D_bool UnmetLoadFlag;
Array1D Vent;
+ Array1D SysPreDefRep;
bool OneTimeFlag_FindFirstLastPtr = true;
bool OneTimeFlag_InitEnergyReports = true;
@@ -398,6 +447,26 @@ struct SystemReportsData : BaseGlobalStruct {
this->ZoneOAVolFlowCrntRho.deallocate();
this->ZoneOAVolCrntRho.deallocate();
this->ZoneMechACH.deallocate();
+ this->ZoneTargetVentilationFlowVoz.deallocate();
+ this->ZoneTimeBelowVozDyn.deallocate();
+ this->ZoneTimeAtVozDyn.deallocate();
+ this->ZoneTimeAboveVozDyn.deallocate();
+ this->ZoneTimeVentUnocc.deallocate();
+ this->AnyZoneTimeBelowVozDyn = 0.0;
+ this->AllZonesTimeAtVozDyn = 0.0;
+ this->AnyZoneTimeAboveVozDyn = 0.0;
+ this->AnyZoneTimeVentUnocc = 0.0;
+ this->AnyZoneTimeBelowVozDynOcc = 0.0;
+ this->AllZonesTimeAtVozDynOcc = 0.0;
+ this->AnyZoneTimeAboveVozDynOcc = 0.0;
+ this->SysMechVentFlow = 0.0;
+ this->SysNatVentFlow = 0.0;
+ this->SysTargetVentilationFlowVoz.deallocate();
+ this->SysTimeBelowVozDyn.deallocate();
+ this->SysTimeAtVozDyn.deallocate();
+ this->SysTimeAboveVozDyn.deallocate();
+ this->SysTimeVentUnocc.deallocate();
+ this->SysAnyZoneOccupied.deallocate();
this->AirLoopLoadsReportEnabled = true;
this->VentLoadsReportEnabled = true;
this->VentEnergyReportEnabled = false;
@@ -414,6 +483,7 @@ struct SystemReportsData : BaseGlobalStruct {
this->NoLoadFlag.deallocate();
this->UnmetLoadFlag.deallocate();
this->Vent.deallocate();
+ this->SysPreDefRep.deallocate();
this->OneTimeFlag_FindFirstLastPtr = true;
this->OneTimeFlag_InitEnergyReports = true;
this->OneTimeFlag_UpdateZoneCompPtrArray = true;
diff --git a/src/EnergyPlus/UFADManager.cc b/src/EnergyPlus/UFADManager.cc
index d6b2cdc156a..a107fdf2d46 100644
--- a/src/EnergyPlus/UFADManager.cc
+++ b/src/EnergyPlus/UFADManager.cc
@@ -212,7 +212,7 @@ namespace UFADManager {
if (SurfNum == 0) continue;
if (Surface(SurfNum).ExtBoundCond == ExternalEnvironment || Surface(SurfNum).ExtBoundCond == OtherSideCoefNoCalcExt ||
Surface(SurfNum).ExtBoundCond == OtherSideCoefCalcExt || Surface(SurfNum).ExtBoundCond == OtherSideCondModeledExt) {
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
++NumShadesDown;
}
}
@@ -971,7 +971,7 @@ namespace UFADManager {
Real64 HeightOccupiedSubzoneAve; // Height of center of occupied air subzone
Real64 ZoneMult; // total zone multiplier
int ZoneNodeNum; // node number of the HVAC zone node
- Array1D_int IntGainTypesOccupied(29,
+ Array1D_int IntGainTypesOccupied(30,
{IntGainTypeOf_People,
IntGainTypeOf_WaterHeaterMixed,
IntGainTypeOf_WaterHeaterStratified,
@@ -991,6 +991,7 @@ namespace UFADManager {
IntGainTypeOf_ElectricLoadCenterInverterSimple,
IntGainTypeOf_ElectricLoadCenterInverterFunctionOfPower,
IntGainTypeOf_ElectricLoadCenterInverterLookUpTable,
+ IntGainTypeOf_ElectricLoadCenterStorageLiIonNmcBattery,
IntGainTypeOf_ElectricLoadCenterStorageBattery,
IntGainTypeOf_ElectricLoadCenterStorageSimple,
IntGainTypeOf_PipeIndoor,
@@ -1445,7 +1446,7 @@ namespace UFADManager {
int ZoneNodeNum; // node number of the HVAC zone node
static Real64 TempDepCoef(0.0); // Formerly CoefSumha, coef in zone temp equation with dimensions of h*A
static Real64 TempIndCoef(0.0); // Formerly CoefSumhat, coef in zone temp equation with dimensions of h*A(T1
- static Array1D_int IntGainTypesOccupied(29,
+ static Array1D_int IntGainTypesOccupied(30,
{IntGainTypeOf_People,
IntGainTypeOf_WaterHeaterMixed,
IntGainTypeOf_WaterHeaterStratified,
@@ -1466,6 +1467,7 @@ namespace UFADManager {
IntGainTypeOf_ElectricLoadCenterInverterFunctionOfPower,
IntGainTypeOf_ElectricLoadCenterInverterLookUpTable,
IntGainTypeOf_ElectricLoadCenterStorageBattery,
+ IntGainTypeOf_ElectricLoadCenterStorageLiIonNmcBattery,
IntGainTypeOf_ElectricLoadCenterStorageSimple,
IntGainTypeOf_PipeIndoor,
IntGainTypeOf_RefrigerationCase,
diff --git a/src/EnergyPlus/VentilatedSlab.cc b/src/EnergyPlus/VentilatedSlab.cc
index a6e015ca7b4..a6372b0e3b3 100644
--- a/src/EnergyPlus/VentilatedSlab.cc
+++ b/src/EnergyPlus/VentilatedSlab.cc
@@ -4459,7 +4459,7 @@ namespace VentilatedSlab {
Area = Surface(SurfNum).Area;
if (Surface(SurfNum).Class == SurfaceClass::Window) {
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The area is the shade or blind are = sum of the glazing area and the divider area (which is zero if no divider)
Area += SurfWinDividerArea(SurfNum);
}
@@ -4470,8 +4470,7 @@ namespace VentilatedSlab {
SurfWinFrameTempSurfIn(SurfNum);
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn &&
- SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf += HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) *
SurfWinDividerTempSurfIn(SurfNum);
diff --git a/src/EnergyPlus/WaterThermalTanks.cc b/src/EnergyPlus/WaterThermalTanks.cc
index 68f00b407f0..b7328bfadb2 100644
--- a/src/EnergyPlus/WaterThermalTanks.cc
+++ b/src/EnergyPlus/WaterThermalTanks.cc
@@ -11855,6 +11855,87 @@ namespace WaterThermalTanks {
}
}
+ bool GetHeatPumpWaterHeaterNodeNumber(EnergyPlusData &state, int const NodeNumber)
+ {
+ // PURPOSE OF THIS FUNCTION:
+ // Check if a node is used by a heat pump water heater
+ // and can be excluded from an airflow network.
+
+ // Return value
+ bool HeatPumpWaterHeaterNodeException;
+
+ int HeatPumpWaterHeaterIndex;
+
+ if (state.dataWaterThermalTanks->getWaterThermalTankInputFlag) {
+ GetWaterThermalTankInput(state);
+ state.dataWaterThermalTanks->getWaterThermalTankInputFlag = false;
+ }
+
+ HeatPumpWaterHeaterNodeException = false;
+
+ for (HeatPumpWaterHeaterIndex = 1; HeatPumpWaterHeaterIndex <= state.dataWaterThermalTanks->numHeatPumpWaterHeater; ++HeatPumpWaterHeaterIndex) {
+
+ // Get heat pump water heater data
+ HeatPumpWaterHeaterData &HPWH = state.dataWaterThermalTanks->HPWaterHeater(HeatPumpWaterHeaterIndex);
+
+ // "Zone and outdoor air" configuration is expected break the conservation of mass
+ if (HPWH.InletAirConfiguration != AmbientTempEnum::ZoneAndOA) {
+
+ // Air outlet node
+ if (NodeNumber == HPWH.HeatPumpAirOutletNode) {
+ HeatPumpWaterHeaterNodeException = true;
+ break;
+ }
+
+ // Air inlet node
+ if (NodeNumber == HPWH.HeatPumpAirInletNode) {
+ HeatPumpWaterHeaterNodeException = true;
+ break;
+ }
+
+ // Get fan inlet node index
+ bool ErrorsFound{false};
+ int FanInletNodeIndex(0);
+ if (HPWH.FanType_Num == DataHVACGlobals::FanType_SystemModelObject) {
+ FanInletNodeIndex = HVACFan::fanObjs[HPWH.FanNum]->inletNodeNum;
+ } else {
+ FanInletNodeIndex = Fans::GetFanInletNode(state, HPWH.FanType, HPWH.FanName, ErrorsFound);
+ if (ErrorsFound) {
+ ShowWarningError(state, "Could not retrieve fan outlet node for this unit=\"" + HPWH.Name + "\".");
+ ErrorsFound = true;
+ }
+ }
+
+ // Fan inlet node
+ if (NodeNumber == FanInletNodeIndex) {
+ HeatPumpWaterHeaterNodeException = true;
+ break;
+ }
+
+ // Fan outlet node
+ if (NodeNumber == HPWH.FanOutletNode) {
+ HeatPumpWaterHeaterNodeException = true;
+ break;
+ }
+
+ // Outside air node
+ if (NodeNumber == HPWH.OutsideAirNode) {
+ HeatPumpWaterHeaterNodeException = true;
+ break;
+ }
+
+ // Exhaust air node
+ if (NodeNumber == HPWH.ExhaustAirNode) {
+ HeatPumpWaterHeaterNodeException = true;
+ break;
+ }
+
+ }
+ }
+
+ return HeatPumpWaterHeaterNodeException;
+ }
+
} // namespace WaterThermalTanks
} // namespace EnergyPlus
diff --git a/src/EnergyPlus/WaterThermalTanks.hh b/src/EnergyPlus/WaterThermalTanks.hh
index 7845673cb10..95952fa081a 100644
--- a/src/EnergyPlus/WaterThermalTanks.hh
+++ b/src/EnergyPlus/WaterThermalTanks.hh
@@ -894,6 +894,8 @@ namespace WaterThermalTanks {
int getHPTankIDX(EnergyPlusData &state, std::string const &CompName, int &CompIndex);
+ bool GetHeatPumpWaterHeaterNodeNumber(EnergyPlusData &state, int const NodeNumber);
+
} // namespace WaterThermalTanks
struct WaterThermalTanksData : BaseGlobalStruct {
diff --git a/src/EnergyPlus/WindowComplexManager.cc b/src/EnergyPlus/WindowComplexManager.cc
index ae162afb40c..c22e1351205 100644
--- a/src/EnergyPlus/WindowComplexManager.cc
+++ b/src/EnergyPlus/WindowComplexManager.cc
@@ -2638,7 +2638,7 @@ namespace WindowComplexManager {
int k; // Layer counter
int SurfNumAdj; // An interzone surface's number in the adjacent zone
int ZoneNumAdj; // An interzone surface's adjacent zone number
- int ShadeFlag; // Flag indicating whether shade or blind is on, and shade/blind position
+ WinShadingType ShadeFlag; // Flag indicating whether shade or blind is on, and shade/blind position
int IMix;
Real64 IncidentSolar; // Solar incident on outside of window (W)
@@ -2897,7 +2897,7 @@ namespace WindowComplexManager {
// outdoor wind speed
if (!Surface(SurfNum).ExtWind) {
wso = 0.0; // No wind exposure
- // ELSE IF (Surface(SurfNum)%Class == SurfaceClass::Window .AND. SurfaceWindow(SurfNum)%ShadingFlag == ExtShadeOn) THEN
+ // ELSE IF (Surface(SurfNum)%Class == SurfaceClass::Window .AND. SurfaceWindow(SurfNum)%ShadingFlag == WinShadingType::ExtShade) THEN
// wso = 0.0 ! Assume zero wind speed at outside glass surface of window with exterior shade
} else {
wso = Surface(SurfNum).WindSpeed;
@@ -3294,7 +3294,7 @@ namespace WindowComplexManager {
SurfOutsideEmiss = emis(1);
IncidentSolar = Surface(SurfNum).Area * SurfQRadSWOutIncident(SurfNum);
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
// Interior shade or blind
ConvHeatFlowNatural = -qv(nlayer) * height * width;
@@ -3340,7 +3340,7 @@ namespace WindowComplexManager {
SurfWinGainConvGlazToZoneRep(SurfNum) = ConvHeatGainFrZoneSideOfGlass;
SurfWinGainIRGlazToZoneRep(SurfNum) = NetIRHeatGainGlass;
// need to report convective heat flow from the gap in case of exterior shade
- if (ShadeFlag == ExtShadeOn) {
+ if (ShadeFlag == WinShadingType::ExtShade) {
ConvHeatFlowNatural = -qv(2) * height * width; // qv(1) is exterior environment
SurfWinGapConvHtFlowRep(SurfNum) = ConvHeatFlowNatural;
@@ -3400,9 +3400,9 @@ namespace WindowComplexManager {
// TransDiff = Construct(ConstrNum).TransDiff;
int IState = SurfaceWindow(SurfNum).ComplexFen.NumStates;
Real64 TransDiff = SurfaceWindow(SurfNum).ComplexFen.State(IState).WinDiffTrans;
- // ELSE IF(ShadeFlag==IntShadeOn .OR. ShadeFlag==ExtShadeOn) THEN
+ // ELSE IF(ShadeFlag==WinShadingType::IntShade .OR. ShadeFlag==WinShadingType::ExtShade) THEN
// TransDiff = Construct(ConstrNum)%TransDiff
- // ELSE IF(ShadeFlag==IntBlindOn .OR. ShadeFlag==ExtBlindOn .OR.ShadeFlag==BGBlindOn) THEN
+ // ELSE IF(ShadeFlag==WinShadingType::IntBlind .OR. ShadeFlag==WinShadingType::ExtBlind .OR.ShadeFlag==WinShadingType::BGBlind) THEN
// TransDiff = InterpSlatAng(SurfaceWindow(SurfNum)%SlatAngThisTS,SurfaceWindow(SurfNum)%MovableSlats, &
// Construct(ConstrNumSh)%BlTransDiff)
// ELSE IF(ShadeFlag == SwitchableGlazing) THEN
@@ -3413,7 +3413,7 @@ namespace WindowComplexManager {
SurfWinHeatTransfer(SurfNum) -= QS(Surface(SurfNum).SolarEnclIndex) * Surface(SurfNum).Area * TransDiff;
SurfWinLossSWZoneToOutWinRep(SurfNum) = QS(Surface(SurfNum).SolarEnclIndex) * Surface(SurfNum).Area * TransDiff;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn) {
+ if (ShadeFlag == WinShadingType::IntShade || ShadeFlag == WinShadingType::ExtShade) {
SurfWinShadingAbsorbedSolar(SurfNum) = (SurfWinExtBeamAbsByShade(SurfNum) + SurfWinExtDiffAbsByShade(SurfNum)) *
(Surface(SurfNum).Area + SurfWinDividerArea(SurfNum));
SurfWinShadingAbsorbedSolarEnergy(SurfNum) = SurfWinShadingAbsorbedSolar(SurfNum) * state.dataGlobal->TimeStepZoneSec;
@@ -3431,9 +3431,9 @@ namespace WindowComplexManager {
}
// Save hcv for use in divider calc with interior or exterior shade (see CalcWinFrameAndDividerTemps)
- if (ShadeFlag == IntShadeOn) SurfWinConvCoeffWithShade(SurfNum) = 0.0;
+ if (ShadeFlag == WinShadingType::IntShade) SurfWinConvCoeffWithShade(SurfNum) = 0.0;
- if (ShadeFlag == IntShadeOn) {
+ if (ShadeFlag == WinShadingType::IntShade) {
SurfInsideTemp = theta(2 * ngllayer + 2) - DataGlobalConstants::KelvinConv;
// // Get properties of inside shading layer
diff --git a/src/EnergyPlus/WindowManager.cc b/src/EnergyPlus/WindowManager.cc
index f2ec73e9230..28515b7dda8 100644
--- a/src/EnergyPlus/WindowManager.cc
+++ b/src/EnergyPlus/WindowManager.cc
@@ -1512,7 +1512,6 @@ namespace WindowManager {
int NumHorDividers; // Number of horizontal divider elements
int NumVertDividers; // Number of vertical divider elements
int BaseSurfNum; // Base surface number
- int ShadingType; // Window shading type
int MatNum; // Material number
int DifOverrideCount; // Count the number of SolarDiffusing material overrides
@@ -1545,8 +1544,8 @@ namespace WindowManager {
if (Surface(SurfNum).HasShadeControl) {
for (int winShadCtrl : Surface(SurfNum).windowShadingControlList) {
- ShadingType = WindowShadingControl(winShadCtrl).ShadingType;
- if (ShadingType == WSC_ST_ExteriorScreen) {
+ WinShadingType ShadingType = WindowShadingControl(winShadCtrl).ShadingType;
+ if (ShadingType == WinShadingType::ExtScreen) {
// Count number of exterior window screens, initialize in InitGlassOpticalCalculations after returning
// from this subroutine. The blind structure is initialized first and then the screen structure is initialized.
++NumSurfaceScreens;
@@ -1616,7 +1615,7 @@ namespace WindowManager {
if (!Surface(SurfNum).HasShadeControl) {
SurfWinSolarDiffusing(SurfNum) = true;
} else { // There is a shading control
- if (WindowShadingControl(Surface(SurfNum).activeWindowShadingControl).ShadingType == SwitchableGlazing) {
+ if (WindowShadingControl(Surface(SurfNum).activeWindowShadingControl).ShadingType == WinShadingType::SwitchableGlazing) {
SurfWinSolarDiffusing(SurfNum) = true;
} else {
SurfWinSolarDiffusing(SurfNum) = false;
@@ -2064,7 +2063,7 @@ namespace WindowManager {
int IGap; // Gap layer number (1,2,...)
int IMix; // Gas number in a mixture of gases
int ICoeff; // Gas property index (1,2,3)
- int ShadeFlag; // Flag indicating whether shade or blind is on, and shade/blind position
+ WinShadingType ShadeFlag; // Flag indicating whether shade or blind is on, and shade/blind position
int k; // Layer counter
// REAL(r64) :: tsky ! Sky temperature [K]
int ShadeLayPtr; // Material number corresponding to a shade layer
@@ -2321,8 +2320,7 @@ namespace WindowManager {
// blind/shade and glass 3.
IConst = ConstrNum;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == BGBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag) || ANY_BLIND(ShadeFlag)) {
IConst = surface.activeShadedConstruction;
if (SurfWinStormWinFlag(SurfNum) > 0) IConst = surface.activeStormWinShadedConstruction;
}
@@ -2346,13 +2344,13 @@ namespace WindowManager {
}
if (state.dataMaterial->Material(LayPtr).Group == Shade || state.dataMaterial->Material(LayPtr).Group == WindowBlind || state.dataMaterial->Material(LayPtr).Group == Screen) {
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) ShadeLayPtr = state.dataConstruction->Construct(IConst).LayerPoint(state.dataConstruction->Construct(IConst).TotLayers);
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) ShadeLayPtr = state.dataConstruction->Construct(IConst).LayerPoint(1);
- if (ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) ShadeLayPtr = state.dataConstruction->Construct(IConst).LayerPoint(state.dataConstruction->Construct(IConst).TotLayers);
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) ShadeLayPtr = state.dataConstruction->Construct(IConst).LayerPoint(1);
+ if (ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
ShadeLayPtr = state.dataConstruction->Construct(IConst).LayerPoint(3);
if (TotGlassLay == 3) ShadeLayPtr = state.dataConstruction->Construct(IConst).LayerPoint(5);
}
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag)) {
// Shade or screen on
if (state.dataGlobal->AnyEnergyManagementSystemInModel) { // check to make sure the user hasn't messed up the shade control values
if (state.dataMaterial->Material(ShadeLayPtr).Group == WindowBlind) {
@@ -2364,7 +2362,7 @@ namespace WindowManager {
}
state.dataWindowManager->thick(TotGlassLay + 1) = state.dataMaterial->Material(ShadeLayPtr).Thickness;
state.dataWindowManager->scon(TotGlassLay + 1) = state.dataMaterial->Material(ShadeLayPtr).Conductivity / state.dataMaterial->Material(ShadeLayPtr).Thickness;
- if (ShadeFlag == ExtScreenOn) {
+ if (ShadeFlag == WinShadingType::ExtScreen) {
state.dataWindowManager->emis(state.dataWindowManager->nglface + 1) = state.dataMaterial->Material(ShadeLayPtr).AbsorpThermalFront;
state.dataWindowManager->tir(state.dataWindowManager->nglface + 1) = SurfaceScreens(state.dataMaterial->Material(ShadeLayPtr).ScreenDataPtr).DifDifTrans;
state.dataWindowManager->tir(state.dataWindowManager->nglface + 2) = SurfaceScreens(state.dataMaterial->Material(ShadeLayPtr).ScreenDataPtr).DifDifTrans;
@@ -2412,12 +2410,11 @@ namespace WindowManager {
} // End of loop over glass, gap and blind/shade layers in a window construction
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn ||
- ShadeFlag == ExtScreenOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag) || ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
// Interior or exterior blind, shade or screen is on.
// Fill gap between blind/shade and adjacent glass with air properties.
++IGap;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == ExtScreenOn) { // Interior or exterior shade
+ if (ShadeFlag == WinShadingType::IntShade || ShadeFlag == WinShadingType::ExtShade || ShadeFlag == WinShadingType::ExtScreen) { // Interior or exterior shade
state.dataWindowManager->gap(IGap) = state.dataMaterial->Material(ShadeLayPtr).WinShadeToGlassDist;
} else { // Interior or exterior blind
state.dataWindowManager->gap(IGap) = Blind(SurfWinBlindNumber(SurfNum)).BlindToGlassDist;
@@ -2564,7 +2561,7 @@ namespace WindowManager {
dth3 = state.dataWindowManager->thetas(6) - state.dataWindowManager->thetas(5);
dth4 = state.dataWindowManager->thetas(8) - state.dataWindowManager->thetas(7);
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
SurfInsideTemp = state.dataWindowManager->thetas(2 * state.dataWindowManager->ngllayer + 2) - state.dataWindowManager->TKelvin;
EffShBlEmiss = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), window.EffShBlindEmiss);
EffGlEmiss = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), window.EffGlassEmiss);
@@ -2572,7 +2569,7 @@ namespace WindowManager {
} else {
SurfInsideTemp = state.dataWindowManager->thetas(2 * state.dataWindowManager->ngllayer) - state.dataWindowManager->TKelvin;
}
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
SurfOutsideTemp = state.dataWindowManager->thetas(2 * state.dataWindowManager->ngllayer + 1) - state.dataWindowManager->TKelvin; // this index looks suspicious (CR 8202)
// SurfOutsideEmiss = emis(1) ! this index should be coordinated with previous line
SurfOutsideEmiss = state.dataWindowManager->emis(2 * state.dataWindowManager->ngllayer + 1); // fix for CR 8202
@@ -2887,7 +2884,7 @@ namespace WindowManager {
// 2=exterior shade/blind
Real64 TauShIR; // Long-wave transmittance of isolated shade/blind
Real64 sconsh; // shade/blind conductance (W/m2-K)
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
// Real64 ShadeAbsFac1; // Fractions for apportioning absorbed radiation to shade/blind faces
// Real64 ShadeAbsFac2;
static Array1D AbsRadShadeFace(2); // Solar radiation, short-wave radiation from lights, and long-wave //Tuned Made static
@@ -2939,22 +2936,21 @@ namespace WindowManager {
AbsRadShadeFace = 0.0;
TGapNew = 0.0;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == BGBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag) || ANY_BLIND(ShadeFlag)) {
state.dataWindowManager->nglfacep = state.dataWindowManager->nglface + 2;
AbsRadShadeFace(1) = DataSurfaces::AbsFrontSide(SurfNum);
AbsRadShadeFace(2) = DataSurfaces::AbsBackSide(SurfNum);
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) AbsRadShadeFace(2) += SurfWinIntLWAbsByShade(SurfNum);
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) AbsRadShadeFace(2) += SurfWinIntLWAbsByShade(SurfNum);
sconsh = state.dataWindowManager->scon(state.dataWindowManager->ngllayer + 1);
TauShIR = state.dataWindowManager->tir(state.dataWindowManager->nglface + 1);
EpsShIR1 = state.dataWindowManager->emis(state.dataWindowManager->nglface + 1);
EpsShIR2 = state.dataWindowManager->emis(state.dataWindowManager->nglface + 2);
RhoShIR1 = max(0.0, 1.0 - TauShIR - EpsShIR1);
RhoShIR2 = max(0.0, 1.0 - TauShIR - EpsShIR2);
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
RhoGlIR2 = 1.0 - state.dataWindowManager->emis(2 * state.dataWindowManager->ngllayer);
ShGlReflFacIR = 1.0 - RhoGlIR2 * RhoShIR1;
- } else if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ } else if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
RhoGlIR1 = 1.0 - state.dataWindowManager->emis(1);
ShGlReflFacIR = 1.0 - RhoGlIR1 * RhoShIR2;
}
@@ -2986,7 +2982,7 @@ namespace WindowManager {
(Surface(SurfNum).IntConvCoeff == -2)) {
// coef model is "detailed" and not prescribed by user
// need to find inside face index, varies with shade/blind etc.
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
InsideFaceIndex = state.dataWindowManager->nglfacep;
} else {
InsideFaceIndex = state.dataWindowManager->nglface;
@@ -3002,8 +2998,7 @@ namespace WindowManager {
// coefficient from glass and shade/blind to gap between glass and shade/blind,
// effective gap air temperature, velocity of air in gap and gap outlet temperature.
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn ||
- ShadeFlag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag) || ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
ExtOrIntShadeNaturalFlow(state, SurfNum, iter, VGap, TGapNew, TGapOutlet, hcv, ConvHeatFlowNatural);
if (iter >= 1) {
hcv = 0.5 * (hcvPrev + hcv);
@@ -3019,7 +3014,7 @@ namespace WindowManager {
// get glass-to-air forced convection heat transfer coefficient, average gap air temperature, and
// convective heat flow from gap.
- if (ShadeFlag != BGShadeOn && ShadeFlag != BGBlindOn && SurfWinAirflowThisTS(SurfNum) > 0.0) {
+ if (!ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag) && SurfWinAirflowThisTS(SurfNum) > 0.0) {
BetweenGlassForcedFlow(state, SurfNum, iter, VAirflowGap, TAirflowGapNew, TAirflowGapOutlet, hcvAirflowGap, ConvHeatFlowForced);
}
@@ -3028,7 +3023,7 @@ namespace WindowManager {
// Also get average gas temperature in the two gaps, and, for airflow window, the sum of the
// convective heat flows from the gaps.
- if (ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn) {
+ if (ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
if (SurfWinAirflowThisTS(SurfNum) == 0.0) { // Natural convection in gaps
BetweenGlassShadeNaturalFlow(state, SurfNum, iter, VGap, TGapNewBG, hcvBG);
} else { // Forced convection in gaps
@@ -3052,7 +3047,7 @@ namespace WindowManager {
Aface(1, 2) = -state.dataWindowManager->scon(1);
Aface(2, 2) = hr(2) + state.dataWindowManager->scon(1) + state.dataWindowManager->hcin;
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
Bface(2) = state.dataWindowManager->Rmir * state.dataWindowManager->emis(2) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(2);
Bface(3) = state.dataWindowManager->Rmir * TauShIR * RhoGlIR2 * EpsShIR1 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(1);
Bface(4) = state.dataWindowManager->Rmir * EpsShIR2 + state.dataWindowManager->hcin * state.dataWindowManager->tin + AbsRadShadeFace(2);
@@ -3066,7 +3061,7 @@ namespace WindowManager {
Aface(4, 4) = hr(4) + sconsh + state.dataWindowManager->hcin;
}
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
Bface(1) = state.dataWindowManager->Outir * state.dataWindowManager->emis(1) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(1);
Bface(3) = state.dataWindowManager->Outir * EpsShIR1 + state.dataWindowManager->hcout * state.dataWindowManager->tout + AbsRadShadeFace(1);
Bface(4) = state.dataWindowManager->Outir * TauShIR * RhoGlIR1 * EpsShIR2 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(2);
@@ -3108,7 +3103,7 @@ namespace WindowManager {
Aface(3, 4) = -state.dataWindowManager->scon(2);
Aface(4, 4) = hr(4) + state.dataWindowManager->scon(2) + state.dataWindowManager->hcin;
- if (ShadeFlag != BGShadeOn && ShadeFlag != BGBlindOn && SurfWinAirflowThisTS(SurfNum) > 0.0) {
+ if (!ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag) && SurfWinAirflowThisTS(SurfNum) > 0.0) {
Bface(2) = state.dataWindowManager->AbsRadGlassFace(2) + hcvAirflowGap * TAirflowGapNew;
Bface(3) = state.dataWindowManager->AbsRadGlassFace(3) + hcvAirflowGap * TAirflowGapNew;
Aface(2, 2) = state.dataWindowManager->scon(1) + hcvAirflowGap - state.dataWindowManager->A23P * hr(2);
@@ -3117,7 +3112,7 @@ namespace WindowManager {
Aface(3, 3) = hcvAirflowGap + state.dataWindowManager->scon(2) + state.dataWindowManager->A32P * hr(3);
}
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
Bface(4) = state.dataWindowManager->Rmir * state.dataWindowManager->emis(4) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(4);
Bface(5) = state.dataWindowManager->Rmir * TauShIR * RhoGlIR2 * EpsShIR1 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(1);
Bface(6) = state.dataWindowManager->Rmir * EpsShIR2 + state.dataWindowManager->hcin * state.dataWindowManager->tin + AbsRadShadeFace(2);
@@ -3131,7 +3126,7 @@ namespace WindowManager {
Aface(6, 6) = hr(6) + sconsh + state.dataWindowManager->hcin;
}
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
Bface(1) = state.dataWindowManager->Outir * state.dataWindowManager->emis(1) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(1);
Bface(5) = state.dataWindowManager->Outir * EpsShIR1 + state.dataWindowManager->hcout * state.dataWindowManager->tout + AbsRadShadeFace(1);
Bface(6) = state.dataWindowManager->Outir * TauShIR * RhoGlIR1 * EpsShIR2 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(2);
@@ -3145,7 +3140,7 @@ namespace WindowManager {
Aface(6, 6) = hr(6) * (1 - RhoGlIR1 * (EpsShIR2 + RhoShIR2)) / ShGlReflFacIR + sconsh + hcv;
}
- if (ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn) {
+ if (ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
for (i = 1; i <= 6; ++i) {
RhoIR(i) = max(0.0, 1.0 - state.dataWindowManager->tir(i) - state.dataWindowManager->emis(i));
}
@@ -3226,7 +3221,7 @@ namespace WindowManager {
Aface(5, 6) = -state.dataWindowManager->scon(3);
Aface(6, 6) = hr(6) + state.dataWindowManager->scon(3) + state.dataWindowManager->hcin;
- if (ShadeFlag != BGShadeOn && ShadeFlag != BGBlindOn && SurfWinAirflowThisTS(SurfNum) > 0.0) {
+ if (!ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag) && SurfWinAirflowThisTS(SurfNum) > 0.0) {
Bface(4) = state.dataWindowManager->AbsRadGlassFace(4) + hcvAirflowGap * TAirflowGapNew;
Bface(5) = state.dataWindowManager->AbsRadGlassFace(5) + hcvAirflowGap * TAirflowGapNew;
Aface(4, 4) = state.dataWindowManager->scon(2) + hcvAirflowGap - state.dataWindowManager->A45P * hr(4);
@@ -3235,7 +3230,7 @@ namespace WindowManager {
Aface(5, 5) = hcvAirflowGap + state.dataWindowManager->scon(3) + state.dataWindowManager->A54P * hr(5);
}
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
Bface(6) = state.dataWindowManager->Rmir * state.dataWindowManager->emis(6) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(6);
Bface(7) = state.dataWindowManager->Rmir * TauShIR * RhoGlIR2 * EpsShIR1 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(1);
Bface(8) = state.dataWindowManager->Rmir * EpsShIR2 + state.dataWindowManager->hcin * state.dataWindowManager->tin + AbsRadShadeFace(2);
@@ -3247,9 +3242,7 @@ namespace WindowManager {
Aface(8, 7) = -sconsh;
Aface(7, 8) = -sconsh;
Aface(8, 8) = hr(8) + sconsh + state.dataWindowManager->hcin;
- }
-
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ } else if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
Bface(1) = state.dataWindowManager->Outir * state.dataWindowManager->emis(1) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(1);
Bface(7) = state.dataWindowManager->Outir * EpsShIR1 + state.dataWindowManager->hcout * state.dataWindowManager->tout + AbsRadShadeFace(1);
Bface(8) = state.dataWindowManager->Outir * TauShIR * RhoGlIR1 * EpsShIR2 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(2);
@@ -3261,9 +3254,7 @@ namespace WindowManager {
Aface(1, 8) = -hr(1) * EpsShIR2 / ShGlReflFacIR;
Aface(7, 8) = -sconsh;
Aface(8, 8) = hr(8) * (1 - RhoGlIR1 * (EpsShIR2 + RhoShIR2)) / ShGlReflFacIR + sconsh + hcv;
- }
-
- if (ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
for (i = 1; i <= 8; ++i) {
RhoIR(i) = max(0.0, 1.0 - state.dataWindowManager->tir(i) - state.dataWindowManager->emis(i));
}
@@ -3361,7 +3352,7 @@ namespace WindowManager {
Aface(7, 8) = -state.dataWindowManager->scon(4);
Aface(8, 8) = hr(8) + state.dataWindowManager->scon(4) + state.dataWindowManager->hcin;
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
Bface(8) = state.dataWindowManager->Rmir * state.dataWindowManager->emis(8) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(8);
Bface(9) = state.dataWindowManager->Rmir * TauShIR * RhoGlIR2 * EpsShIR1 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(1);
Bface(10) = state.dataWindowManager->Rmir * EpsShIR2 + state.dataWindowManager->hcin * state.dataWindowManager->tin + AbsRadShadeFace(2);
@@ -3375,7 +3366,7 @@ namespace WindowManager {
Aface(10, 10) = hr(10) + sconsh + state.dataWindowManager->hcin;
}
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
Bface(1) = state.dataWindowManager->Outir * state.dataWindowManager->emis(1) * TauShIR / ShGlReflFacIR + hcv * TGapNew + state.dataWindowManager->AbsRadGlassFace(1);
Bface(9) = state.dataWindowManager->Outir * EpsShIR1 + state.dataWindowManager->hcout * state.dataWindowManager->tout + AbsRadShadeFace(1);
Bface(10) = state.dataWindowManager->Outir * TauShIR * RhoGlIR1 * EpsShIR2 / ShGlReflFacIR + hcv * TGapNew + AbsRadShadeFace(2);
@@ -3427,7 +3418,7 @@ namespace WindowManager {
// For all cases, get total window heat gain for reporting. See CalcWinFrameAndDividerTemps for
// contribution of frame and divider.
IncidentSolar = Surface(SurfNum).Area * SurfQRadSWOutIncident(SurfNum);
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
// Interior shade or blind
SurfWinConvHeatFlowNatural(SurfNum) = ConvHeatFlowNatural;
// Window heat gain from glazing and shade/blind to zone. Consists of transmitted solar, convection
@@ -3508,14 +3499,14 @@ namespace WindowManager {
}
TransDiff = state.dataConstruction->Construct(ConstrNum).TransDiff; // Default value for TransDiff here
- if (ShadeFlag <= 0) {
+ if (NOT_SHADED(ShadeFlag)) {
TransDiff = state.dataConstruction->Construct(ConstrNum).TransDiff;
- } else if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == BGShadeOn || ShadeFlag == ExtScreenOn) {
+ } else if (ANY_SHADE_SCREEN(ShadeFlag)) {
TransDiff = state.dataConstruction->Construct(ConstrNumSh).TransDiff;
- } else if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BLIND(ShadeFlag)) {
TransDiff =
InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), state.dataConstruction->Construct(ConstrNumSh).BlTransDiff);
- } else if (ShadeFlag == SwitchableGlazing) {
+ } else if (ShadeFlag == WinShadingType::SwitchableGlazing) {
TransDiff = InterpSw(SurfWinSwitchingFactor(SurfNum), state.dataConstruction->Construct(ConstrNum).TransDiff, state.dataConstruction->Construct(ConstrNumSh).TransDiff);
}
SurfWinHeatGain(SurfNum) -= QS(Surface(SurfNum).SolarEnclIndex) * Surface(SurfNum).Area * TransDiff;
@@ -3523,8 +3514,7 @@ namespace WindowManager {
// shouldn't this be + outward flowing fraction of absorbed SW? -- do not know whose comment this is? LKL (9/2012)
SurfWinLossSWZoneToOutWinRep(SurfNum) = QS(Surface(SurfNum).SolarEnclIndex) * Surface(SurfNum).Area * TransDiff;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == BGBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag) || ANY_BLIND(ShadeFlag)) {
SurfWinShadingAbsorbedSolar(SurfNum) = (SurfWinExtBeamAbsByShade(SurfNum) + SurfWinExtDiffAbsByShade(SurfNum)) *
(Surface(SurfNum).Area + SurfWinDividerArea(SurfNum));
SurfWinShadingAbsorbedSolarEnergy(SurfNum) = SurfWinShadingAbsorbedSolar(SurfNum) * state.dataGlobal->TimeStepZoneSec;
@@ -3543,7 +3533,7 @@ namespace WindowManager {
}
// Save hcv for use in divider calc with interior or exterior shade (see CalcWinFrameAndDividerTemps)
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn)
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag) || ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag))
SurfWinConvCoeffWithShade(SurfNum) = hcv;
} else {
// No convergence after MaxIterations even with relaxed error tolerance
@@ -3638,7 +3628,7 @@ namespace WindowManager {
Real64 gr; // glass-shade/blind gap Grashof number
Real64 pr; // glass-shade/blind gap Prandtl number
Real64 nu; // glass-shade/blind gap Nusselt number
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
int BlNum; // Blind number
// Air properties
@@ -3651,7 +3641,7 @@ namespace WindowManager {
nglassfaces = 2 * state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers;
TotGaps = state.dataConstruction->Construct(ConstrNumSh).TotGlassLayers;
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) { // Interior shade or blind
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) { // Interior shade or blind
MatNumSh = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(nglassfaces);
TGapInlet = state.dataWindowManager->tin;
TGlassFace = state.dataWindowManager->thetas(nglassfaces);
@@ -3689,7 +3679,7 @@ namespace WindowManager {
GapHeight = Surface(SurfNum).Height;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == ExtScreenOn) {
+ if (ShadeFlag == WinShadingType::IntShade || ShadeFlag == WinShadingType::ExtShade || ShadeFlag == WinShadingType::ExtScreen) {
// Shade or Screen on
GapDepth = state.dataMaterial->Material(MatNumSh).WinShadeToGlassDist;
AGap = GapDepth * Surface(SurfNum).Width;
@@ -3753,7 +3743,7 @@ namespace WindowManager {
TGapNew = TAve - (GapHeightChar / GapHeight) * (TGapOutlet - TGapInlet);
// Convective heat flow from gap to room air for interior shade or blind
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
RhoAir = state.dataWindowManager->AirProps(1) + state.dataWindowManager->AirProps(2) * (TGapNew - state.dataWindowManager->TKelvin);
QConvGap = RhoAir * AGap * VGap * 1008.0 * (TGapOutlet - TGapInlet);
// Exclude convection to gap due to divider, if present; divider convection handled
@@ -3838,7 +3828,7 @@ namespace WindowManager {
Real64 gr; // Gap gas Grashof number
Real64 pr; // Gap gas Prandtl number
Real64 nu; // Gap gas Nusselt number
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
int BlNum; // Blind number
int IGap; // Gap counter; 1 = gap on outer side of shade/blind, 2 = gap on inner side.
int IGapInc; // Gap increment (0 or 1)
@@ -3892,7 +3882,7 @@ namespace WindowManager {
GapDepth = state.dataWindowManager->gap(1 + IGapInc);
AGap = GapDepth * Surface(SurfNum).Width;
- if (ShadeFlag == BGShadeOn) {
+ if (ShadeFlag == WinShadingType::BGShade) {
// Shade on
ATopGap = state.dataMaterial->Material(MatNumSh).WinShadeTopOpeningMult * AGap;
ABotGap = state.dataMaterial->Material(MatNumSh).WinShadeBottomOpeningMult * AGap;
@@ -4128,7 +4118,7 @@ namespace WindowManager {
Real64 gr; // Gap air Grashof number
Real64 pr; // Gap air Prandtl number
Real64 nu; // Gap air Nusselt number
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
int IGap; // Gap counter; 1 = gap on outer side of shade/blind, 2 = gap on inner side.
int IGapInc; // Gap increment; =0, double glass, =1, triple glass
// REAL(r64) :: AirProps(8) ! Air properties
@@ -4618,7 +4608,7 @@ namespace WindowManager {
Real64 const resgap(0.21); // Typical gap resistance (m2-K/W)
int i; // Face counter
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
static Array1D rguess(11); // Combined radiative/convective resistance (m2-K/W) of //Tuned Made static
// inside or outside air film, or gap
Real64 restot; // Total window resistance including outside
@@ -4675,9 +4665,9 @@ namespace WindowManager {
// Initialize face temperatures of shade or blind, if present
ShadeFlag = SurfWinShadingFlag(SurfNum);
- if (SurfWinExtIntShadePrevTS(SurfNum) == IntShadeOn || SurfWinExtIntShadePrevTS(SurfNum) == IntBlindOn ||
- SurfWinExtIntShadePrevTS(SurfNum) == ExtShadeOn || SurfWinExtIntShadePrevTS(SurfNum) == ExtBlindOn ||
- SurfWinExtIntShadePrevTS(SurfNum) == BGShadeOn || SurfWinExtIntShadePrevTS(SurfNum) == BGBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinExtIntShadePrevTS(SurfNum)) ||
+ SurfWinExtIntShadePrevTS(SurfNum) == WinShadingType::ExtShade || SurfWinExtIntShadePrevTS(SurfNum) == WinShadingType::ExtBlind ||
+ ANY_BETWEENGLASS_SHADE_BLIND(SurfWinExtIntShadePrevTS(SurfNum))) {
// Shade or blind is on during the previous TS; use previous-TS values of shade/blind face temps.
// Note that if shade or blind is NOT on in the current TS the following two
// temperature values, although calculated here, are not used. The shade/blind face numbers
@@ -4697,15 +4687,13 @@ namespace WindowManager {
// equal to tout. For between-glass shade/blind it is assumed to be equal to the
// average temperature of the adjacent glass faces.
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
state.dataWindowManager->thetas(state.dataWindowManager->nglface + 1) = state.dataWindowManager->tin + (AbsRadShade(1) + AbsRadShade(2)) / (2 * (state.dataWindowManager->hcin + hrad));
state.dataWindowManager->thetas(state.dataWindowManager->nglface + 2) = state.dataWindowManager->thetas(state.dataWindowManager->nglface + 1);
- }
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn) {
+ } else if (ShadeFlag == WinShadingType::ExtShade || ShadeFlag == WinShadingType::ExtBlind) {
state.dataWindowManager->thetas(state.dataWindowManager->nglface + 1) = state.dataWindowManager->tout + (AbsRadShade(1) + AbsRadShade(2)) / (2 * (state.dataWindowManager->hcout + hrad));
state.dataWindowManager->thetas(state.dataWindowManager->nglface + 2) = state.dataWindowManager->thetas(state.dataWindowManager->nglface + 1);
- }
- if (ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn) {
+ } else if (ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
// Between-glass shade/blind allowed only for double and triple glazing.
// The factor 16.0 below is based on a combined convective/radiative heat transfer
// coefficient on either side of the shade/blind of 8.0 W/m2-K -- about 1.4 Btu/h-ft2-F.
@@ -5738,7 +5726,7 @@ namespace WindowManager {
Real64 TOutRad; // Outside radiative temperature (K)
Real64 TOutRadFr; // Effective outside radiative temperature for frame (K)
Real64 TOutRadDiv; // Effective outside radiative temperature for divider (K)
- int ShadeFlag; // Window shading flag
+ WinShadingType ShadeFlag; // Window shading flag
Real64 FrameCon; // Frame conductance (W/m2-K)
Real64 Afac; // Intermediate calculation variables
@@ -5862,7 +5850,7 @@ namespace WindowManager {
if (FrameDivider(FrDivNum).DividerProjectionOut > 0.0) {
HOutRad *= (1.0 + 2.0 * SurfWinProjCorrDivOut(SurfNum));
- if (SurfWinShadingFlag(SurfNum) == ExtShadeOn) HOutConvDiv = SurfWinConvCoeffWithShade(SurfNum);
+ if (SurfWinShadingFlag(SurfNum) == WinShadingType::ExtShade) HOutConvDiv = SurfWinConvCoeffWithShade(SurfNum);
HOutConvDiv *= (1.0 + 2.0 * SurfWinProjCorrDivOut(SurfNum));
// Add long-wave from outside window surface absorbed by divider outside projection
SurfWinDividerQRadOutAbs(SurfNum) += SurfWinProjCorrDivOut(SurfNum) * FrameDivider(FrDivNum).DividerEmis *
@@ -5873,7 +5861,7 @@ namespace WindowManager {
if (FrameDivider(FrDivNum).DividerProjectionIn > 0.0) {
HInRad *= (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum));
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn) HInConvDiv = SurfWinConvCoeffWithShade(SurfNum);
+ if (SurfWinShadingFlag(SurfNum) == WinShadingType::IntShade) HInConvDiv = SurfWinConvCoeffWithShade(SurfNum);
HInConvDiv *= (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum));
// Add long-wave from inside window surface absorbed by divider inside projection
SurfWinDividerQRadInAbs(SurfNum) += SurfWinProjCorrDivIn(SurfNum) * FrameDivider(FrDivNum).DividerEmis * EmisGlassIn *
@@ -5905,7 +5893,7 @@ namespace WindowManager {
// from the inside surface of the divider goes directly into the zone air -- i.e., the IR radiative
// interaction between divider and shade is ignored due to the difficulty of calculating this interaction
// at the same time that the interaction between glass and shade is calculated.
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn)
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum)))
SurfWinDividerHeatGain(SurfNum) = DividerHeatGain;
DivTempOut = SurfWinDividerTempSurfOut(SurfNum) + state.dataWindowManager->TKelvin;
} // End of check if window has dividers
@@ -6016,7 +6004,7 @@ namespace WindowManager {
Array1D hgap(5); // Conductive gap conductance [W/m2-K]
Array1D hGapTot(5); // Combined radiative and conductive gap conductance [W/m2-K]
Real64 Rbare; // Nominal center-of-glass resistance without air films [m2-K/W]
- int ShadeFlag; // Shading flag
+ WinShadingType ShadeFlag; // Shading flag
Real64 ShadeRes; // Thermal resistance of shade
int MatOutside; // Material number of outside layer of construction
int MatInside; // Material number of inside layer of construction
@@ -6117,42 +6105,42 @@ namespace WindowManager {
state.dataWindowManager->Outir = state.dataWindowManager->sigma * pow_4(state.dataWindowManager->tout);
// Determine whether construction has an exterior or interior shade or blind
- ShadeFlag = NoShade;
+ ShadeFlag = WinShadingType::NoShade;
ShadeRes = 0.0;
MatOutside = state.dataConstruction->Construct(ConstrNum).LayerPoint(1);
MatInside = state.dataConstruction->Construct(ConstrNum).LayerPoint(TotLay);
if (state.dataMaterial->Material(MatOutside).Group == 2) { // Exterior shade present
MatShade = MatOutside;
- ShadeFlag = ExtShadeOn;
+ ShadeFlag = WinShadingType::ExtShade;
// Set glazing outside convection coefficient to Window 4 still-air value
state.dataWindowManager->hcout = 12.25;
} else if (state.dataMaterial->Material(MatOutside).Group == 7) { // Exterior screen present
MatShade = MatOutside;
ScNum = state.dataMaterial->Material(MatShade).ScreenDataPtr;
// Orphaned constructs with exterior screen are ignored
- if (ScNum > 0) ShadeFlag = ExtScreenOn;
+ if (ScNum > 0) ShadeFlag = WinShadingType::ExtScreen;
state.dataWindowManager->hcout = 12.25;
} else if (state.dataMaterial->Material(MatOutside).Group == 5) { // Exterior blind present
MatShade = MatOutside;
- ShadeFlag = ExtBlindOn;
+ ShadeFlag = WinShadingType::ExtBlind;
BlNum = state.dataMaterial->Material(MatShade).BlindDataPtr;
state.dataWindowManager->hcout = 12.25;
} else if (state.dataMaterial->Material(MatInside).Group == 2) { // Interior shade present
MatShade = MatInside;
- ShadeFlag = IntShadeOn;
+ ShadeFlag = WinShadingType::IntShade;
} else if (state.dataMaterial->Material(MatInside).Group == 5) { // Interior blind present
MatShade = MatInside;
BlNum = state.dataMaterial->Material(MatShade).BlindDataPtr;
- ShadeFlag = IntBlindOn;
+ ShadeFlag = WinShadingType::IntBlind;
} else if (TotGlassLay == 2) {
- if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(3)).Group == 2) ShadeFlag = BGShadeOn;
- if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(3)).Group == 5) ShadeFlag = BGBlindOn;
+ if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(3)).Group == 2) ShadeFlag = WinShadingType::BGShade;
+ if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(3)).Group == 5) ShadeFlag = WinShadingType::BGBlind;
} else if (TotGlassLay == 3) {
- if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(5)).Group == 2) ShadeFlag = BGShadeOn;
- if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(5)).Group == 5) ShadeFlag = BGBlindOn;
+ if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(5)).Group == 2) ShadeFlag = WinShadingType::BGShade;
+ if (state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(5)).Group == 5) ShadeFlag = WinShadingType::BGBlind;
}
- if (ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn) {
+ if (ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
errFlag = 2;
return;
}
@@ -6160,10 +6148,10 @@ namespace WindowManager {
TSolNorm = POLYF(1.0, state.dataConstruction->Construct(ConstrNum).TransSolBeamCoef);
TVisNorm = POLYF(1.0, state.dataConstruction->Construct(ConstrNum).TransVisBeamCoef);
AbsBeamShadeNorm = 0.0;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn) { // Exterior or interior shade on
+ if (ShadeFlag == WinShadingType::IntShade || ShadeFlag == WinShadingType::ExtShade) { // Exterior or interior shade on
AbsBeamShadeNorm = POLYF(1.0, state.dataConstruction->Construct(ConstrNum).AbsBeamShadeCoef);
// Exterior blind or screen or interior blind on
- } else if (ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ } else if (ShadeFlag == WinShadingType::IntBlind || ShadeFlag == WinShadingType::ExtBlind || ShadeFlag == WinShadingType::ExtScreen) {
// Find unshaded construction that goes with this construction w/blind or screen
ConstrNumBare = 0;
for (ConstrNum1 = 1; ConstrNum1 <= TotConstructs; ++ConstrNum1) {
@@ -6175,7 +6163,7 @@ namespace WindowManager {
ConstrNumBare = ConstrNum1;
for (Lay = 1; Lay <= state.dataConstruction->Construct(ConstrNum1).TotLayers; ++Lay) {
LayPtr = state.dataConstruction->Construct(ConstrNum1).LayerPoint(Lay);
- if (ShadeFlag == IntBlindOn) { // The shaded construction has an interior blind
+ if (ShadeFlag == WinShadingType::IntBlind) { // The shaded construction has an interior blind
LayPtrSh = state.dataConstruction->Construct(ConstrNum).LayerPoint(Lay);
} else { // The shaded construction has an exterior blind or screen
LayPtrSh = state.dataConstruction->Construct(ConstrNum).LayerPoint(Lay + 1);
@@ -6193,7 +6181,7 @@ namespace WindowManager {
TBmBm = POLYF(1.0, state.dataConstruction->Construct(ConstrNumBare).TransSolBeamCoef);
TBmBmVis = POLYF(1.0, state.dataConstruction->Construct(ConstrNumBare).TransVisBeamCoef);
- if (ShadeFlag == ExtScreenOn) {
+ if (ShadeFlag == WinShadingType::ExtScreen) {
// Don't need to call subroutine, use normal incident properties (SUBROUTINE CalcNominalWindowCond)
// Last call to CalcScreenTransmittance(ISurf) was done at direct normal angle (0,0) in CalcWindowScreenProperties
TScBmBm = SurfaceScreens(ScNum).BmBmTrans;
@@ -6225,7 +6213,7 @@ namespace WindowManager {
TBlBmDifVis = InterpProfSlatAng(0.0, SlatAng, VarSlats, Blind(BlNum).VisFrontBeamDiffTrans);
TDif = state.dataConstruction->Construct(ConstrNumBare).TransDiff;
TDifVis = state.dataConstruction->Construct(ConstrNumBare).TransDiffVis;
- if (ShadeFlag == IntBlindOn) {
+ if (ShadeFlag == WinShadingType::IntBlind) {
RGlDiffBack = state.dataConstruction->Construct(ConstrNumBare).ReflectSolDiffBack;
RGlDiffBackVis = state.dataConstruction->Construct(ConstrNumBare).ReflectVisDiffBack;
RhoBlFront = InterpProfSlatAng(0.0, SlatAng, VarSlats, Blind(BlNum).SolFrontBeamDiffRefl);
@@ -6242,7 +6230,7 @@ namespace WindowManager {
TVisNorm = TBmBmVis *
(TBlBmBm + TBlBmDifVis + TBlDifDifVis * RhoBlFrontVis * RGlDiffBackVis / (1.0 - RhoBlDiffFrontVis * RGlDiffBackVis));
} // (IntBlind)
- if (ShadeFlag == ExtBlindOn) {
+ if (ShadeFlag == WinShadingType::ExtBlind) {
TBlBmBm = BlindBeamBeamTrans(0.0, SlatAng, Blind(BlNum).SlatWidth, Blind(BlNum).SlatSeparation, Blind(BlNum).SlatThickness);
RGlFront = POLYF(1.0, state.dataConstruction->Construct(ConstrNumBare).ReflSolBeamFrontCoef);
RGlFrontVis = POLYF(1.0, state.dataConstruction->Construct(ConstrNumBare).ReflSolBeamFrontCoef);
@@ -6293,16 +6281,16 @@ namespace WindowManager {
state.dataWindowManager->tir(2 * IGlass - 1) = state.dataMaterial->Material(LayPtr).TransThermal;
state.dataWindowManager->tir(2 * IGlass) = state.dataMaterial->Material(LayPtr).TransThermal;
AbsBeamNorm(IGlass) = POLYF(1.0, state.dataConstruction->Construct(ConstrNum).AbsBeamCoef({1, 6}, IGlass));
- if (ShadeFlag == IntBlindOn) { // Interior blind on
+ if (ShadeFlag == WinShadingType::IntBlind) { // Interior blind on
AbsBeamNorm(IGlass) = POLYF(1.0, state.dataConstruction->Construct(ConstrNumBare).AbsBeamCoef({1, 6}, IGlass));
AGlDiffBack = state.dataConstruction->Construct(ConstrNumBare).AbsDiffBack(IGlass);
AbsBeamNorm(IGlass) += TBmBm * AGlDiffBack * RhoBlFront / (1.0 - RhoBlFront * RGlDiffBack);
- } else if (ShadeFlag == ExtBlindOn) { // Exterior blind on
+ } else if (ShadeFlag == WinShadingType::ExtBlind) { // Exterior blind on
AbsBeamNorm(IGlass) = POLYF(1.0, state.dataConstruction->Construct(ConstrNumBare).AbsBeamCoef({1, 6}, IGlass));
AbsBeamNorm(IGlass) = TBlBmBm * AbsBeamNorm(IGlass) + (TBlBmBm * RGlFront * RhoBlBack + TBlBmDif) *
state.dataConstruction->Construct(ConstrNumBare).AbsDiff(IGlass) /
(1.0 - RGlDiffFront * RhoBlDiffBack);
- } else if (ShadeFlag == ExtScreenOn) { // Exterior screen on
+ } else if (ShadeFlag == WinShadingType::ExtScreen) { // Exterior screen on
AbsBeamNorm(IGlass) = POLYF(1.0, state.dataConstruction->Construct(ConstrNumBare).AbsBeamCoef({1, 6}, IGlass));
AbsBeamNorm(IGlass) = TScBmBm * AbsBeamNorm(IGlass) + (TScBmBm * RGlFront * RScBack + TScBmDif) *
state.dataConstruction->Construct(ConstrNumBare).AbsDiff(IGlass) /
@@ -6363,7 +6351,7 @@ namespace WindowManager {
hInRad = state.dataWindowManager->emis(state.dataWindowManager->nglface) * state.dataWindowManager->sigma * 0.5 * pow_3(state.dataWindowManager->tin + state.dataWindowManager->thetas(state.dataWindowManager->nglface));
rIn = 1.0 / (hInRad + state.dataWindowManager->hcin);
- if (!(ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn)) AbsBeamShadeNorm = 0.0;
+ if (!ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) AbsBeamShadeNorm = 0.0;
{
auto const SELECT_CASE_var(state.dataWindowManager->ngllayer);
@@ -7457,7 +7445,6 @@ namespace WindowManager {
Real64 SumReflect; // Integration variable for reflectance
Real64 SumReflectVis; // Integration variable for visible reflectance
Real64 SumArea; // Integration variable for area of quarter hemisphere
- int ShadingType; // Type of shading device
bool FoundMaterial; // Flag to avoid printing screen transmittance data multiple times when Material:WindowScreen
// is used on multiple surfaces
bool PrintTransMap; // Flag used to print transmittance map
@@ -7509,8 +7496,8 @@ namespace WindowManager {
if (Surface(SurfNum).HasShadeControl) {
ConstrNumSh = Surface(SurfNum).activeShadedConstruction;
MatNum = state.dataConstruction->Construct(ConstrNumSh).LayerPoint(1);
- ShadingType = WindowShadingControl(Surface(SurfNum).activeWindowShadingControl).ShadingType;
- if (ShadingType == WSC_ST_ExteriorScreen) {
+ WinShadingType ShadingType = WindowShadingControl(Surface(SurfNum).activeWindowShadingControl).ShadingType;
+ if (ShadingType == WinShadingType::ExtScreen) {
if (state.dataMaterial->Material(MatNum).ScreenMapResolution > 0) PrintTransMap = true;
++ScreenNum;
diff --git a/src/EnergyPlus/WindowManagerExteriorThermal.cc b/src/EnergyPlus/WindowManagerExteriorThermal.cc
index 6b01cb5d458..c566d4420d8 100644
--- a/src/EnergyPlus/WindowManagerExteriorThermal.cc
+++ b/src/EnergyPlus/WindowManagerExteriorThermal.cc
@@ -110,9 +110,7 @@ namespace WindowManager {
// Interior and exterior shading layers have gas between them and IGU but that gas
// was not part of construction so it needs to be increased by one
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == ExtShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn ||
- SurfWinShadingFlag(SurfNum) == ExtBlindOn || SurfWinShadingFlag(SurfNum) == ExtScreenOn || SurfWinShadingFlag(SurfNum) == BGShadeOn ||
- SurfWinShadingFlag(SurfNum) == BGBlindOn) {
+ if (ANY_SHADE_SCREEN(SurfWinShadingFlag(SurfNum)) || ANY_BLIND(SurfWinShadingFlag(SurfNum))) {
++totSolidLayers;
}
@@ -141,7 +139,7 @@ namespace WindowManager {
++i;
}
SurfInsideTemp = aTemp - DataGlobalConstants::KelvinConv;
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
auto EffShBlEmiss = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), window.EffShBlindEmiss);
auto EffGlEmiss = InterpSlatAng(SurfWinSlatAngThisTS(SurfNum), SurfWinMovableSlats(SurfNum), window.EffGlassEmiss);
SurfWinEffInsSurfTemp(SurfNum) =
@@ -150,7 +148,7 @@ namespace WindowManager {
}
HConvIn(SurfNum) = aSystem->getHc(Environment::Indoor);
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn || aFactory.isInteriorShade()) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))|| aFactory.isInteriorShade()) {
// It is not clear why EnergyPlus keeps this interior calculations separately for interior shade. This does create different
// solution from heat transfer from tarcog itself. Need to confirm with LBNL team about this approach. Note that heat flow
// through shade (consider case when openings are zero) is different from heat flow obtained by these equations. Will keep
@@ -248,23 +246,22 @@ namespace WindowManager {
m_ConstructionNumber = m_Surface.Construction;
m_ShadePosition = ShadePosition::NoShade;
- if (ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGShadeOn ||
- ShadeFlag == BGBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(ShadeFlag) || ANY_BLIND(ShadeFlag)) {
m_ConstructionNumber = m_Surface.activeShadedConstruction;
if (SurfWinStormWinFlag(t_SurfNum) > 0) m_ConstructionNumber = m_Surface.activeStormWinShadedConstruction;
}
m_TotLay = getNumOfLayers(state);
- if (ShadeFlag == IntShadeOn || ShadeFlag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(ShadeFlag)) {
m_ShadePosition = ShadePosition::Interior;
}
- if (ShadeFlag == ExtShadeOn || ShadeFlag == ExtBlindOn || ShadeFlag == ExtScreenOn) {
+ if (ANY_EXTERIOR_SHADE_BLIND_SCREEN(ShadeFlag)) {
m_ShadePosition = ShadePosition::Exterior;
}
- if (ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn) {
+ if (ANY_BETWEENGLASS_SHADE_BLIND(ShadeFlag)) {
m_ShadePosition = ShadePosition::Between;
}
}
@@ -303,9 +300,7 @@ namespace WindowManager {
{
auto ConstrNum = m_Surface.Construction;
- if (SurfWinShadingFlag(m_SurfNum) == IntShadeOn || SurfWinShadingFlag(m_SurfNum) == ExtShadeOn || SurfWinShadingFlag(m_SurfNum) == IntBlindOn ||
- SurfWinShadingFlag(m_SurfNum) == ExtBlindOn || SurfWinShadingFlag(m_SurfNum) == BGShadeOn || SurfWinShadingFlag(m_SurfNum) == BGBlindOn ||
- SurfWinShadingFlag(m_SurfNum) == ExtScreenOn) {
+ if (ANY_SHADE_SCREEN(SurfWinShadingFlag(m_SurfNum)) || ANY_BLIND(SurfWinShadingFlag(m_SurfNum))) {
ConstrNum = m_Surface.activeShadedConstruction;
if (SurfWinStormWinFlag(m_SurfNum) > 0) ConstrNum = m_Surface.activeStormWinShadedConstruction;
}
@@ -499,10 +494,10 @@ namespace WindowManager {
auto aGas = getAir();
auto thickness = 0.0;
- if (SurfWinShadingFlag(m_SurfNum) == IntBlindOn || SurfWinShadingFlag(m_SurfNum) == ExtBlindOn) {
+ if (SurfWinShadingFlag(m_SurfNum) == WinShadingType::IntBlind || SurfWinShadingFlag(m_SurfNum) == WinShadingType::ExtBlind) {
thickness = Blind(SurfWinBlindNumber(m_SurfNum)).BlindToGlassDist;
}
- if (SurfWinShadingFlag(m_SurfNum) == IntShadeOn || SurfWinShadingFlag(m_SurfNum) == ExtShadeOn || SurfWinShadingFlag(m_SurfNum) == ExtScreenOn) {
+ if (SurfWinShadingFlag(m_SurfNum) == WinShadingType::IntShade || SurfWinShadingFlag(m_SurfNum) == WinShadingType::ExtShade || SurfWinShadingFlag(m_SurfNum) == WinShadingType::ExtScreen) {
auto material = getLayerMaterial(state, t_Index);
thickness = material->WinShadeToGlassDist;
}
diff --git a/src/EnergyPlus/ZoneEquipmentManager.cc b/src/EnergyPlus/ZoneEquipmentManager.cc
index a9f398e60c0..9cff89a6453 100644
--- a/src/EnergyPlus/ZoneEquipmentManager.cc
+++ b/src/EnergyPlus/ZoneEquipmentManager.cc
@@ -1001,6 +1001,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(ZoneSizNum).HeatDesTempDiff;
FinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(ZoneSizNum).CoolDesHumRat;
FinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(ZoneSizNum).HeatDesHumRat;
+ FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(ZoneSizNum).ZoneAirDistributionIndex;
FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(ZoneSizNum).ZoneDesignSpecOAIndex;
FinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(ZoneSizNum).OADesMethod;
FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(ZoneSizNum).DesOAFlowPPer;
@@ -1034,6 +1035,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
CalcFinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(ZoneSizNum).HeatDesTempDiff;
CalcFinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(ZoneSizNum).CoolDesHumRat;
CalcFinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(ZoneSizNum).HeatDesHumRat;
+ CalcFinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(ZoneSizNum).ZoneAirDistributionIndex;
CalcFinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(ZoneSizNum).ZoneDesignSpecOAIndex;
CalcFinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(ZoneSizNum).OADesMethod;
CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(ZoneSizNum).DesOAFlowPPer;
@@ -1066,6 +1068,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
FinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(1).HeatDesTempDiff;
FinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(1).CoolDesHumRat;
FinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(1).HeatDesHumRat;
+ FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(1).ZoneAirDistributionIndex;
FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(1).ZoneDesignSpecOAIndex;
FinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(1).OADesMethod;
FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(1).DesOAFlowPPer;
@@ -1099,6 +1102,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
CalcFinalZoneSizing(CtrlZoneNum).HeatDesTempDiff = ZoneSizingInput(1).HeatDesTempDiff;
CalcFinalZoneSizing(CtrlZoneNum).CoolDesHumRat = ZoneSizingInput(1).CoolDesHumRat;
CalcFinalZoneSizing(CtrlZoneNum).HeatDesHumRat = ZoneSizingInput(1).HeatDesHumRat;
+ CalcFinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex = ZoneSizingInput(1).ZoneAirDistributionIndex;
CalcFinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex = ZoneSizingInput(1).ZoneDesignSpecOAIndex;
CalcFinalZoneSizing(CtrlZoneNum).OADesMethod = ZoneSizingInput(1).OADesMethod;
CalcFinalZoneSizing(CtrlZoneNum).DesOAFlowPPer = ZoneSizingInput(1).DesOAFlowPPer;
@@ -1257,6 +1261,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
// Use the max occupancy data from the PEOPLE structure to calculate design min OA for each zone
// from the outside air flow per person input
TotPeopleInZone = 0.0;
+ Real64 ZoneMinOccupancy = 0.;
ZoneIndex = FinalZoneSizing(CtrlZoneNum).ActualZoneNum;
for (PeopleNum = 1; PeopleNum <= TotPeople; ++PeopleNum) {
if (People(PeopleNum).ZonePtr == FinalZoneSizing(CtrlZoneNum).ActualZoneNum) {
@@ -1268,6 +1273,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
} else {
FinalZoneSizing(CtrlZoneNum).ZonePeakOccupancy = TotPeopleInZone;
}
+ ZoneMinOccupancy += TotPeopleInZone * ScheduleManager::GetScheduleMinValue(state, People(PeopleNum).NumberOfPeoplePtr);
}
}
FinalZoneSizing(CtrlZoneNum).TotalZoneFloorArea =
@@ -1283,10 +1289,20 @@ namespace EnergyPlus::ZoneEquipmentManager {
FinalZoneSizing(CtrlZoneNum).TotPeopleInZone = TotPeopleInZone;
FinalZoneSizing(CtrlZoneNum).TotalOAFromPeople = OAFromPeople;
FinalZoneSizing(CtrlZoneNum).TotalOAFromArea = OAFromArea;
+
+ // save Voz for predefined outdoor air summary report
+ Real64 MinEz = std::min(FinalZoneSizing(CtrlZoneNum).ZoneADEffCooling, FinalZoneSizing(CtrlZoneNum).ZoneADEffHeating);
+ if (MinEz == 0) {
+ MinEz = 1.0; // if not calculated assume 1.0 ventilation effectiveness
+ }
+ DataHeatBalance::ZonePreDefRep(ZoneIndex).VozMin = (ZoneMinOccupancy * FinalZoneSizing(CtrlZoneNum).DesOAFlowPPer + OAFromArea) / MinEz;
+
// Calculate the design min OA flow rate for this zone
UseOccSchFlag = false;
UseMinOASchFlag = false;
DSOAPtr = FinalZoneSizing(CtrlZoneNum).ZoneDesignSpecOAIndex;
+ state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneDesignSpecOAIndex = DSOAPtr; // store for later use
+ state.dataZoneEquip->ZoneEquipConfig(CtrlZoneNum).ZoneAirDistributionIndex = FinalZoneSizing(CtrlZoneNum).ZoneAirDistributionIndex; // store for later use
OAVolumeFlowRate = CalcDesignSpecificationOutdoorAir(state, DSOAPtr, ZoneIndex, UseOccSchFlag, UseMinOASchFlag);
// Zone(ZoneIndex)%Multiplier and Zone(ZoneIndex)%ListMultiplier applied in CalcDesignSpecificationOutdoorAir
@@ -2616,7 +2632,11 @@ namespace EnergyPlus::ZoneEquipmentManager {
// Determine flow rate and temperature of supply air based on type of damper
- bool AdjustZoneMassFlowFlag(true); // holds zone mixing and infiltration flow calc status
+ //bool AdjustZoneMassFlowFlag(true); // holds zone mixing and infiltration flow calc status
+
+ bool AdjustZoneMixingFlowFlag(true); // holds zone mixing air flow calc status
+ bool AdjustZoneInfiltrationFlowFlag(true); // holds zone infiltration air flow calc status
+
FirstCall = true;
ErrorFlag = false;
@@ -2665,7 +2685,9 @@ namespace EnergyPlus::ZoneEquipmentManager {
// and controllers
if (ZoneAirMassFlow.EnforceZoneMassBalance) {
- CalcAirFlowSimple(state, 0, AdjustZoneMassFlowFlag);
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::NoAdjustReturnAndMixing) AdjustZoneMixingFlowFlag = false;
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::NoInfiltrationFlow) AdjustZoneInfiltrationFlowFlag = false;
+ CalcAirFlowSimple(state, 0, AdjustZoneMixingFlowFlag, AdjustZoneInfiltrationFlowFlag);
}
for (ControlledZoneNum = 1; ControlledZoneNum <= state.dataGlobal->NumOfZones; ++ControlledZoneNum) {
@@ -3826,12 +3848,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
using DataLoopNode::Node;
using namespace DataRoomAirModel; // UCSD
- using DataHeatBalance::AddInfiltrationFlow;
- using DataHeatBalance::AdjustInfiltrationFlow;
- using DataHeatBalance::AllZones;
- using DataHeatBalance::Infiltration;
using DataHeatBalance::MassConservation;
- using DataHeatBalance::NoInfiltrationFlow;
using DataHeatBalance::Zone;
using DataHeatBalance::ZoneAirMassFlow;
using DataHeatBalFanSys::MixingMassFlowZone;
@@ -3852,6 +3869,8 @@ namespace EnergyPlus::ZoneEquipmentManager {
Real64 TotInletAirMassFlowRateMaxAvail;
Real64 TotInletAirMassFlowRateMin;
Real64 TotInletAirMassFlowRateMinAvail;
+ Real64 TotInletAirMassFlowRate;
+ Real64 TotExhaustAirMassFlowRate;
Real64 ZoneMixingAirMassFlowRate;
Real64 ZoneMixingNetAirMassFlowRate;
@@ -3865,10 +3884,16 @@ namespace EnergyPlus::ZoneEquipmentManager {
int Iteration;
int ZoneNum1;
+ Real64 BuildingZoneReturnFlow;
+ Real64 BuildingZoneReturnFlowOld;
+
ZoneMassBalanceHVACReSim = false;
Iteration = 0;
BuildingZoneMixingFlow = 0.0;
BuildingZoneMixingFlowOld = 0.0;
+ BuildingZoneReturnFlow = 0.0;
+ BuildingZoneReturnFlowOld = 0.0;
+
// Total loop supply and recirc flows (these have been zeroed earlier in InitZoneEquipment
for (int airDistUnit = 1; airDistUnit <= state.dataDefineEquipment->NumAirDistUnits; ++airDistUnit) {
@@ -3909,6 +3934,9 @@ namespace EnergyPlus::ZoneEquipmentManager {
BuildingZoneMixingFlowOld = BuildingZoneMixingFlow;
BuildingZoneMixingFlow = 0.0;
+ BuildingZoneReturnFlowOld = BuildingZoneReturnFlow;
+ BuildingZoneReturnFlow = 0.0;
+
for (ZoneNum1 = 1; ZoneNum1 <= state.dataGlobal->NumOfZones; ++ZoneNum1) {
int ZoneNum = ZoneNum1;
if (ZoneAirMassFlow.EnforceZoneMassBalance) ZoneNum = ZoneReOrder(ZoneNum1);
@@ -3920,6 +3948,9 @@ namespace EnergyPlus::ZoneEquipmentManager {
TotInletAirMassFlowRateMaxAvail = 0.0;
TotInletAirMassFlowRateMin = 0.0;
TotInletAirMassFlowRateMinAvail = 0.0;
+ TotInletAirMassFlowRate = 0.0;
+ TotExhaustAirMassFlowRate = 0.0;
+
state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate = 0.0;
ZoneMixingAirMassFlowRate = 0.0;
@@ -3940,12 +3971,15 @@ namespace EnergyPlus::ZoneEquipmentManager {
}
}
+ TotInletAirMassFlowRate = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate;
+
for (NodeNum = 1; NodeNum <= state.dataZoneEquip->ZoneEquipConfig(ZoneNum).NumExhaustNodes; ++NodeNum) {
if (AirflowNetwork::AirflowNetworkNumOfExhFan == 0) {
state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate += Node(state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ExhaustNode(NodeNum)).MassFlowRate;
}
}
+ TotExhaustAirMassFlowRate = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate;
// Include zone mixing mass flow rate
if (ZoneMassBalanceFlag(ZoneNum)) {
@@ -3957,29 +3991,27 @@ namespace EnergyPlus::ZoneEquipmentManager {
}
}
// Set zone mixing incoming mass flow rate
- if ((Iteration == 0) || !ZoneAirMassFlow.BalanceMixing) {
+ if ((Iteration == 0) || ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnOnly ||
+ ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnThenMixing) {
ZoneMixingAirMassFlowRate = MixingMassFlowZone(ZoneNum);
} else {
- ZoneMixingAirMassFlowRate =
- max(0.0,
- ZoneReturnAirMassFlowRate + state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate -
- state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate + MassConservation(ZoneNum).MixingSourceMassFlowRate);
+ ZoneMixingAirMassFlowRate = max(0.0, ZoneReturnAirMassFlowRate + TotExhaustAirMassFlowRate -
+ TotInletAirMassFlowRate + MassConservation(ZoneNum).MixingSourceMassFlowRate);
}
CalcZoneMixingFlowRateOfReceivingZone(ZoneNum, ZoneMixingAirMassFlowRate);
ZoneMixingNetAirMassFlowRate = MassConservation(ZoneNum).MixingMassFlowRate - MassConservation(ZoneNum).MixingSourceMassFlowRate;
-
}
ZoneNode = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ZoneNode;
- Node(ZoneNode).MassFlowRate = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate;
+ Node(ZoneNode).MassFlowRate = TotInletAirMassFlowRate;
Node(ZoneNode).MassFlowRateMax = TotInletAirMassFlowRateMax;
Node(ZoneNode).MassFlowRateMaxAvail = TotInletAirMassFlowRateMaxAvail;
Node(ZoneNode).MassFlowRateMin = TotInletAirMassFlowRateMin;
Node(ZoneNode).MassFlowRateMinAvail = TotInletAirMassFlowRateMinAvail;
// Calculate standard return air flow rate using default method of inlets minus exhausts adjusted for "balanced" exhaust flow
- StdTotalReturnMassFlow = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate + ZoneMixingNetAirMassFlowRate -
- (state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate - state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ZoneExhBalanced);
+ StdTotalReturnMassFlow = TotInletAirMassFlowRate + ZoneMixingNetAirMassFlowRate -
+ (TotExhaustAirMassFlowRate - state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ZoneExhBalanced);
if (!ZoneAirMassFlow.EnforceZoneMassBalance) {
if (StdTotalReturnMassFlow < 0.0) {
state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ExcessZoneExh = -StdTotalReturnMassFlow;
@@ -3994,61 +4026,78 @@ namespace EnergyPlus::ZoneEquipmentManager {
Real64 FinalTotalReturnMassFlow = 0;
CalcZoneReturnFlows(state, ZoneNum, StdTotalReturnMassFlow, FinalTotalReturnMassFlow);
- MassConservation(ZoneNum).RetMassFlowRate = FinalTotalReturnMassFlow;
-
- // Set zone infiltration flow rate
- if (ZoneAirMassFlow.InfiltrationTreatment != NoInfiltrationFlow) {
- if (MassConservation(ZoneNum).InfiltrationPtr > 0) {
- if (MassConservation(ZoneNum).IsOnlySourceZone || (ZoneAirMassFlow.InfiltrationZoneType == AllZones)) {
- ZoneInfiltrationMassFlowRate = MassConservation(ZoneNum).MixingSourceMassFlowRate - MassConservation(ZoneNum).MixingMassFlowRate +
- state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate + ZoneReturnAirMassFlowRate -
- state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate;
- if (ZoneAirMassFlow.InfiltrationTreatment == AdjustInfiltrationFlow) {
- if (std::abs(ZoneInfiltrationMassFlowRate) > ConvergenceTolerance) {
- ZoneInfiltrationFlag(ZoneNum) = true;
- MassConservation(ZoneNum).InfiltrationMassFlowRate = ZoneInfiltrationMassFlowRate;
- MassConservation(ZoneNum).IncludeInfilToZoneMassBal = 1;
- Infiltration(MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate = ZoneInfiltrationMassFlowRate;
- Infiltration(MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate =
- max(0.0, Infiltration(MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate);
- } else {
- Infiltration(MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate = 0.0;
- MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
- }
- } else if (ZoneAirMassFlow.InfiltrationTreatment == AddInfiltrationFlow) {
- if (ZoneInfiltrationMassFlowRate > ConvergenceTolerance) {
- ZoneInfiltrationFlag(ZoneNum) = true;
- MassConservation(ZoneNum).InfiltrationMassFlowRate = ZoneInfiltrationMassFlowRate;
- MassConservation(ZoneNum).IncludeInfilToZoneMassBal = 1;
- Infiltration(MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate += ZoneInfiltrationMassFlowRate;
- } else {
- MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
- }
- } else if (ZoneAirMassFlow.InfiltrationTreatment == NoInfiltrationFlow) {
- MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
- }
- } else {
- if (ZoneAirMassFlow.InfiltrationTreatment == AdjustInfiltrationFlow) {
- MassConservation(ZoneNum).InfiltrationMassFlowRate =
- Infiltration(MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate;
- } else if (ZoneAirMassFlow.InfiltrationTreatment == AddInfiltrationFlow) {
- MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
- } else if (ZoneAirMassFlow.InfiltrationTreatment == NoInfiltrationFlow) {
- MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
- }
+ if (ZoneAirMassFlow.EnforceZoneMassBalance) {
+ // set mass conservation variables
+ MassConservation(ZoneNum).InMassFlowRate = TotInletAirMassFlowRate;
+ MassConservation(ZoneNum).ExhMassFlowRate = TotExhaustAirMassFlowRate;
+
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustMixingOnly ||
+ ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustMixingThenReturn) {
+ ZoneReturnAirMassFlowRate = FinalTotalReturnMassFlow;
+ Real64 AdjustedTotalReturnMassFlow = 0;
+ MassConservation(ZoneNum).RetMassFlowRate = FinalTotalReturnMassFlow;
+ ZoneReturnAirMassFlowRate = FinalTotalReturnMassFlow;
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustMixingThenReturn) {
+
+ // Calculate return air flow rate using mass conservation equation
+ AdjustedTotalReturnMassFlow = TotInletAirMassFlowRate - TotExhaustAirMassFlowRate + ZoneMixingNetAirMassFlowRate;
+ AdjustedTotalReturnMassFlow = max(0.0, AdjustedTotalReturnMassFlow);
+ Real64 zoneReturnFlowMax = 0.0;
+ ZoneReturnFlowsMaximum(state, ZoneNum, zoneReturnFlowMax);
+ AdjustedTotalReturnMassFlow = min(AdjustedTotalReturnMassFlow, zoneReturnFlowMax);
+ // add adjust zone return node air flow calc
+ CalcZoneReturnFlows(state, ZoneNum, AdjustedTotalReturnMassFlow, FinalTotalReturnMassFlow);
+ MassConservation(ZoneNum).RetMassFlowRate = FinalTotalReturnMassFlow;
+ ZoneReturnAirMassFlowRate = FinalTotalReturnMassFlow;
+ }
+ // Set zone infiltration air flow rate
+ CalcZoneInfiltrationFlows(state, ZoneNum, ZoneReturnAirMassFlowRate);
+
+ } else if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnOnly ||
+ ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnThenMixing) {
+
+ Real64 zoneReturnFlowMax = 0.0;
+ Real64 AdjustedTotalReturnMassFlow = 0;
+ // Calculate return air flow rate using mass conservation equation
+ AdjustedTotalReturnMassFlow = TotInletAirMassFlowRate - TotExhaustAirMassFlowRate + ZoneMixingNetAirMassFlowRate;
+ AdjustedTotalReturnMassFlow = max(0.0, AdjustedTotalReturnMassFlow);
+ ZoneReturnFlowsMaximum(state, ZoneNum, zoneReturnFlowMax);
+ AdjustedTotalReturnMassFlow = min(AdjustedTotalReturnMassFlow, zoneReturnFlowMax);
+
+ // add adjust zone return node air flow calculation
+ CalcZoneReturnFlows(state, ZoneNum, AdjustedTotalReturnMassFlow, FinalTotalReturnMassFlow);
+ MassConservation(ZoneNum).RetMassFlowRate = FinalTotalReturnMassFlow;
+ ZoneReturnAirMassFlowRate = FinalTotalReturnMassFlow;
+
+ if (ZoneAirMassFlow.ZoneFlowAdjustment == DataHeatBalance::AdjustReturnThenMixing) {
+ ZoneMixingAirMassFlowRate = max(0.0,
+ ZoneReturnAirMassFlowRate + TotExhaustAirMassFlowRate - TotInletAirMassFlowRate +
+ MassConservation(ZoneNum).MixingSourceMassFlowRate);
+ CalcZoneMixingFlowRateOfReceivingZone(ZoneNum, ZoneMixingAirMassFlowRate);
+ ZoneMixingNetAirMassFlowRate =
+ MassConservation(ZoneNum).MixingMassFlowRate - MassConservation(ZoneNum).MixingSourceMassFlowRate;
+
+ // Calculate return air flow rate using mass conservation equation
+ AdjustedTotalReturnMassFlow = TotInletAirMassFlowRate - TotExhaustAirMassFlowRate + ZoneMixingNetAirMassFlowRate;
+ AdjustedTotalReturnMassFlow = max(0.0, AdjustedTotalReturnMassFlow);
+ AdjustedTotalReturnMassFlow = min(AdjustedTotalReturnMassFlow, zoneReturnFlowMax);
+ // add adjust zone return node air flow calc
+ CalcZoneReturnFlows(state, ZoneNum, AdjustedTotalReturnMassFlow, FinalTotalReturnMassFlow);
+ MassConservation(ZoneNum).RetMassFlowRate = FinalTotalReturnMassFlow;
+ ZoneReturnAirMassFlowRate = FinalTotalReturnMassFlow;
}
+
+ // Set zone infiltration air flow rate
+ CalcZoneInfiltrationFlows(state, ZoneNum, ZoneReturnAirMassFlowRate);
} else {
- // Zone has no infiltration objects
- MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
+ // if infiltration treatment method is not None
+ // Set zone infiltration air flow rate
+ CalcZoneInfiltrationFlows(state, ZoneNum, ZoneReturnAirMassFlowRate);
}
}
- //
- if (ZoneMassBalanceFlag(ZoneNum)) {
- MassConservation(ZoneNum).InMassFlowRate = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate;
- MassConservation(ZoneNum).ExhMassFlowRate = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate;
- }
BuildingZoneMixingFlow += MassConservation(ZoneNum).MixingMassFlowRate;
+ BuildingZoneReturnFlow += MassConservation(ZoneNum).RetMassFlowRate;
// Accumulate airloop total return flows and allocate excess exhaust flows
for (int returnNum = 1; returnNum <= state.dataZoneEquip->ZoneEquipConfig(ZoneNum).NumReturnNodes; ++returnNum) {
@@ -4145,7 +4194,9 @@ namespace EnergyPlus::ZoneEquipmentManager {
// update the
if (Iteration > 0) {
- if (std::abs(BuildingZoneMixingFlow - BuildingZoneMixingFlowOld) < ConvergenceTolerance) {
+ Real64 totalResidual = 0.0;
+ totalResidual = std::abs(BuildingZoneMixingFlow - BuildingZoneMixingFlowOld) + std::abs(BuildingZoneReturnFlow - BuildingZoneReturnFlowOld);
+ if (totalResidual < ConvergenceTolerance) {
ZoneMassBalanceHVACReSim = false;
break;
} else {
@@ -4230,7 +4281,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
returnNodeMassFlow = inletMassFlow;
thisZoneEquip.FixedReturnFlow(returnNum) = true;
}
- // if zone mass balance true, set to expected return flow
+ // if zone mass balance true, set totReturnFlow to expected return flow
if (DataHeatBalance::ZoneAirMassFlow.EnforceZoneMassBalance ) {
returnNodeMassFlow = ExpTotalReturnMassFlow;
}
@@ -4264,9 +4315,9 @@ namespace EnergyPlus::ZoneEquipmentManager {
returnNodeMassFlow = max(0.0, (ExpTotalReturnMassFlow * returnSchedFrac * airLoopReturnFrac));
}
}
- // if zone mass balance true, set to expected return flow
+ // if zone mass balance true, set totReturnFlow to expected return flow
if (DataHeatBalance::ZoneAirMassFlow.EnforceZoneMassBalance ) {
- returnNodeMassFlow = ExpTotalReturnMassFlow;
+ returnNodeMassFlow = ExpTotalReturnMassFlow;
}
}
}
@@ -4299,6 +4350,83 @@ namespace EnergyPlus::ZoneEquipmentManager {
}
}
+
+ void ZoneReturnFlowsMaximum(EnergyPlusData &state,
+ int const ZoneNum,
+ Real64 &MaximumZoneReturnMassFlow // maximum zone total return air mass flow rate
+ )
+ {
+ MaximumZoneReturnMassFlow = 0.0;
+ // sets the zone return node maximum flow rate to the airloop design supply flow rate
+ for (int returnNum = 1; returnNum <= state.dataZoneEquip->ZoneEquipConfig(ZoneNum).NumReturnNodes; ++returnNum) {
+ int airLoop = state.dataZoneEquip->ZoneEquipConfig(ZoneNum).ReturnNodeAirLoopNum(returnNum);
+ if (airLoop > 0) {
+ auto &thisAirLoopFlow(state.dataAirLoop->AirLoopFlow(airLoop));
+ MaximumZoneReturnMassFlow = thisAirLoopFlow.DesSupply;
+ }
+ }
+ }
+
+ void CalcZoneInfiltrationFlows(EnergyPlusData &state,
+ int const ZoneNum, // current zone index
+ Real64 &ZoneReturnAirMassFlowRate // zone total zone return air mass flow rate
+ )
+ {
+ Real64 const ConvergenceTolerance(0.000010);
+ Real64 ZoneInfiltrationMassFlowRate = 0.0;
+
+ // Set zone infiltration flow rate
+ if (DataHeatBalance::ZoneAirMassFlow.InfiltrationTreatment != DataHeatBalance::NoInfiltrationFlow) {
+ if (DataHeatBalance::MassConservation(ZoneNum).InfiltrationPtr > 0) {
+ if (DataHeatBalance::MassConservation(ZoneNum).IsOnlySourceZone ||
+ (DataHeatBalance::ZoneAirMassFlow.InfiltrationZoneType == DataHeatBalance::AllZones)) {
+ ZoneInfiltrationMassFlowRate = DataHeatBalance::MassConservation(ZoneNum).MixingSourceMassFlowRate -
+ DataHeatBalance::MassConservation(ZoneNum).MixingMassFlowRate +
+ state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotExhaustAirMassFlowRate +
+ ZoneReturnAirMassFlowRate - state.dataZoneEquip->ZoneEquipConfig(ZoneNum).TotInletAirMassFlowRate;
+ if (DataHeatBalance::ZoneAirMassFlow.InfiltrationTreatment == DataHeatBalance::AdjustInfiltrationFlow) {
+ if (std::abs(ZoneInfiltrationMassFlowRate) > ConvergenceTolerance) {
+ DataHeatBalFanSys::ZoneInfiltrationFlag(ZoneNum) = true;
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = ZoneInfiltrationMassFlowRate;
+ DataHeatBalance::MassConservation(ZoneNum).IncludeInfilToZoneMassBal = 1;
+ DataHeatBalance::Infiltration(DataHeatBalance::MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate =
+ ZoneInfiltrationMassFlowRate;
+ DataHeatBalance::Infiltration(DataHeatBalance::MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate =
+ max(0.0, DataHeatBalance::Infiltration(DataHeatBalance::MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate);
+ } else {
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
+ DataHeatBalance::Infiltration(DataHeatBalance::MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate = 0.0;
+ }
+ } else if (DataHeatBalance::ZoneAirMassFlow.InfiltrationTreatment == DataHeatBalance::AddInfiltrationFlow) {
+ if (ZoneInfiltrationMassFlowRate > ConvergenceTolerance) {
+ DataHeatBalFanSys::ZoneInfiltrationFlag(ZoneNum) = true;
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = ZoneInfiltrationMassFlowRate;
+ DataHeatBalance::MassConservation(ZoneNum).IncludeInfilToZoneMassBal = 1;
+ DataHeatBalance::Infiltration(DataHeatBalance::MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate +=
+ ZoneInfiltrationMassFlowRate;
+ } else {
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
+ }
+ } else if (DataHeatBalance::ZoneAirMassFlow.InfiltrationTreatment == DataHeatBalance::NoInfiltrationFlow) {
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
+ }
+ } else {
+ if (DataHeatBalance::ZoneAirMassFlow.InfiltrationTreatment == DataHeatBalance::AdjustInfiltrationFlow) {
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate =
+ DataHeatBalance::Infiltration(DataHeatBalance::MassConservation(ZoneNum).InfiltrationPtr).MassFlowRate;
+ } else if (DataHeatBalance::ZoneAirMassFlow.InfiltrationTreatment == DataHeatBalance::AddInfiltrationFlow) {
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
+ } else if (DataHeatBalance::ZoneAirMassFlow.InfiltrationTreatment == DataHeatBalance::NoInfiltrationFlow) {
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
+ }
+ }
+ } else {
+ // Zone has no infiltration objects
+ DataHeatBalance::MassConservation(ZoneNum).InfiltrationMassFlowRate = 0.0;
+ }
+ }
+ }
+
void CalcZoneLeavingConditions(EnergyPlusData &state, bool const FirstHVACIteration)
{
@@ -4516,7 +4644,8 @@ namespace EnergyPlus::ZoneEquipmentManager {
}
void CalcAirFlowSimple(EnergyPlusData &state, int const SysTimestepLoop, // System time step index
- bool const AdjustZoneMassFlowFlag // flags to adjust zone mxing and infiltration mass flow rates
+ bool const AdjustZoneMixingFlowFlag, // holds zone mixing air flow calc status
+ bool const AdjustZoneInfiltrationFlowFlag // holds zone mixing air flow calc status
)
{
@@ -5034,7 +5163,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
CpAir = PsyCpAirFnW((state.dataZoneEquip->ZHumRat(n) + state.dataZoneEquip->ZHumRat(m)) / 2.0); // Use average conditions
Mixing(j).DesiredAirFlowRate = Mixing(j).DesiredAirFlowRateSaved;
- if (ZoneMassBalanceFlag(n) && AdjustZoneMassFlowFlag) {
+ if (ZoneMassBalanceFlag(n) && AdjustZoneMixingFlowFlag) {
if (Mixing(j).MixingMassFlowRate > 0.0) {
Mixing(j).DesiredAirFlowRate = Mixing(j).MixingMassFlowRate / AirDensity;
}
@@ -5065,7 +5194,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
CpAir = PsyCpAirFnW((state.dataZoneEquip->ZHumRat(n) + state.dataZoneEquip->ZHumRat(m)) / 2.0); // Use average conditions
Mixing(j).DesiredAirFlowRate = Mixing(j).DesiredAirFlowRateSaved;
- if (ZoneMassBalanceFlag(n) && AdjustZoneMassFlowFlag) {
+ if (ZoneMassBalanceFlag(n) && AdjustZoneMixingFlowFlag) {
if (Mixing(j).MixingMassFlowRate > 0.0) {
Mixing(j).DesiredAirFlowRate = Mixing(j).MixingMassFlowRate / AirDensity;
}
@@ -5095,7 +5224,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
CpAir = PsyCpAirFnW((state.dataZoneEquip->ZHumRat(n) + state.dataZoneEquip->ZHumRat(m)) / 2.0); // Use average conditions
Mixing(j).DesiredAirFlowRate = Mixing(j).DesiredAirFlowRateSaved;
- if (ZoneMassBalanceFlag(n) && AdjustZoneMassFlowFlag) {
+ if (ZoneMassBalanceFlag(n) && AdjustZoneMixingFlowFlag) {
if (Mixing(j).MixingMassFlowRate > 0.0) {
Mixing(j).DesiredAirFlowRate = Mixing(j).MixingMassFlowRate / AirDensity;
}
@@ -5373,7 +5502,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
if (MCpI_temp < 0.0) MCpI_temp = 0.0;
Infiltration(j).VolumeFlowRate = MCpI_temp / AirDensity / CpAir;
- if (AdjustZoneMassFlowFlag && ZoneInfiltrationFlag(NZ)) {
+ if (AdjustZoneInfiltrationFlowFlag && ZoneInfiltrationFlag(NZ)) {
if (ZoneAirMassFlow.InfiltrationTreatment == AdjustInfiltrationFlow) {
// if ( Infiltration(j).MassFlowRate > 0.0 ) {
Infiltration(j).VolumeFlowRate = Infiltration(j).MassFlowRate / AirDensity;
@@ -5397,7 +5526,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
MCpI_temp = IVF * AirDensity * CpAir;
if (MCpI_temp < 0.0) MCpI_temp = 0.0;
Infiltration(j).VolumeFlowRate = MCpI_temp / AirDensity / CpAir;
- if (AdjustZoneMassFlowFlag && ZoneInfiltrationFlag(NZ)) {
+ if (AdjustZoneInfiltrationFlowFlag && ZoneInfiltrationFlag(NZ)) {
if (ZoneAirMassFlow.InfiltrationTreatment == AdjustInfiltrationFlow) {
if (Infiltration(j).MassFlowRate > 0.0) {
Infiltration(j).VolumeFlowRate = Infiltration(j).MassFlowRate / AirDensity;
@@ -5422,7 +5551,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
MCpI_temp = IVF * AirDensity * CpAir;
if (MCpI_temp < 0.0) MCpI_temp = 0.0;
Infiltration(j).VolumeFlowRate = MCpI_temp / AirDensity / CpAir;
- if (AdjustZoneMassFlowFlag && ZoneInfiltrationFlag(NZ)) {
+ if (AdjustZoneInfiltrationFlowFlag && ZoneInfiltrationFlag(NZ)) {
if (ZoneAirMassFlow.InfiltrationTreatment == AdjustInfiltrationFlow) {
if (Infiltration(j).MassFlowRate > 0.0) {
Infiltration(j).VolumeFlowRate = Infiltration(j).MassFlowRate / AirDensity;
@@ -5555,29 +5684,23 @@ namespace EnergyPlus::ZoneEquipmentManager {
// This subroutine updates the receiving zone mixing flow rate to ensures the zone
// air mass balance.
- // Using/Aliasing
- using DataHeatBalance::MassConservation;
- using DataHeatBalance::Mixing;
- using DataHeatBalance::TotMixing;
- using DataHeatBalFanSys::MixingMassFlowZone;
-
int Loop;
int MixingNum;
int NumOfReceivingZoneMixingObjects;
Real64 MixingMassFlowRate; // current zone mixing mass flow rate, [kg/s]
MixingMassFlowRate = 0.0;
- // distribute the total zone mixing flow rate to the source zones
- NumOfReceivingZoneMixingObjects = MassConservation(ZoneNum).NumReceivingZonesMixingObject;
+ NumOfReceivingZoneMixingObjects = DataHeatBalance::MassConservation(ZoneNum).NumReceivingZonesMixingObject;
if (NumOfReceivingZoneMixingObjects > 0) {
- for (Loop = 1; Loop <= NumOfReceivingZoneMixingObjects; ++Loop) {
- MixingNum = MassConservation(ZoneNum).ZoneMixingReceivingPtr(Loop);
- Mixing(MixingNum).MixingMassFlowRate = MassConservation(ZoneNum).ZoneMixingReceivingFr(Loop) * ZoneMixingMassFlowRate;
- MixingMassFlowRate += Mixing(MixingNum).MixingMassFlowRate;
- CalcZoneMixingFlowRateOfSourceZone(Mixing(MixingNum).FromZone);
- }
+ // distribute the total zone mixing flow rate to the source zones
+ for (Loop = 1; Loop <= NumOfReceivingZoneMixingObjects; ++Loop) {
+ MixingNum = DataHeatBalance::MassConservation(ZoneNum).ZoneMixingReceivingPtr(Loop);
+ DataHeatBalance::Mixing(MixingNum).MixingMassFlowRate = DataHeatBalance::MassConservation(ZoneNum).ZoneMixingReceivingFr(Loop) * ZoneMixingMassFlowRate;
+ MixingMassFlowRate += DataHeatBalance::Mixing(MixingNum).MixingMassFlowRate;
+ CalcZoneMixingFlowRateOfSourceZone(DataHeatBalance::Mixing(MixingNum).FromZone);
+ }
}
- MassConservation(ZoneNum).MixingMassFlowRate = MixingMassFlowRate;
+ DataHeatBalance::MassConservation(ZoneNum).MixingMassFlowRate = MixingMassFlowRate;
ZoneMixingMassFlowRate = MixingMassFlowRate;
}
@@ -5593,14 +5716,7 @@ namespace EnergyPlus::ZoneEquipmentManager {
// PURPOSE OF THIS SUBROUTINE:
// This subroutine calculates the zone mixing flow rate such that it ensures the zone
// air mass balance.
-
- // Using/Aliasing
- using DataHeatBalance::MassConservation;
- using DataHeatBalance::Mixing;
- using DataHeatBalance::TotMixing;
- using DataHeatBalance::Zone;
- using DataHeatBalFanSys::MixingMassFlowZone;
-
+ ;
int Loop;
int MixingNum;
int ZoneMixingNum;
@@ -5608,18 +5724,18 @@ namespace EnergyPlus::ZoneEquipmentManager {
Real64 ZoneSourceMassFlowRate; // current zone as a source mass flow rate for zone mixing in other zones, [kg/s]
ZoneSourceMassFlowRate = 0.0;
- NumOfSourceZoneMixingObjects = MassConservation(ZoneNum).NumSourceZonesMixingObject;
+ NumOfSourceZoneMixingObjects = DataHeatBalance::MassConservation(ZoneNum).NumSourceZonesMixingObject;
if (NumOfSourceZoneMixingObjects > 0) {
for (ZoneMixingNum = 1; ZoneMixingNum <= NumOfSourceZoneMixingObjects; ++ZoneMixingNum) {
- MixingNum = MassConservation(ZoneNum).ZoneMixingSourcesPtr(ZoneMixingNum);
- for (Loop = 1; Loop <= TotMixing; ++Loop) {
+ MixingNum = DataHeatBalance::MassConservation(ZoneNum).ZoneMixingSourcesPtr(ZoneMixingNum);
+ for (Loop = 1; Loop <= DataHeatBalance::TotMixing; ++Loop) {
if (Loop == MixingNum) {
- ZoneSourceMassFlowRate += Mixing(Loop).MixingMassFlowRate;
+ ZoneSourceMassFlowRate += DataHeatBalance::Mixing(Loop).MixingMassFlowRate;
}
}
}
}
- MassConservation(ZoneNum).MixingSourceMassFlowRate = ZoneSourceMassFlowRate;
+ DataHeatBalance::MassConservation(ZoneNum).MixingSourceMassFlowRate = ZoneSourceMassFlowRate;
}
void AutoCalcDOASControlStrategy(EnergyPlusData &state)
diff --git a/src/EnergyPlus/ZoneEquipmentManager.hh b/src/EnergyPlus/ZoneEquipmentManager.hh
index 90712d517e0..581e643fdf8 100644
--- a/src/EnergyPlus/ZoneEquipmentManager.hh
+++ b/src/EnergyPlus/ZoneEquipmentManager.hh
@@ -122,9 +122,20 @@ namespace ZoneEquipmentManager {
Real64 &FinalTotalReturnMassFlow // Final total return air mass flow rate
);
+ void CalcZoneInfiltrationFlows(EnergyPlusData &state,
+ int const ZoneNum, // current zone index
+ Real64 &ZoneReturnAirMassFlowRate // zone total zone return air mass flow rate
+ );
+
+ void ZoneReturnFlowsMaximum(EnergyPlusData &state,
+ int const ZoneNum,
+ Real64 &MaximumZoneReturnMassFlow // maximum zone total return air mass flow rate
+ );
+
void CalcAirFlowSimple(EnergyPlusData &state,
int const SysTimestepLoop = 0, // System time step index
- bool const AdjustZoneMixingFlowFlag = false // flags to adjust zone mxing mass flow rate
+ bool const AdjustZoneMixingFlowFlag = false, // flags to adjust zone mxing mass flow rate
+ bool const AdjustZoneInfiltrationFlowFlag = false // flags to djust zone infiltration air flow rate
);
void GetStandAloneERVNodes(EnergyPlusData &state, int const OutdoorNum); // Zone Air Balance Outdoor index
diff --git a/src/EnergyPlus/ZoneTempPredictorCorrector.cc b/src/EnergyPlus/ZoneTempPredictorCorrector.cc
index 3de862998b8..faff45e33b1 100644
--- a/src/EnergyPlus/ZoneTempPredictorCorrector.cc
+++ b/src/EnergyPlus/ZoneTempPredictorCorrector.cc
@@ -6257,7 +6257,7 @@ namespace ZoneTempPredictorCorrector {
auto const shading_flag(SurfWinShadingFlag(SurfNum));
// Add to the convective internal gains
- if (shading_flag == IntShadeOn || shading_flag == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(shading_flag)) {
// The shade area covers the area of the glazing plus the area of the dividers.
Area += SurfWinDividerArea(SurfNum);
// If interior shade or blind is present it is assumed that both the convective and IR radiative gain
@@ -6271,7 +6271,7 @@ namespace ZoneTempPredictorCorrector {
if (state.dataConstruction->Construct(Surface(SurfNum).Construction).WindowTypeEQL) SumIntGain += SurfWinOtherConvHeatGain(SurfNum);
// Convective heat gain from natural convection in gap between glass and interior shade or blind
- if (shading_flag == IntShadeOn || shading_flag == IntBlindOn) SumIntGain += SurfWinConvHeatFlowNatural(SurfNum);
+ if (ANY_INTERIOR_SHADE_BLIND(shading_flag)) SumIntGain += SurfWinConvHeatFlowNatural(SurfNum);
// Convective heat gain from airflow window
if (SurfWinAirflowThisTS(SurfNum) > 0.0) {
@@ -6299,7 +6299,7 @@ namespace ZoneTempPredictorCorrector {
HA += HA_surf;
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && shading_flag != IntShadeOn && shading_flag != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(shading_flag)) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
Real64 const HA_surf(HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)));
SumHATsurf += HA_surf * SurfWinDividerTempSurfIn(SurfNum);
@@ -6588,7 +6588,7 @@ namespace ZoneTempPredictorCorrector {
if (Surface(SurfNum).Class == SurfaceClass::Window) {
// Add to the convective internal gains
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn) {
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// The shade area covers the area of the glazing plus the area of the dividers.
Area += SurfWinDividerArea(SurfNum);
// If interior shade or blind is present it is assumed that both the convective and IR radiative gain
@@ -6602,7 +6602,7 @@ namespace ZoneTempPredictorCorrector {
if (state.dataConstruction->Construct(Surface(SurfNum).Construction).WindowTypeEQL) SumIntGains += SurfWinOtherConvHeatGain(SurfNum);
// Convective heat gain from natural convection in gap between glass and interior shade or blind
- if (SurfWinShadingFlag(SurfNum) == IntShadeOn || SurfWinShadingFlag(SurfNum) == IntBlindOn)
+ if (ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum)))
SumIntGains += SurfWinConvHeatFlowNatural(SurfNum);
// Convective heat gain from airflow window
@@ -6621,8 +6621,7 @@ namespace ZoneTempPredictorCorrector {
(SurfWinFrameTempSurfIn(SurfNum) - RefAirTemp);
}
- if (SurfWinDividerArea(SurfNum) > 0.0 && SurfWinShadingFlag(SurfNum) != IntShadeOn &&
- SurfWinShadingFlag(SurfNum) != IntBlindOn) {
+ if (SurfWinDividerArea(SurfNum) > 0.0 && !ANY_INTERIOR_SHADE_BLIND(SurfWinShadingFlag(SurfNum))) {
// Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHADTsurfs += HConvIn(SurfNum) * SurfWinDividerArea(SurfNum) * (1.0 + 2.0 * SurfWinProjCorrDivIn(SurfNum)) *
(SurfWinDividerTempSurfIn(SurfNum) - RefAirTemp);
diff --git a/src/Transition/CreateNewIDFUsingRulesV9_5_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_5_0.f90
index 99c7ab193b0..3f870ac7aed 100644
--- a/src/Transition/CreateNewIDFUsingRulesV9_5_0.f90
+++ b/src/Transition/CreateNewIDFUsingRulesV9_5_0.f90
@@ -386,6 +386,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile
! If your original object starts with A, insert the rules here
! If your original object starts with C, insert the rules here
+
CASE('CONSTRUCTION:AIRBOUNDARY')
CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits)
nodiff=.false.
@@ -630,6 +631,17 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile
! If your original object starts with Z, insert the rules here
+ CASE('ZONEAIRMASSFLOWCONSERVATION')
+ CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits)
+ nodiff=.false.
+ OutArgs(1:CurArgs)=InArgs(1:CurArgs)
+ IF (OutArgs(1) == "YES" .OR. OutArgs(1) == "Yes" .OR. OutArgs(1) == "yes") THEN
+ OutArgs(1) = "AdjustMixingOnly"
+ END IF
+ IF (OutArgs(1) == "NO" .OR. OutArgs(1) == "No" .OR. OutArgs(1) == "no") THEN
+ OutArgs(1) = "None"
+ END IF
+
CASE('ZONEHVAC:LOWTEMPERATURERADIANT:VARIABLEFLOW')
CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits)
OutArgs(1)=InArgs(1)
diff --git a/src/Transition/InputRulesFiles/Rules9-4-0-to-9-5-0.md b/src/Transition/InputRulesFiles/Rules9-4-0-to-9-5-0.md
index 06a0f05ade6..a259b5824c3 100644
--- a/src/Transition/InputRulesFiles/Rules9-4-0-to-9-5-0.md
+++ b/src/Transition/InputRulesFiles/Rules9-4-0-to-9-5-0.md
@@ -230,3 +230,18 @@ See [8464](https://github.com/NREL/EnergyPlus/pull/8464)
- Field 5, previous Field 11 - Convergence Tolerance
- Field 6, previous Field 12 - Fraction Radiant
- Field 7, previous Field 13 - Fraction of Radiant Energy Incident on People
+
+# Object Change: ZoneAirMassFlowConservation
+
+Summary: name of the first input field have been renamed, the two existing key choices (*Yes* and *No*) have been renamed and three more new choice keys have been added.
+
+Field 1 renamed from *Adjust Zone Mixing For Zone Air Mass Flow Balance* to *Adjust Zone Mixing and Return For Air Mass Flow Balance*.
+ - Choice key *Yes* has been replaced with *AdjustMixingOnly*.
+ - Choice key *No* has been replaced with *None*.
+ - New choice key *AdjustReturnOnly* has been added.
+ - New choice key *AdjustMixingThenReturn* has been added.
+ - New choice key *AdjustReturnThenMixing* has been added.
+ - Now there are five choice keys.
+Fields 2-3 remain the same.
+
+See [pull request 8460] (https://github.com/NREL/EnergyPlus/pull/8460)
\ No newline at end of file
diff --git a/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf b/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf
index 07e94df34a2..6ad54f90dff 100644
--- a/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf
+++ b/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf
@@ -120,7 +120,7 @@
Timestep,4;
ZoneAirMassFlowConservation,
- Yes, !- Adjust Zone Mixing For Zone Air Mass Flow Balance
+ AdjustMixingOnly, !- Adjust Zone Mixing and Return For Air Mass Flow Balance
AddInfiltrationFlow, !- Infiltration Balancing Method
MixingSourceZonesOnly; !- Infiltration Balancing Zones
diff --git a/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance_Pressurized.idf b/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance_Pressurized.idf
index 41b40320cb6..815c491cf40 100644
--- a/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance_Pressurized.idf
+++ b/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance_Pressurized.idf
@@ -122,7 +122,7 @@
Timestep,4;
ZoneAirMassFlowConservation,
- Yes, !- Adjust Zone Mixing For Zone Air Mass Flow Balance
+ AdjustMixingOnly, !- Adjust Zone Mixing and Return For Air Mass Flow Balance
AdjustInfiltrationFlow, !- Infiltration Balancing Method
AllZones; !- Infiltration Balancing Zones
diff --git a/testfiles/CMakeLists.txt b/testfiles/CMakeLists.txt
index e52cafadbca..ec19803943e 100644
--- a/testfiles/CMakeLists.txt
+++ b/testfiles/CMakeLists.txt
@@ -501,8 +501,11 @@ add_simulation_test(IDF_FILE RetailPackagedTESCoil.idf EPW_FILE USA_IL_Chicago-O
add_simulation_test(IDF_FILE RoomAirflowNetwork.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw)
add_simulation_test(IDF_FILE SeriesActiveBranch.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw)
add_simulation_test(IDF_FILE ShopWithPVandBattery.idf EPW_FILE USA_OK_Oklahoma.City-Will.Rogers.World.AP.723530_TMY3.epw)
+add_simulation_test(IDF_FILE ShopWithPVandLiIonBattery.idf EPW_FILE USA_OK_Oklahoma.City-Will.Rogers.World.AP.723530_TMY3.epw)
add_simulation_test(IDF_FILE ShopWithPVandStorage.idf EPW_FILE USA_OK_Oklahoma.City-Will.Rogers.World.AP.723530_TMY3.epw)
add_simulation_test(IDF_FILE ShopWithSimplePVT.idf EPW_FILE USA_OK_Oklahoma.City-Will.Rogers.World.AP.723530_TMY3.epw)
+add_simulation_test(IDF_FILE SingleFamilyHouse_HP_Slab.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw)
+add_simulation_test(IDF_FILE SingleFamilyHouse_HP_Slab_Dehumidification.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw)
add_simulation_test(IDF_FILE SingleFamilyHouse_TwoSpeed_ZoneAirBalance.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw)
add_simulation_test(IDF_FILE SingleFamilyHouse_TwoSpeed_CutoutTemperature.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw)
add_simulation_test(IDF_FILE SmallOffice_CentralDOAS.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw)
diff --git a/testfiles/ShopWithPVandLiIonBattery.idf b/testfiles/ShopWithPVandLiIonBattery.idf
new file mode 100644
index 00000000000..60f7adaa483
--- /dev/null
+++ b/testfiles/ShopWithPVandLiIonBattery.idf
@@ -0,0 +1,5301 @@
+!ShopWithPVandBattery.idf
+! Basic file description: 1 story building divided into 4 exterior and one interior conditioned zones and return plenum.
+!
+! Highlights: low energy building with photovoltaic roof and electrical storage
+! Demonstrate the used of battery model for electrical storage
+! Demonstrates different inverters on different arrays.
+! Fairly comprehensive model with full HVAC, service water heating, etc.
+!
+! Simulation Location/Run: OKLAHOMA_CITY_OK_USA TMY2-13967, 2 design days, 1 run period
+!
+! Location: Oklahoma City, OK
+!
+! Design Days: OKLAHOMA_CITY_OK_USA Heating 99.6% Conditions
+! OKLAHOMA_CITY_OK_USA Cooling .4% Conditions WB=>MDB
+!
+! Run Period (Weather File):
+!
+! Run Control: Zone and System sizing with weather file run control (no design days run)
+!
+! Building: small service repair shop. open Mon-Fri, 45 hours a week,
+! model developed from 2003CBECS PUBID8=2994
+! Envelope and equipment set to nominally meet ASHRAE Standard 90.1-2004
+!
+!
+! Floor Area: 390.19 m2 (4200 ft2)
+! Number of Stories: 1
+!
+! Zone Description Details:
+!
+! Internal gains description: lighting is 15 watts/m2, service equip is 8.3 watts/m2. There are 3 occupants.
+! The infiltration is about 0.5 air changes per hour.
+!
+!
+! Detached Shading: None
+! Daylight: None
+! Natural Ventilation: None
+! Compact Schedules: Yes
+!
+! HVAC: Single zone, constant volume air systems.
+! 5 seperate "packages"
+! outside air system includes ideal PVT air preconditioners
+!
+! Zonal Equipment: Direct Air/Single Duct Uncontrolled.
+! Central Air Handling Equipment: no ( but uses central-air-style air handlers for PSZ)
+! System Equipment Autosize: Yes
+! Coils: DX
+! Pumps: Pump:VariableSpeed
+!
+! Results:
+! Standard Reports: All Summary
+! Timestep or Hourly Variables: Timestep
+! Time bins Report: None
+! HTML Report: Yes
+! Environmental Emissions: Yes
+! Utility Tariffs: Yes, circa 2004, Reliant , TX
+
+ Version,9.4;
+
+ Timestep,6;
+
+ SimulationControl,
+ Yes, !- Do Zone Sizing Calculation
+ Yes, !- Do System Sizing Calculation
+ No, !- Do Plant Sizing Calculation
+ No, !- Run Simulation for Sizing Periods
+ Yes, !- Run Simulation for Weather File Run Periods
+ No, !- Do HVAC Sizing Simulation for Sizing Periods
+ 1; !- Maximum Number of HVAC Sizing Simulation Passes
+
+ RunPeriod,
+ Run Period 1, !- Name
+ 7, !- Begin Month
+ 1, !- Begin Day of Month
+ , !- Begin Year
+ 7, !- End Month
+ 2, !- End Day of Month
+ , !- End Year
+ Sunday, !- Day of Week for Start Day
+ No, !- Use Weather File Holidays and Special Days
+ No, !- Use Weather File Daylight Saving Period
+ No, !- Apply Weekend Holiday Rule
+ Yes, !- Use Weather File Rain Indicators
+ Yes; !- Use Weather File Snow Indicators
+
+ SurfaceConvectionAlgorithm:Inside,TARP;
+
+ SurfaceConvectionAlgorithm:Outside,DOE-2;
+
+ HeatBalanceAlgorithm,ConductionTransferFunction;
+
+ Sizing:Parameters,
+ 1.2000, !- Heating Sizing Factor
+ 1.2000, !- Cooling Sizing Factor
+ ; !- Timesteps in Averaging Window
+
+ ConvergenceLimits,
+ 5, !- Minimum System Timestep {minutes}
+ 10; !- Maximum HVAC Iterations
+
+ ShadowCalculation,
+ PolygonClipping, !- Shading Calculation Method
+ Periodic, !- Shading Calculation Update Frequency Method
+ 30; !- Shading Calculation Update Frequency
+
+ GlobalGeometryRules,
+ UpperLeftCorner, !- Starting Vertex Position
+ CounterClockWise, !- Vertex Entry Direction
+ Relative; !- Coordinate System
+
+ Building,
+ AutoBuilt Model: All, !- Name
+ 203.0140, !- North Axis {deg}
+ City, !- Terrain
+ 0.0400, !- Loads Convergence Tolerance Value {W}
+ 0.2000, !- Temperature Convergence Tolerance Value {deltaC}
+ FullInteriorAndExterior, !- Solar Distribution
+ 25, !- Maximum Number of Warmup Days
+ 6; !- Minimum Number of Warmup Days
+
+! US National Holidays
+
+ RunPeriodControl:SpecialDays,
+ New Years Day, !- Name
+ January 1, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Veterans Day, !- Name
+ November 11, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Christmas, !- Name
+ December 25, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Independence Day, !- Name
+ July 4, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ MLK Day, !- Name
+ 3rd Monday in January, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Presidents Day, !- Name
+ 3rd Monday in February, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Memorial Day, !- Name
+ Last Monday in May, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Labor Day, !- Name
+ 1st Monday in September, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Columbus Day, !- Name
+ 2nd Monday in October, !- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+ RunPeriodControl:SpecialDays,
+ Thanksgiving, !- Name
+ 4th Thursday in November,!- Start Date
+ 1, !- Duration {days}
+ Holiday; !- Special Day Type
+
+! Daylight Saving Period in US
+
+ RunPeriodControl:DaylightSavingTime,
+ 1st Sunday in April, !- Start Date
+ Last Sunday in October; !- End Date
+
+ Site:Location,
+ OKLAHOMA_CITY_OK_USA TMY2-13967, !- Name
+ 35.40000, !- Latitude {deg}
+ -97.60000, !- Longitude {deg}
+ -6.000000, !- Time Zone {hr}
+ 397.0000; !- Elevation {m}
+
+! OKLAHOMA_CITY_OK_USA Heating 99.6%, MaxDB= -12.60 Wind Speed= 6.90 Wind Dir= 360.00
+
+ SizingPeriod:DesignDay,
+ OKLAHOMA_CITY_OK_USA Heating 99.6% Conditions, !- Name
+ 1, !- Month
+ 21, !- Day of Month
+ WinterDesignDay, !- Day Type
+ -12.60000, !- Maximum Dry-Bulb Temperature {C}
+ 0.0000000E+00, !- Daily Dry-Bulb Temperature Range {deltaC}
+ , !- Dry-Bulb Temperature Range Modifier Type
+ , !- Dry-Bulb Temperature Range Modifier Day Schedule Name
+ Wetbulb, !- Humidity Condition Type
+ -12.60000, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}
+ , !- Humidity Condition Day Schedule Name
+ , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
+ , !- Enthalpy at Maximum Dry-Bulb {J/kg}
+ , !- Daily Wet-Bulb Temperature Range {deltaC}
+ 96645.77, !- Barometric Pressure {Pa}
+ 6.900000, !- Wind Speed {m/s}
+ 360.0000, !- Wind Direction {deg}
+ No, !- Rain Indicator
+ No, !- Snow Indicator
+ No, !- Daylight Saving Time Indicator
+ ASHRAEClearSky, !- Solar Model Indicator
+ , !- Beam Solar Day Schedule Name
+ , !- Diffuse Solar Day Schedule Name
+ , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}
+ , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}
+ 0.0000000E+00; !- Sky Clearness
+
+! OKLAHOMA_CITY_OK_USA Cooling (WB=>MDB) .4%, MDB= 32.80 WB= 24.90
+
+ SizingPeriod:DesignDay,
+ OKLAHOMA_CITY_OK_USA Cooling .4% Conditions WB=>MDB, !- Name
+ 7, !- Month
+ 21, !- Day of Month
+ SummerDesignDay, !- Day Type
+ 32.80000, !- Maximum Dry-Bulb Temperature {C}
+ 11.70000, !- Daily Dry-Bulb Temperature Range {deltaC}
+ , !- Dry-Bulb Temperature Range Modifier Type
+ , !- Dry-Bulb Temperature Range Modifier Day Schedule Name
+ Wetbulb, !- Humidity Condition Type
+ 24.90000, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}
+ , !- Humidity Condition Day Schedule Name
+ , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
+ , !- Enthalpy at Maximum Dry-Bulb {J/kg}
+ , !- Daily Wet-Bulb Temperature Range {deltaC}
+ 96645.77, !- Barometric Pressure {Pa}
+ 0.0000000E+00, !- Wind Speed {m/s}
+ 0.0000000E+00, !- Wind Direction {deg}
+ No, !- Rain Indicator
+ No, !- Snow Indicator
+ No, !- Daylight Saving Time Indicator
+ ASHRAEClearSky, !- Solar Model Indicator
+ , !- Beam Solar Day Schedule Name
+ , !- Diffuse Solar Day Schedule Name
+ , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}
+ , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}
+ 1.000000; !- Sky Clearness
+
+ Site:GroundTemperature:BuildingSurface,20.03,20.05,20.08,20.10,20.18,20.23,20.22,20.19,20.26,20.25,20.23,20.20;
+
+! Daily Avg, -0.3, 3.3, 10.4, 14.8, 20.6, 23.7, 26.3, 27.9, 22.0, 16.9, 9.7, 5.1
+
+ Site:WaterMainsTemperature,
+ CORRELATION, !- Calculation Method
+ , !- Temperature Schedule Name
+ 15.03, !- Annual Average Outdoor Air Temperature {C}
+ 28.20; !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC}
+
+ ScheduleTypeLimits,
+ Any Number; !- Name
+
+ ScheduleTypeLimits,
+ Fraction, !- Name
+ 0.0, !- Lower Limit Value
+ 1.0, !- Upper Limit Value
+ CONTINUOUS; !- Numeric Type
+
+ ScheduleTypeLimits,
+ Temperature, !- Name
+ -60, !- Lower Limit Value
+ 200, !- Upper Limit Value
+ CONTINUOUS, !- Numeric Type
+ Temperature; !- Unit Type
+
+ ScheduleTypeLimits,
+ On/Off, !- Name
+ 0, !- Lower Limit Value
+ 1, !- Upper Limit Value
+ DISCRETE; !- Numeric Type
+
+ ScheduleTypeLimits,
+ Control Type, !- Name
+ 0, !- Lower Limit Value
+ 4, !- Upper Limit Value
+ DISCRETE; !- Numeric Type
+
+ ScheduleTypeLimits,
+ Humidity, !- Name
+ 10, !- Lower Limit Value
+ 90, !- Upper Limit Value
+ CONTINUOUS; !- Numeric Type
+
+ ScheduleTypeLimits,
+ Number; !- Name
+
+! PBA: 26: Service
+! PBA+: 45: Repair shop
+! Weekly Hours: 45
+! Open 24 Hours: False
+! Open Weekends: False
+! Days Open: Open Mon-Fri
+! Months Not Open: 0
+! Month Occupied (not always used): 0
+! Schedule valid for the following building IDs
+! ID_2994
+!------------ ALWAYS_ON ---------
+
+ Schedule:Compact,
+ ALWAYS_ON, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,1; !- Field 3
+
+!------------ WORK_EFF_SCH ---------
+
+ Schedule:Compact,
+ WORK_EFF_SCH, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0; !- Field 3
+
+!------------ AIR_VELO_SCH ---------
+
+ Schedule:Compact,
+ AIR_VELO_SCH, !- Name
+ Any Number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.2; !- Field 3
+
+!------------ CLOTHING_SCH ---------
+
+ Schedule:Compact,
+ CLOTHING_SCH, !- Name
+ Any Number, !- Schedule Type Limits Name
+ Through: 04/30, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,1.1, !- Field 3
+ Through: 09/30, !- Field 5
+ For: AllDays, !- Field 6
+ Until: 24:00,0.6, !- Field 7
+ Through: 12/31, !- Field 9
+ For: AllDays, !- Field 10
+ Until: 24:00,1.1; !- Field 11
+
+!------------ PlantOnSched ---------
+
+ Schedule:Compact,
+ PlantOnSched, !- Name
+ Any Number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,1; !- Field 3
+
+!------------ Dual Zone Control Type Sched ---------
+
+ Schedule:Compact,
+ Dual Zone Control Type Sched, !- Name
+ Control Type, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,4; !- Field 3
+
+!------------ Hours_of_operation ---------
+! Schedule for hours of operation
+! Assigned 45 hours
+
+ Schedule:Compact,
+ Hours_of_operation, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: Weekdays SummerDesignDay, !- Field 2
+ Until: 10:00,0, !- Field 3
+ Until: 19:00,1, !- Field 5
+ Until: 24:00,0, !- Field 7
+ For: WeekEnds WinterDesignDay Holidays AllOtherDays, !- Field 9
+ Until: 24:00,0; !- Field 10
+
+!------------ HVACOperationSchd ---------
+! Schedule for HVAC operation
+
+ Schedule:Compact,
+ HVACOperationSchd, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: Weekdays SummerDesignDay, !- Field 2
+ Until: 10:00,0, !- Field 3
+ Until: 19:00,1, !- Field 5
+ Until: 24:00,0, !- Field 7
+ For: WeekEnds WinterDesignDay Holidays AllOtherDays, !- Field 9
+ Until: 24:00,0; !- Field 10
+
+!------------ HTGSETP_SCH ---------
+! Heating Setpoint
+
+ Schedule:Compact,
+ HTGSETP_SCH, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: SummerDesignDay, !- Field 2
+ Until: 24:00,13, !- Field 3
+ For: WinterDesignDay, !- Field 5
+ Until: 24:00,21, !- Field 6
+ For: Weekdays, !- Field 8
+ Until: 10:00,13, !- Field 9
+ Until: 19:00,21, !- Field 11
+ Until: 24:00,13, !- Field 13
+ For: WeekEnds Holidays AllOtherDays, !- Field 15
+ Until: 24:00,13; !- Field 16
+
+!------------ CLGSETP_SCH ---------
+! Cooling Setpoint
+
+ Schedule:Compact,
+ CLGSETP_SCH, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: SummerDesignDay, !- Field 2
+ Until: 24:00,24, !- Field 3
+ For: WinterDesignDay, !- Field 5
+ Until: 24:00,33, !- Field 6
+ For: WeekEnds, !- Field 8
+ Until: 24:00,33, !- Field 9
+ For: Weekdays Holidays AllOtherDays, !- Field 11
+ Until: 10:00,33, !- Field 12
+ Until: 19:00,24, !- Field 14
+ Until: 24:00,33; !- Field 16
+
+!------------ MinOA_Sched ---------
+! Minimum outside air schedule
+! Gravity Damper
+
+ Schedule:Compact,
+ MinOA_Sched, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,1; !- Field 3
+
+!------------ BLDG_LIGHT_SCH ---------
+! Lighting schedule
+! Lighting Reduced: True
+! Percent Lit When Closed: 0
+! Percent Lit When Open: 100
+
+ Schedule:Compact,
+ BLDG_LIGHT_SCH, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: Weekdays SummerDesignDay, !- Field 2
+ Until: 10:00,0, !- Field 3
+ Until: 19:00,0.943, !- Field 5
+ Until: 24:00,0, !- Field 7
+ For: WeekEnds WinterDesignDay Holidays AllOtherDays, !- Field 9
+ Until: 24:00,0; !- Field 10
+
+!------------ BLDG_EQUIP_SCH ---------
+! Equipment Schedule
+! Minimum Equipment Percent: 10
+! Maximum Equipment Percent: 95
+! Equipment turned off during off hours: Always
+
+ Schedule:Compact,
+ BLDG_EQUIP_SCH, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: Weekdays SummerDesignDay, !- Field 2
+ Until: 10:00,0.1, !- Field 3
+ Until: 19:00,0.95, !- Field 5
+ Until: 24:00,0.1, !- Field 7
+ For: WeekEnds WinterDesignDay Holidays AllOtherDays, !- Field 9
+ Until: 24:00,0.1; !- Field 10
+
+!------------ BLDG_OCC_SCH ---------
+! Occupancy Schedule
+! Minimum Occupancy Percent: 0
+! Maximum Occupancy Percent: 95
+
+ Schedule:Compact,
+ BLDG_OCC_SCH, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: Weekdays SummerDesignDay, !- Field 2
+ Until: 10:00,0, !- Field 3
+ Until: 12:00,0.95, !- Field 5
+ Until: 13:00,0.5, !- Field 7
+ Until: 19:00,0.95, !- Field 9
+ Until: 24:00,0, !- Field 11
+ For: WeekEnds WinterDesignDay Holidays AllOtherDays, !- Field 13
+ Until: 24:00,0; !- Field 14
+
+!------------ INFIL_SCH ---------
+! Infiltration Schedule
+! Infiltration Percent w/o HVAC: 100
+! Infiltration Percent w/HVAC: 100
+
+ Schedule:Compact,
+ INFIL_SCH, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,1; !- Field 3
+
+!------------ ACTIVITY_SCH ---------
+! Activity Schedule
+
+ Schedule:Compact,
+ ACTIVITY_SCH, !- Name
+ Any Number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,140; !- Field 3
+
+ WindowMaterial:Glazing,
+ Theoretical Glass [23], !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.0030, !- Thickness {m}
+ 0.5531, !- Solar Transmittance at Normal Incidence
+ 0.3969, !- Front Side Solar Reflectance at Normal Incidence
+ 0.3969, !- Back Side Solar Reflectance at Normal Incidence
+ 0.6041, !- Visible Transmittance at Normal Incidence
+ 0.3459, !- Front Side Visible Reflectance at Normal Incidence
+ 0.3459, !- Back Side Visible Reflectance at Normal Incidence
+ 0.0000, !- Infrared Transmittance at Normal Incidence
+ 0.8500, !- Front Side Infrared Hemispherical Emissivity
+ 0.8500, !- Back Side Infrared Hemispherical Emissivity
+ 2.3904; !- Conductivity {W/m-K}
+
+ WindowMaterial:Gas,
+ AIR 6MM, !- Name
+ Air, !- Gas Type
+ 0.0063; !- Thickness {m}
+
+ WindowMaterial:Glazing,
+ Theoretical Glass [24], !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.0030, !- Thickness {m}
+ 0.6483, !- Solar Transmittance at Normal Incidence
+ 0.3017, !- Front Side Solar Reflectance at Normal Incidence
+ 0.3017, !- Back Side Solar Reflectance at Normal Incidence
+ 0.7094, !- Visible Transmittance at Normal Incidence
+ 0.2406, !- Front Side Visible Reflectance at Normal Incidence
+ 0.2406, !- Back Side Visible Reflectance at Normal Incidence
+ 0.0000, !- Infrared Transmittance at Normal Incidence
+ 0.8500, !- Front Side Infrared Hemispherical Emissivity
+ 0.8500, !- Back Side Infrared Hemispherical Emissivity
+ 2.4179; !- Conductivity {W/m-K}
+
+ WindowMaterial:Glazing,
+ Theoretical Glass [8], !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.0030, !- Thickness {m}
+ 0.3480, !- Solar Transmittance at Normal Incidence
+ 0.6020, !- Front Side Solar Reflectance at Normal Incidence
+ 0.6020, !- Back Side Solar Reflectance at Normal Incidence
+ 0.3763, !- Visible Transmittance at Normal Incidence
+ 0.5737, !- Front Side Visible Reflectance at Normal Incidence
+ 0.5737, !- Back Side Visible Reflectance at Normal Incidence
+ 0.0000, !- Infrared Transmittance at Normal Incidence
+ 0.9990, !- Front Side Infrared Hemispherical Emissivity
+ 0.9990, !- Back Side Infrared Hemispherical Emissivity
+ 2.2444; !- Conductivity {W/m-K}
+
+ Material,
+ Roof Membrane, !- Name
+ VeryRough, !- Roughness
+ 0.0095, !- Thickness {m}
+ 0.1600, !- Conductivity {W/m-K}
+ 1121.2900, !- Density {kg/m3}
+ 1460.0000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.7000; !- Visible Absorptance
+
+ Material,
+ Roof Insulation, !- Name
+ MediumRough, !- Roughness
+ 0.1250, !- Thickness {m}
+ 0.0490, !- Conductivity {W/m-K}
+ 265.0000, !- Density {kg/m3}
+ 836.8000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.7000; !- Visible Absorptance
+
+ Material,
+ Metal Decking, !- Name
+ MediumSmooth, !- Roughness
+ 0.0015, !- Thickness {m}
+ 45.0060, !- Conductivity {W/m-K}
+ 7680.0000, !- Density {kg/m3}
+ 418.4000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.3000; !- Visible Absorptance
+
+ Material,
+ GP01 1/2 GYPSUM, !- Name
+ Smooth, !- Roughness
+ 0.0127, !- Thickness {m}
+ 0.1600, !- Conductivity {W/m-K}
+ 800.0000, !- Density {kg/m3}
+ 1090.0000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.5000; !- Visible Absorptance
+
+ Material:NoMass,
+ MAT-SHEATH, !- Name
+ Rough, !- Roughness
+ 0.3626, !- Thermal Resistance {m2-K/W}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.7000; !- Visible Absorptance
+
+ Material,
+ Wall Insulation [2], !- Name
+ MediumRough, !- Roughness
+ 0.0376, !- Thickness {m}
+ 0.0450, !- Conductivity {W/m-K}
+ 265.0000, !- Density {kg/m3}
+ 836.8000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.7000; !- Visible Absorptance
+
+ Material,
+ 1/2IN Gypsum, !- Name
+ Smooth, !- Roughness
+ 0.0127, !- Thickness {m}
+ 0.1600, !- Conductivity {W/m-K}
+ 784.9000, !- Density {kg/m3}
+ 830.0000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.9200, !- Solar Absorptance
+ 0.9200; !- Visible Absorptance
+
+ Material,
+ MAT-CC05 8 HW CONCRETE, !- Name
+ Rough, !- Roughness
+ 0.2032, !- Thickness {m}
+ 1.3110, !- Conductivity {W/m-K}
+ 2240.0000, !- Density {kg/m3}
+ 836.8000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.7000; !- Visible Absorptance
+
+ Material:NoMass,
+ CP02 CARPET PAD, !- Name
+ VeryRough, !- Roughness
+ 0.2165, !- Thermal Resistance {m2-K/W}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.8000; !- Visible Absorptance
+
+ Material,
+ Floor Insulation [2], !- Name
+ MediumRough, !- Roughness
+ 0.0503, !- Thickness {m}
+ 0.0450, !- Conductivity {W/m-K}
+ 265.0000, !- Density {kg/m3}
+ 836.8000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.7000; !- Visible Absorptance
+
+ Material,
+ 1/2IN Gypsum Top, !- Name
+ Smooth, !- Roughness
+ 0.0127, !- Thickness {m}
+ 0.1600, !- Conductivity {W/m-K}
+ 784.9000, !- Density {kg/m3}
+ 830.0000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.9200, !- Solar Absorptance
+ 0.9200; !- Visible Absorptance
+
+ Material,
+ AtticFloor Insulation, !- Name
+ MediumRough, !- Roughness
+ 0.2379, !- Thickness {m}
+ 0.0490, !- Conductivity {W/m-K}
+ 265.0000, !- Density {kg/m3}
+ 836.8000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.7000, !- Solar Absorptance
+ 0.7000; !- Visible Absorptance
+
+ Material,
+ 1/2IN Gypsum Bottom, !- Name
+ Smooth, !- Roughness
+ 0.0127, !- Thickness {m}
+ 0.1600, !- Conductivity {W/m-K}
+ 784.9000, !- Density {kg/m3}
+ 830.0000, !- Specific Heat {J/kg-K}
+ 0.9000, !- Thermal Absorptance
+ 0.9200, !- Solar Absorptance
+ 0.9200; !- Visible Absorptance
+
+ Material,
+ Std Wood 6inch, !- Name
+ MediumSmooth, !- Roughness
+ 0.15, !- Thickness {m}
+ 0.12, !- Conductivity {W/m-K}
+ 540.0000, !- Density {kg/m3}
+ 1210, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.7000000, !- Solar Absorptance
+ 0.7000000; !- Visible Absorptance
+
+ Material,
+ Std 1.5 MW CONCRETE, !- Name
+ Rough, !- Roughness
+ 0.038, !- Thickness {m}
+ 0.858, !- Conductivity {W/m-K}
+ 1968, !- Density {kg/m3}
+ 836.8, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+ Material,
+ Std AC02, !- Name
+ MediumSmooth, !- Roughness
+ 1.2700000E-02, !- Thickness {m}
+ 5.7000000E-02, !- Conductivity {W/m-K}
+ 288.0000, !- Density {kg/m3}
+ 1339.000, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.7000000, !- Solar Absorptance
+ 0.2000000; !- Visible Absorptance
+
+ Material:NoMass,
+ Std CP02 CARPET PAD, !- Name
+ VeryRough, !- Roughness
+ 0.21648, !- Thermal Resistance {m2-K/W}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.8; !- Visible Absorptance
+
+ Material,
+ Std MAT-CC05 4 MW CONCRETE, !- Name
+ Rough, !- Roughness
+ 0.1000, !- Thickness {m}
+ 0.858, !- Conductivity {W/m-K}
+ 1968, !- Density {kg/m3}
+ 836.8, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.2; !- Visible Absorptance
+
+ Material,
+ Std Very High Reflectivity Surface, !- Name
+ Smooth, !- Roughness
+ 0.0005, !- Thickness {m}
+ 237, !- Conductivity {W/m-K}
+ 2702, !- Density {kg/m3}
+ 903, !- Specific Heat {J/kg-K}
+ 0.90, !- Thermal Absorptance
+ 0.05, !- Solar Absorptance
+ 0.05; !- Visible Absorptance
+
+ WindowMaterial:Glazing,
+ Std Clear Acrylic Plastic, !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.003, !- Thickness {m}
+ 0.92, !- Solar Transmittance at Normal Incidence
+ 0.05, !- Front Side Solar Reflectance at Normal Incidence
+ 0.05, !- Back Side Solar Reflectance at Normal Incidence
+ 0.92, !- Visible Transmittance at Normal Incidence
+ 0.05, !- Front Side Visible Reflectance at Normal Incidence
+ 0.05, !- Back Side Visible Reflectance at Normal Incidence
+ 0.00, !- Infrared Transmittance at Normal Incidence
+ 0.90, !- Front Side Infrared Hemispherical Emissivity
+ 0.90, !- Back Side Infrared Hemispherical Emissivity
+ 0.90; !- Conductivity {W/m-K}
+
+ WindowMaterial:Glazing,
+ Std Diffusing Acrylic Plastic, !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.0022, !- Thickness {m}
+ 0.90, !- Solar Transmittance at Normal Incidence
+ 0.08, !- Front Side Solar Reflectance at Normal Incidence
+ 0.08, !- Back Side Solar Reflectance at Normal Incidence
+ 0.90, !- Visible Transmittance at Normal Incidence
+ 0.08, !- Front Side Visible Reflectance at Normal Incidence
+ 0.08, !- Back Side Visible Reflectance at Normal Incidence
+ 0.00, !- Infrared Transmittance at Normal Incidence
+ 0.90, !- Front Side Infrared Hemispherical Emissivity
+ 0.90, !- Back Side Infrared Hemispherical Emissivity
+ 0.90; !- Conductivity {W/m-K}
+
+ Material,
+ Std PW05, !- Name
+ MediumSmooth, !- Roughness
+ 1.9099999E-02, !- Thickness {m}
+ 0.1150000, !- Conductivity {W/m-K}
+ 545.0000, !- Density {kg/m3}
+ 1213.000, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.7800000, !- Solar Absorptance
+ 0.7800000; !- Visible Absorptance
+
+ Material,
+ Std Steel_Brown_Regular, !- Name
+ Smooth, !- Roughness
+ 1.5000000E-03, !- Thickness {m}
+ 44.96960, !- Conductivity {W/m-K}
+ 7689.000, !- Density {kg/m3}
+ 418.0000, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.9200000, !- Solar Absorptance
+ 0.92000000; !- Visible Absorptance
+
+ Material,
+ Std Steel_Brown_Cool, !- Name
+ Smooth, !- Roughness
+ 1.5000000E-03, !- Thickness {m}
+ 44.96960, !- Conductivity {W/m-K}
+ 7689.000, !- Density {kg/m3}
+ 418.0000, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.7300000, !- Solar Absorptance
+ 0.73000000; !- Visible Absorptance
+
+ Construction,
+ InteriorFurnishings, !- Name
+ Std Wood 6inch; !- Outside Layer
+
+ ComponentCost:LineItem,
+ Interior Furnishings, !- Name
+ , !- Type
+ Construction, !- Line Item Type
+ InteriorFurnishings, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 1, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ ; !- Cost per Energy per Temperature Difference {$/(W/K)}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_south_window, !- Name
+ Theoretical Glass [23], !- Outside Layer
+ AIR 6MM, !- Layer 2
+ Theoretical Glass [23]; !- Layer 3
+
+ ComponentCost:LineItem,
+ south:ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_south_window, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_south_window, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 193.8100, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_east_window, !- Name
+ Theoretical Glass [23], !- Outside Layer
+ AIR 6MM, !- Layer 2
+ Theoretical Glass [23]; !- Layer 3
+
+ ComponentCost:LineItem,
+ east:ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_east_window, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_east_window, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 193.8100, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_north_window, !- Name
+ Theoretical Glass [24], !- Outside Layer
+ AIR 6MM, !- Layer 2
+ Theoretical Glass [24]; !- Layer 3
+
+ ComponentCost:LineItem,
+ north:ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_north_window, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_north_window, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 191.8100, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_west_window, !- Name
+ Theoretical Glass [23], !- Outside Layer
+ AIR 6MM, !- Layer 2
+ Theoretical Glass [23]; !- Layer 3
+
+ ComponentCost:LineItem,
+ west:ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_west_window, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_west_window, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 193.8100, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Name
+ Roof Membrane, !- Outside Layer
+ Roof Insulation, !- Layer 2
+ Metal Decking; !- Layer 3
+
+ ComponentCost:LineItem,
+ roofs:ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 26.5800, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Name
+ GP01 1/2 GYPSUM, !- Outside Layer
+ GP01 1/2 GYPSUM; !- Layer 2
+
+ ComponentCost:LineItem,
+ int-walls:ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 1.0000, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Steel-Framed_Ext-wall, !- Name
+ MAT-SHEATH, !- Outside Layer
+ Wall Insulation [2], !- Layer 2
+ 1/2IN Gypsum; !- Layer 3
+
+ ComponentCost:LineItem,
+ ext-walls:ASHRAE 90.1-2004_Sec 5.5-3ab_Steel-Framed_Ext-wall, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Steel-Framed_Ext-wall, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 39.2600, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Construction,
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Name
+ MAT-CC05 8 HW CONCRETE, !- Outside Layer
+ CP02 CARPET PAD; !- Layer 2
+
+ ComponentCost:LineItem,
+ ext-slab:ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Name
+ , !- Type
+ CONSTRUCTION, !- Line Item Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ 24.8600, !- Cost per Area {$/m2}
+ , !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Zone,
+ ZN_1_FLR_1_SEC_1, !- Name
+ 0.0000, !- Direction of Relative North {deg}
+ 0.0000, !- X Origin {m}
+ 0.0000, !- Y Origin {m}
+ 0.0000, !- Z Origin {m}
+ 1, !- Type
+ 1.0000, !- Multiplier
+ 5.0088, !- Ceiling Height {m}
+ 393.3855, !- Volume {m3}
+ autocalculate, !- Floor Area {m2}
+ , !- Zone Inside Convection Algorithm
+ , !- Zone Outside Convection Algorithm
+ YES; !- Part of Total Floor Area
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_1_Wall_1, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Steel-Framed_Ext-wall, !- Construction Name
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.5000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 21.756,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 21.756,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ FenestrationSurface:Detailed,
+ ZN_1_FLR_1_SEC_1_Wall_1_window_1, !- Name
+ Window, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_north_window, !- Construction Name
+ ZN_1_FLR_1_SEC_1_Wall_1, !- Building Surface Name
+ , !- Outside Boundary Condition Object
+ 0.5000, !- View Factor to Ground
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 4, !- Number of Vertices
+ 0.050,0.000,1.181, !- X,Y,Z ==> Vertex 1 {m}
+ 0.050,0.000,1.000, !- X,Y,Z ==> Vertex 2 {m}
+ 21.706,0.000,1.000, !- X,Y,Z ==> Vertex 3 {m}
+ 21.706,0.000,1.181; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_1_Wall_2, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_2_Wall_4, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 21.756,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 21.756,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 17.186,4.570,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 17.186,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_1_Wall_3, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_5_Wall_1, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 17.186,4.570,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 17.186,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 4.570,4.570,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 4.570,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_1_Wall_4, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_4_Wall_1, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 4.570,4.570,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 4.570,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_1_Floor, !- Name
+ floor, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Construction Name
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ Ground, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 4.570,4.570,0.000, !- X,Y,Z ==> Vertex 1 {m}
+ 17.186,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 21.756,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,0.000; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_1_Ceiling,!- Name
+ ceiling, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Construction Name
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 21.756,0.000,5.009, !- X,Y,Z ==> Vertex 2 {m}
+ 17.186,4.570,5.009, !- X,Y,Z ==> Vertex 3 {m}
+ 4.570,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ InternalMass,
+ ZN_1_FLR_1_SEC_1_InternalMass_1, !- Name
+ InteriorFurnishings, !- Construction Name
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ 157.0784; !- Surface Area {m2}
+
+ ZoneInfiltration:DesignFlowRate,
+ ZN_1_FLR_1_SEC_1_Infiltration, !- Name
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ INFIL_SCH, !- Schedule Name
+ flow/zone, !- Design Flow Rate Calculation Method
+ 0.0542, !- Design Flow Rate {m3/s}
+ , !- Flow per Zone Floor Area {m3/s-m2}
+ , !- Flow per Exterior Surface Area {m3/s-m2}
+ , !- Air Changes per Hour {1/hr}
+ 1.0000, !- Constant Term Coefficient
+ 0.0000, !- Temperature Term Coefficient
+ 0.0000, !- Velocity Term Coefficient
+ 0.0000; !- Velocity Squared Term Coefficient
+
+ People,
+ ZN_1_FLR_1_SEC_1, !- Name
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ BLDG_OCC_SCH, !- Number of People Schedule Name
+ people, !- Number of People Calculation Method
+ 0.6039, !- Number of People
+ , !- People per Zone Floor Area {person/m2}
+ , !- Zone Floor Area per Person {m2/person}
+ 0.3000, !- Fraction Radiant
+ , !- Sensible Heat Fraction
+ ACTIVITY_SCH, !- Activity Level Schedule Name
+ 3.82E-8, !- Carbon Dioxide Generation Rate {m3/s-W}
+ , !- Enable ASHRAE 55 Comfort Warnings
+ ZoneAveraged, !- Mean Radiant Temperature Calculation Type
+ , !- Surface Name/Angle Factor List Name
+ WORK_EFF_SCH, !- Work Efficiency Schedule Name
+ ClothingInsulationSchedule, !- Clothing Insulation Calculation Method
+ , !- Clothing Insulation Calculation Method Schedule Name
+ CLOTHING_SCH, !- Clothing Insulation Schedule Name
+ AIR_VELO_SCH, !- Air Velocity Schedule Name
+ FANGER; !- Thermal Comfort Model 1 Type
+
+ Lights,
+ ZN_1_FLR_1_SEC_1_Lights, !- Name
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ BLDG_LIGHT_SCH, !- Schedule Name
+ LightingLevel, !- Design Level Calculation Method
+ 1178.0879, !- Lighting Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Return Air Fraction
+ 0.2000, !- Fraction Radiant
+ 0.2000, !- Fraction Visible
+ 1.0000, !- Fraction Replaceable
+ General Lights; !- End-Use Subcategory
+
+ ComponentCost:LineItem,
+ LIGHTING EQUIP:ZN_1_FLR_1_SEC_1, !- Name
+ , !- Type
+ LIGHTS, !- Line Item Type
+ ZN_1_FLR_1_SEC_1, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 1.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ ElectricEquipment,
+ ZN_1_FLR_1_SEC_1_MiscPlug_Equip, !- Name
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 465.9534, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.5000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ GeneralEquipment; !- End-Use Subcategory
+
+ GasEquipment,
+ ZN_1_FLR_1_SEC_1_MiscGas_Equip, !- Name
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 184.1006, !- Design Level {W}
+ , !- Power per Zone Floor Area {W/m2}
+ , !- Power per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.2000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ 0, !- Carbon Dioxide Generation Rate {m3/s-W}
+ GeneralEquipment; !- End-Use Subcategory
+
+!***** Space Conditioning For Zone: ZN_1_FLR_1_SEC_1 *****
+
+ Sizing:Zone,
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method
+ 14.0, !- Zone Cooling Design Supply Air Temperature {C}
+ , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}
+ SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method
+ 50.0, !- Zone Heating Design Supply Air Temperature {C}
+ , !- Zone Heating Design Supply Air Temperature Difference {deltaC}
+ 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ SZ DSOA ZN_1_FLR_1_SEC_1,!- Design Specification Outdoor Air Object Name
+ 0.0, !- Zone Heating Sizing Factor
+ 0.0, !- Zone Cooling Sizing Factor
+ DesignDay, !- Cooling Design Air Flow Method
+ 0.0, !- Cooling Design Air Flow Rate {m3/s}
+ , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}
+ 0.0, !- Cooling Minimum Air Flow {m3/s}
+ 0.0, !- Cooling Minimum Air Flow Fraction
+ DesignDay, !- Heating Design Air Flow Method
+ 0.0, !- Heating Design Air Flow Rate {m3/s}
+ , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}
+ , !- Heating Maximum Air Flow {m3/s}
+ , !- Heating Maximum Air Flow Fraction
+ , !- Design Specification Zone Air Distribution Object Name
+ No, !- Account for Dedicated Outdoor Air System
+ NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy
+ autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}
+ autosize; !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}
+
+ DesignSpecification:OutdoorAir,
+ SZ DSOA ZN_1_FLR_1_SEC_1,!- Name
+ FLOW/ZONE, !- Outdoor Air Method
+ , !- Outdoor Air Flow per Person {m3/s-person}
+ 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}
+ 0.073704617803385; !- Outdoor Air Flow per Zone {m3/s}
+
+ ZoneControl:Thermostat,
+ ZN_1_FLR_1_SEC_1 Thermostat, !- Name
+ ZN_1_FLR_1_SEC_1, !- Zone or ZoneList Name
+ Dual Zone Control Type Sched, !- Control Type Schedule Name
+ ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type
+ ZN_1_FLR_1_SEC_1 DualSPSched; !- Control 1 Name
+
+ ThermostatSetpoint:DualSetpoint,
+ ZN_1_FLR_1_SEC_1 DualSPSched, !- Name
+ HtgSetP_Sch, !- Heating Setpoint Temperature Schedule Name
+ ClgSetP_Sch; !- Cooling Setpoint Temperature Schedule Name
+
+ ZoneHVAC:EquipmentConnections,
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ ZN_1_FLR_1_SEC_1 Equipment, !- Zone Conditioning Equipment List Name
+ ZN_1_FLR_1_SEC_1 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name
+ , !- Zone Air Exhaust Node or NodeList Name
+ ZN_1_FLR_1_SEC_1 Air Node, !- Zone Air Node Name
+ ZN_1_FLR_1_SEC_1 Return Air Node; !- Zone Return Air Node or NodeList Name
+
+ NodeList,
+ ZN_1_FLR_1_SEC_1 Inlet Nodes, !- Name
+ ZN_1_FLR_1_SEC_1 Direct Air Inlet Node; !- Node 1 Name
+
+ ZoneHVAC:EquipmentList,
+ ZN_1_FLR_1_SEC_1 Equipment, !- Name
+ SequentialLoad, !- Load Distribution Scheme
+ ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
+ ZN_1_FLR_1_SEC_1 Direct Air ADU, !- Zone Equipment 1 Name
+ 1, !- Zone Equipment 1 Cooling Sequence
+ 1, !- Zone Equipment 1 Heating or No-Load Sequence
+ , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
+ ; !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
+
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat,
+ ZN_1_FLR_1_SEC_1 Direct Air, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_1 Direct Air Inlet Node ATInlet, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_1 Direct Air Inlet Node, !- Air Outlet Node Name
+ AUTOSIZE, !- Maximum Air Flow Rate {m3/s}
+ , !- Design Specification Outdoor Air Object Name
+ ; !- Per Person Ventilation Rate Mode
+
+ ZoneHVAC:AirDistributionUnit,
+ ZN_1_FLR_1_SEC_1 Direct Air ADU, !- Name
+ ZN_1_FLR_1_SEC_1 Direct Air Inlet Node, !- Air Distribution Unit Outlet Node Name
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type
+ ZN_1_FLR_1_SEC_1 Direct Air, !- Air Terminal Name
+ , !- Nominal Upstream Leakage Fraction
+ , !- Constant Downstream Leakage Fraction
+ ; !- Design Specification Air Terminal Sizing Object Name
+
+ SetpointManager:SingleZone:Reheat,
+ SupAirTemp MngrZN_1_FLR_1_SEC_1, !- Name
+ Temperature, !- Control Variable
+ 13.0, !- Minimum Supply Air Temperature {C}
+ 40.0, !- Maximum Supply Air Temperature {C}
+ ZN_1_FLR_1_SEC_1, !- Control Zone Name
+ ZN_1_FLR_1_SEC_1 Air Node, !- Zone Node Name
+ ZN_1_FLR_1_SEC_1 Direct Air Inlet Node, !- Zone Inlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name
+
+!***** Process Loads For Zone: ZN_1_FLR_1_SEC_1 *****
+
+ WaterUse:Connections,
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT, !- Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Water Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Water Outlet Node, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ , !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT; !- Water Use Equipment 1 Name
+
+ WaterUse:Equipment,
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT, !- Name
+ SHW_DEFAULT, !- End-Use Subcategory
+ 2.21418604788511E-6, !- Peak Flow Rate {m3/s}
+ HOURS_OF_OPERATION, !- Flow Rate Fraction Schedule Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Temp Sched, !- Target Temperature Schedule Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULTHot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ ZN_1_FLR_1_SEC_1, !- Zone Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Sensible fract sched, !- Sensible Fraction Schedule Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Latent fract sched; !- Latent Fraction Schedule Name
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Latent fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.05; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Sensible fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.2; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,40; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_1SHW_DEFAULTHot Supply Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,55; !- Field 3
+
+ Zone,
+ ZN_1_FLR_1_SEC_2, !- Name
+ 0.0000, !- Direction of Relative North {deg}
+ 21.7558, !- X Origin {m}
+ 0.0000, !- Y Origin {m}
+ 0.0000, !- Z Origin {m}
+ 1, !- Type
+ 1.0000, !- Multiplier
+ 5.0088, !- Ceiling Height {m}
+ 305.9154, !- Volume {m3}
+ autocalculate, !- Floor Area {m2}
+ , !- Zone Inside Convection Algorithm
+ , !- Zone Outside Convection Algorithm
+ YES; !- Part of Total Floor Area
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_2_Wall_1, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Steel-Framed_Ext-wall, !- Construction Name
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.5000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,17.935,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,17.935,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ FenestrationSurface:Detailed,
+ ZN_1_FLR_1_SEC_2_Wall_1_window_1, !- Name
+ Window, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_west_window, !- Construction Name
+ ZN_1_FLR_1_SEC_2_Wall_1, !- Building Surface Name
+ , !- Outside Boundary Condition Object
+ 0.5000, !- View Factor to Ground
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 4, !- Number of Vertices
+ 0.000,0.050,1.363, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,0.050,1.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,17.885,1.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,17.885,1.363; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_2_Wall_2, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_3_Wall_2, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,17.935,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,17.935,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ -4.570,13.365,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ -4.570,13.365,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_2_Wall_3, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_5_Wall_2, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ -4.570,13.365,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ -4.570,13.365,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ -4.570,4.570,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ -4.570,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_2_Wall_4, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_1_Wall_2, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ -4.570,4.570,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ -4.570,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_2_Floor, !- Name
+ floor, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Construction Name
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ Ground, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ -4.570,4.570,0.000, !- X,Y,Z ==> Vertex 1 {m}
+ -4.570,13.365,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,17.935,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,0.000; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_2_Ceiling,!- Name
+ ceiling, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Construction Name
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,17.935,5.009, !- X,Y,Z ==> Vertex 2 {m}
+ -4.570,13.365,5.009, !- X,Y,Z ==> Vertex 3 {m}
+ -4.570,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ InternalMass,
+ ZN_1_FLR_1_SEC_2_InternalMass_1, !- Name
+ InteriorFurnishings, !- Construction Name
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ 122.1516; !- Surface Area {m2}
+
+ ZoneInfiltration:DesignFlowRate,
+ ZN_1_FLR_1_SEC_2_Infiltration, !- Name
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ INFIL_SCH, !- Schedule Name
+ flow/zone, !- Design Flow Rate Calculation Method
+ 0.0435, !- Design Flow Rate {m3/s}
+ , !- Flow per Zone Floor Area {m3/s-m2}
+ , !- Flow per Exterior Surface Area {m3/s-m2}
+ , !- Air Changes per Hour {1/hr}
+ 1.0000, !- Constant Term Coefficient
+ 0.0000, !- Temperature Term Coefficient
+ 0.0000, !- Velocity Term Coefficient
+ 0.0000; !- Velocity Squared Term Coefficient
+
+ People,
+ ZN_1_FLR_1_SEC_2, !- Name
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ BLDG_OCC_SCH, !- Number of People Schedule Name
+ people, !- Number of People Calculation Method
+ 0.4696, !- Number of People
+ , !- People per Zone Floor Area {person/m2}
+ , !- Zone Floor Area per Person {m2/person}
+ 0.3000, !- Fraction Radiant
+ , !- Sensible Heat Fraction
+ ACTIVITY_SCH, !- Activity Level Schedule Name
+ 3.82E-8, !- Carbon Dioxide Generation Rate {m3/s-W}
+ , !- Enable ASHRAE 55 Comfort Warnings
+ ZoneAveraged, !- Mean Radiant Temperature Calculation Type
+ , !- Surface Name/Angle Factor List Name
+ WORK_EFF_SCH, !- Work Efficiency Schedule Name
+ ClothingInsulationSchedule, !- Clothing Insulation Calculation Method
+ , !- Clothing Insulation Calculation Method Schedule Name
+ CLOTHING_SCH, !- Clothing Insulation Schedule Name
+ AIR_VELO_SCH, !- Air Velocity Schedule Name
+ FANGER; !- Thermal Comfort Model 1 Type
+
+ Lights,
+ ZN_1_FLR_1_SEC_2_Lights, !- Name
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ BLDG_LIGHT_SCH, !- Schedule Name
+ LightingLevel, !- Design Level Calculation Method
+ 916.1373, !- Lighting Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Return Air Fraction
+ 0.2000, !- Fraction Radiant
+ 0.2000, !- Fraction Visible
+ 1.0000, !- Fraction Replaceable
+ General Lights; !- End-Use Subcategory
+
+ ComponentCost:LineItem,
+ LIGHTING EQUIP:ZN_1_FLR_1_SEC_2, !- Name
+ , !- Type
+ LIGHTS, !- Line Item Type
+ ZN_1_FLR_1_SEC_2, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 1.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ ElectricEquipment,
+ ZN_1_FLR_1_SEC_2_MiscPlug_Equip, !- Name
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 362.3476, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.5000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ GeneralEquipment; !- End-Use Subcategory
+
+ GasEquipment,
+ ZN_1_FLR_1_SEC_2_MiscGas_Equip, !- Name
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 143.1654, !- Design Level {W}
+ , !- Power per Zone Floor Area {W/m2}
+ , !- Power per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.2000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ 0, !- Carbon Dioxide Generation Rate {m3/s-W}
+ GeneralEquipment; !- End-Use Subcategory
+
+!***** Space Conditioning For Zone: ZN_1_FLR_1_SEC_2 *****
+
+ Sizing:Zone,
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method
+ 14.0, !- Zone Cooling Design Supply Air Temperature {C}
+ , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}
+ SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method
+ 50.0, !- Zone Heating Design Supply Air Temperature {C}
+ , !- Zone Heating Design Supply Air Temperature Difference {deltaC}
+ 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ SZ DSOA ZN_1_FLR_1_SEC_2,!- Design Specification Outdoor Air Object Name
+ 0.0, !- Zone Heating Sizing Factor
+ 0.0, !- Zone Cooling Sizing Factor
+ DesignDay, !- Cooling Design Air Flow Method
+ 0.0, !- Cooling Design Air Flow Rate {m3/s}
+ , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}
+ 0.0, !- Cooling Minimum Air Flow {m3/s}
+ 0.0, !- Cooling Minimum Air Flow Fraction
+ DesignDay, !- Heating Design Air Flow Method
+ 0.0, !- Heating Design Air Flow Rate {m3/s}
+ , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}
+ , !- Heating Maximum Air Flow {m3/s}
+ , !- Heating Maximum Air Flow Fraction
+ , !- Design Specification Zone Air Distribution Object Name
+ No, !- Account for Dedicated Outdoor Air System
+ NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy
+ autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}
+ autosize; !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}
+
+ DesignSpecification:OutdoorAir,
+ SZ DSOA ZN_1_FLR_1_SEC_2,!- Name
+ FLOW/ZONE, !- Outdoor Air Method
+ , !- Outdoor Air Flow per Person {m3/s-person}
+ 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}
+ 0.057316225695446; !- Outdoor Air Flow per Zone {m3/s}
+
+ ZoneControl:Thermostat,
+ ZN_1_FLR_1_SEC_2 Thermostat, !- Name
+ ZN_1_FLR_1_SEC_2, !- Zone or ZoneList Name
+ Dual Zone Control Type Sched, !- Control Type Schedule Name
+ ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type
+ ZN_1_FLR_1_SEC_2 DualSPSched; !- Control 1 Name
+
+ ThermostatSetpoint:DualSetpoint,
+ ZN_1_FLR_1_SEC_2 DualSPSched, !- Name
+ HtgSetP_Sch, !- Heating Setpoint Temperature Schedule Name
+ ClgSetP_Sch; !- Cooling Setpoint Temperature Schedule Name
+
+ ZoneHVAC:EquipmentConnections,
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ ZN_1_FLR_1_SEC_2 Equipment, !- Zone Conditioning Equipment List Name
+ ZN_1_FLR_1_SEC_2 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name
+ , !- Zone Air Exhaust Node or NodeList Name
+ ZN_1_FLR_1_SEC_2 Air Node, !- Zone Air Node Name
+ ZN_1_FLR_1_SEC_2 Return Air Node; !- Zone Return Air Node or NodeList Name
+
+ NodeList,
+ ZN_1_FLR_1_SEC_2 Inlet Nodes, !- Name
+ ZN_1_FLR_1_SEC_2 Direct Air Inlet Node; !- Node 1 Name
+
+ ZoneHVAC:EquipmentList,
+ ZN_1_FLR_1_SEC_2 Equipment, !- Name
+ SequentialLoad, !- Load Distribution Scheme
+ ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
+ ZN_1_FLR_1_SEC_2 Direct Air ADU, !- Zone Equipment 1 Name
+ 1, !- Zone Equipment 1 Cooling Sequence
+ 1, !- Zone Equipment 1 Heating or No-Load Sequence
+ , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
+ ; !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
+
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat,
+ ZN_1_FLR_1_SEC_2 Direct Air, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_2 Direct Air Inlet Node ATInlet, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_2 Direct Air Inlet Node, !- Air Outlet Node Name
+ AUTOSIZE, !- Maximum Air Flow Rate {m3/s}
+ , !- Design Specification Outdoor Air Object Name
+ ; !- Per Person Ventilation Rate Mode
+
+ ZoneHVAC:AirDistributionUnit,
+ ZN_1_FLR_1_SEC_2 Direct Air ADU, !- Name
+ ZN_1_FLR_1_SEC_2 Direct Air Inlet Node, !- Air Distribution Unit Outlet Node Name
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type
+ ZN_1_FLR_1_SEC_2 Direct Air, !- Air Terminal Name
+ , !- Nominal Upstream Leakage Fraction
+ , !- Constant Downstream Leakage Fraction
+ ; !- Design Specification Air Terminal Sizing Object Name
+
+ SetpointManager:SingleZone:Reheat,
+ SupAirTemp MngrZN_1_FLR_1_SEC_2, !- Name
+ Temperature, !- Control Variable
+ 13.0, !- Minimum Supply Air Temperature {C}
+ 40.0, !- Maximum Supply Air Temperature {C}
+ ZN_1_FLR_1_SEC_2, !- Control Zone Name
+ ZN_1_FLR_1_SEC_2 Air Node, !- Zone Node Name
+ ZN_1_FLR_1_SEC_2 Direct Air Inlet Node, !- Zone Inlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name
+
+!***** Process Loads For Zone: ZN_1_FLR_1_SEC_2 *****
+
+ WaterUse:Connections,
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT, !- Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Water Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Water Outlet Node, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ , !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT; !- Water Use Equipment 1 Name
+
+ WaterUse:Equipment,
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT, !- Name
+ SHW_DEFAULT, !- End-Use Subcategory
+ 1.72185666291403E-7, !- Peak Flow Rate {m3/s}
+ HOURS_OF_OPERATION, !- Flow Rate Fraction Schedule Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Temp Sched, !- Target Temperature Schedule Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULTHot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ ZN_1_FLR_1_SEC_2, !- Zone Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Sensible fract sched, !- Sensible Fraction Schedule Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Latent fract sched; !- Latent Fraction Schedule Name
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Latent fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.05; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Sensible fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.2; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,40; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_2SHW_DEFAULTHot Supply Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,55; !- Field 3
+
+ Zone,
+ ZN_1_FLR_1_SEC_3, !- Name
+ 0.0000, !- Direction of Relative North {deg}
+ 4.5700, !- X Origin {m}
+ 13.3645, !- Y Origin {m}
+ 0.0000, !- Z Origin {m}
+ 1, !- Type
+ 1.0000, !- Multiplier
+ 5.0088, !- Ceiling Height {m}
+ 393.3855, !- Volume {m3}
+ autocalculate, !- Floor Area {m2}
+ , !- Zone Inside Convection Algorithm
+ , !- Zone Outside Convection Algorithm
+ YES; !- Part of Total Floor Area
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_3_Wall_1, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_5_Wall_3, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 12.616,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 12.616,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_3_Wall_2, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_2_Wall_2, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.616,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 12.616,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 17.186,4.570,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 17.186,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_3_Wall_3, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Steel-Framed_Ext-wall, !- Construction Name
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.5000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 17.186,4.570,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 17.186,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ -4.570,4.570,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ -4.570,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ FenestrationSurface:Detailed,
+ ZN_1_FLR_1_SEC_3_Wall_3_window_1, !- Name
+ Window, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_south_window, !- Construction Name
+ ZN_1_FLR_1_SEC_3_Wall_3, !- Building Surface Name
+ , !- Outside Boundary Condition Object
+ 0.5000, !- View Factor to Ground
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 4, !- Number of Vertices
+ 17.136,4.570,1.362, !- X,Y,Z ==> Vertex 1 {m}
+ 17.136,4.570,1.000, !- X,Y,Z ==> Vertex 2 {m}
+ -4.520,4.570,1.000, !- X,Y,Z ==> Vertex 3 {m}
+ -4.520,4.570,1.362; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_3_Wall_4, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_4_Wall_3, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ -4.570,4.570,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ -4.570,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_3_Floor, !- Name
+ floor, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Construction Name
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ Ground, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ -4.570,4.570,0.000, !- X,Y,Z ==> Vertex 1 {m}
+ 17.186,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 12.616,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,0.000; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_3_Ceiling,!- Name
+ ceiling, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Construction Name
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 12.616,0.000,5.009, !- X,Y,Z ==> Vertex 2 {m}
+ 17.186,4.570,5.009, !- X,Y,Z ==> Vertex 3 {m}
+ -4.570,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ InternalMass,
+ ZN_1_FLR_1_SEC_3_InternalMass_1, !- Name
+ InteriorFurnishings, !- Construction Name
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ 157.0784; !- Surface Area {m2}
+
+ ZoneInfiltration:DesignFlowRate,
+ ZN_1_FLR_1_SEC_3_Infiltration, !- Name
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ INFIL_SCH, !- Schedule Name
+ flow/zone, !- Design Flow Rate Calculation Method
+ 0.0542, !- Design Flow Rate {m3/s}
+ , !- Flow per Zone Floor Area {m3/s-m2}
+ , !- Flow per Exterior Surface Area {m3/s-m2}
+ , !- Air Changes per Hour {1/hr}
+ 1.0000, !- Constant Term Coefficient
+ 0.0000, !- Temperature Term Coefficient
+ 0.0000, !- Velocity Term Coefficient
+ 0.0000; !- Velocity Squared Term Coefficient
+
+ People,
+ ZN_1_FLR_1_SEC_3, !- Name
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ BLDG_OCC_SCH, !- Number of People Schedule Name
+ people, !- Number of People Calculation Method
+ 0.6039, !- Number of People
+ , !- People per Zone Floor Area {person/m2}
+ , !- Zone Floor Area per Person {m2/person}
+ 0.3000, !- Fraction Radiant
+ , !- Sensible Heat Fraction
+ ACTIVITY_SCH, !- Activity Level Schedule Name
+ 3.82E-8, !- Carbon Dioxide Generation Rate {m3/s-W}
+ , !- Enable ASHRAE 55 Comfort Warnings
+ ZoneAveraged, !- Mean Radiant Temperature Calculation Type
+ , !- Surface Name/Angle Factor List Name
+ WORK_EFF_SCH, !- Work Efficiency Schedule Name
+ ClothingInsulationSchedule, !- Clothing Insulation Calculation Method
+ , !- Clothing Insulation Calculation Method Schedule Name
+ CLOTHING_SCH, !- Clothing Insulation Schedule Name
+ AIR_VELO_SCH, !- Air Velocity Schedule Name
+ FANGER; !- Thermal Comfort Model 1 Type
+
+ Lights,
+ ZN_1_FLR_1_SEC_3_Lights, !- Name
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ BLDG_LIGHT_SCH, !- Schedule Name
+ LightingLevel, !- Design Level Calculation Method
+ 1178.0879, !- Lighting Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Return Air Fraction
+ 0.2000, !- Fraction Radiant
+ 0.2000, !- Fraction Visible
+ 1.0000, !- Fraction Replaceable
+ General Lights; !- End-Use Subcategory
+
+ ComponentCost:LineItem,
+ LIGHTING EQUIP:ZN_1_FLR_1_SEC_3, !- Name
+ , !- Type
+ LIGHTS, !- Line Item Type
+ ZN_1_FLR_1_SEC_3, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 1.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ ElectricEquipment,
+ ZN_1_FLR_1_SEC_3_MiscPlug_Equip, !- Name
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 465.9534, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.5000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ GeneralEquipment; !- End-Use Subcategory
+
+ GasEquipment,
+ ZN_1_FLR_1_SEC_3_MiscGas_Equip, !- Name
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 184.1006, !- Design Level {W}
+ , !- Power per Zone Floor Area {W/m2}
+ , !- Power per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.2000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ 0, !- Carbon Dioxide Generation Rate {m3/s-W}
+ GeneralEquipment; !- End-Use Subcategory
+
+!***** Space Conditioning For Zone: ZN_1_FLR_1_SEC_3 *****
+
+ Sizing:Zone,
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method
+ 14.0, !- Zone Cooling Design Supply Air Temperature {C}
+ , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}
+ SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method
+ 50.0, !- Zone Heating Design Supply Air Temperature {C}
+ , !- Zone Heating Design Supply Air Temperature Difference {deltaC}
+ 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ SZ DSOA ZN_1_FLR_1_SEC_3,!- Design Specification Outdoor Air Object Name
+ 0.0, !- Zone Heating Sizing Factor
+ 0.0, !- Zone Cooling Sizing Factor
+ DesignDay, !- Cooling Design Air Flow Method
+ 0.0, !- Cooling Design Air Flow Rate {m3/s}
+ , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}
+ 0.0, !- Cooling Minimum Air Flow {m3/s}
+ 0.0, !- Cooling Minimum Air Flow Fraction
+ DesignDay, !- Heating Design Air Flow Method
+ 0.0, !- Heating Design Air Flow Rate {m3/s}
+ , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}
+ , !- Heating Maximum Air Flow {m3/s}
+ , !- Heating Maximum Air Flow Fraction
+ , !- Design Specification Zone Air Distribution Object Name
+ No, !- Account for Dedicated Outdoor Air System
+ NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy
+ autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}
+ autosize; !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}
+
+ DesignSpecification:OutdoorAir,
+ SZ DSOA ZN_1_FLR_1_SEC_3,!- Name
+ FLOW/ZONE, !- Outdoor Air Method
+ , !- Outdoor Air Flow per Person {m3/s-person}
+ 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}
+ 0.073704617803385; !- Outdoor Air Flow per Zone {m3/s}
+
+ ZoneControl:Thermostat,
+ ZN_1_FLR_1_SEC_3 Thermostat, !- Name
+ ZN_1_FLR_1_SEC_3, !- Zone or ZoneList Name
+ Dual Zone Control Type Sched, !- Control Type Schedule Name
+ ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type
+ ZN_1_FLR_1_SEC_3 DualSPSched; !- Control 1 Name
+
+ ThermostatSetpoint:DualSetpoint,
+ ZN_1_FLR_1_SEC_3 DualSPSched, !- Name
+ HtgSetP_Sch, !- Heating Setpoint Temperature Schedule Name
+ ClgSetP_Sch; !- Cooling Setpoint Temperature Schedule Name
+
+ ZoneHVAC:EquipmentConnections,
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ ZN_1_FLR_1_SEC_3 Equipment, !- Zone Conditioning Equipment List Name
+ ZN_1_FLR_1_SEC_3 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name
+ , !- Zone Air Exhaust Node or NodeList Name
+ ZN_1_FLR_1_SEC_3 Air Node, !- Zone Air Node Name
+ ZN_1_FLR_1_SEC_3 Return Air Node; !- Zone Return Air Node or NodeList Name
+
+ NodeList,
+ ZN_1_FLR_1_SEC_3 Inlet Nodes, !- Name
+ ZN_1_FLR_1_SEC_3 Direct Air Inlet Node; !- Node 1 Name
+
+ ZoneHVAC:EquipmentList,
+ ZN_1_FLR_1_SEC_3 Equipment, !- Name
+ SequentialLoad, !- Load Distribution Scheme
+ ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
+ ZN_1_FLR_1_SEC_3 Direct Air ADU, !- Zone Equipment 1 Name
+ 1, !- Zone Equipment 1 Cooling Sequence
+ 1, !- Zone Equipment 1 Heating or No-Load Sequence
+ , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
+ ; !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
+
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat,
+ ZN_1_FLR_1_SEC_3 Direct Air, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_3 Direct Air Inlet Node ATInlet, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_3 Direct Air Inlet Node, !- Air Outlet Node Name
+ AUTOSIZE, !- Maximum Air Flow Rate {m3/s}
+ , !- Design Specification Outdoor Air Object Name
+ ; !- Per Person Ventilation Rate Mode
+
+ ZoneHVAC:AirDistributionUnit,
+ ZN_1_FLR_1_SEC_3 Direct Air ADU, !- Name
+ ZN_1_FLR_1_SEC_3 Direct Air Inlet Node, !- Air Distribution Unit Outlet Node Name
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type
+ ZN_1_FLR_1_SEC_3 Direct Air, !- Air Terminal Name
+ , !- Nominal Upstream Leakage Fraction
+ , !- Constant Downstream Leakage Fraction
+ ; !- Design Specification Air Terminal Sizing Object Name
+
+ SetpointManager:SingleZone:Reheat,
+ SupAirTemp MngrZN_1_FLR_1_SEC_3, !- Name
+ Temperature, !- Control Variable
+ 13.0, !- Minimum Supply Air Temperature {C}
+ 40.0, !- Maximum Supply Air Temperature {C}
+ ZN_1_FLR_1_SEC_3, !- Control Zone Name
+ ZN_1_FLR_1_SEC_3 Air Node, !- Zone Node Name
+ ZN_1_FLR_1_SEC_3 Direct Air Inlet Node, !- Zone Inlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name
+
+!***** Process Loads For Zone: ZN_1_FLR_1_SEC_3 *****
+
+ WaterUse:Connections,
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT, !- Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Water Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Water Outlet Node, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ , !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT; !- Water Use Equipment 1 Name
+
+ WaterUse:Equipment,
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT, !- Name
+ SHW_DEFAULT, !- End-Use Subcategory
+ 2.21418604788511E-6, !- Peak Flow Rate {m3/s}
+ HOURS_OF_OPERATION, !- Flow Rate Fraction Schedule Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Temp Sched, !- Target Temperature Schedule Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULTHot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ ZN_1_FLR_1_SEC_3, !- Zone Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Sensible fract sched, !- Sensible Fraction Schedule Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Latent fract sched; !- Latent Fraction Schedule Name
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Latent fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.05; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Sensible fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.2; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,40; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_3SHW_DEFAULTHot Supply Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,55; !- Field 3
+
+ Zone,
+ ZN_1_FLR_1_SEC_4, !- Name
+ 0.0000, !- Direction of Relative North {deg}
+ 0.0000, !- X Origin {m}
+ 0.0000, !- Y Origin {m}
+ 0.0000, !- Z Origin {m}
+ 1, !- Type
+ 1.0000, !- Multiplier
+ 5.0088, !- Ceiling Height {m}
+ 305.9154, !- Volume {m3}
+ autocalculate, !- Floor Area {m2}
+ , !- Zone Inside Convection Algorithm
+ , !- Zone Outside Convection Algorithm
+ YES; !- Part of Total Floor Area
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_4_Wall_1, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_1_Wall_4, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 4.570,4.570,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 4.570,4.570,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_4_Wall_2, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_5_Wall_4, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 4.570,4.570,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 4.570,4.570,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 4.570,13.365,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 4.570,13.365,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_4_Wall_3, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_3_Wall_4, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 4.570,13.365,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 4.570,13.365,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,17.935,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,17.935,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_4_Wall_4, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Steel-Framed_Ext-wall, !- Construction Name
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.5000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,17.935,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,17.935,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ FenestrationSurface:Detailed,
+ ZN_1_FLR_1_SEC_4_Wall_4_window_1, !- Name
+ Window, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_0_0.1_fixed_east_window, !- Construction Name
+ ZN_1_FLR_1_SEC_4_Wall_4, !- Building Surface Name
+ , !- Outside Boundary Condition Object
+ 0.5000, !- View Factor to Ground
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 4, !- Number of Vertices
+ 0.000,17.885,1.363, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,17.885,1.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,0.050,1.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.050,1.363; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_4_Floor, !- Name
+ floor, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Construction Name
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ Ground, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,17.935,0.000, !- X,Y,Z ==> Vertex 1 {m}
+ 4.570,13.365,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 4.570,4.570,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,0.000; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_4_Ceiling,!- Name
+ ceiling, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Construction Name
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 4.570,4.570,5.009, !- X,Y,Z ==> Vertex 2 {m}
+ 4.570,13.365,5.009, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,17.935,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ InternalMass,
+ ZN_1_FLR_1_SEC_4_InternalMass_1, !- Name
+ InteriorFurnishings, !- Construction Name
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ 122.1516; !- Surface Area {m2}
+
+ ZoneInfiltration:DesignFlowRate,
+ ZN_1_FLR_1_SEC_4_Infiltration, !- Name
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ INFIL_SCH, !- Schedule Name
+ flow/zone, !- Design Flow Rate Calculation Method
+ 0.0435, !- Design Flow Rate {m3/s}
+ , !- Flow per Zone Floor Area {m3/s-m2}
+ , !- Flow per Exterior Surface Area {m3/s-m2}
+ , !- Air Changes per Hour {1/hr}
+ 1.0000, !- Constant Term Coefficient
+ 0.0000, !- Temperature Term Coefficient
+ 0.0000, !- Velocity Term Coefficient
+ 0.0000; !- Velocity Squared Term Coefficient
+
+ People,
+ ZN_1_FLR_1_SEC_4, !- Name
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ BLDG_OCC_SCH, !- Number of People Schedule Name
+ people, !- Number of People Calculation Method
+ 0.4696, !- Number of People
+ , !- People per Zone Floor Area {person/m2}
+ , !- Zone Floor Area per Person {m2/person}
+ 0.3000, !- Fraction Radiant
+ , !- Sensible Heat Fraction
+ ACTIVITY_SCH, !- Activity Level Schedule Name
+ 3.82E-8, !- Carbon Dioxide Generation Rate {m3/s-W}
+ , !- Enable ASHRAE 55 Comfort Warnings
+ ZoneAveraged, !- Mean Radiant Temperature Calculation Type
+ , !- Surface Name/Angle Factor List Name
+ WORK_EFF_SCH, !- Work Efficiency Schedule Name
+ ClothingInsulationSchedule, !- Clothing Insulation Calculation Method
+ , !- Clothing Insulation Calculation Method Schedule Name
+ CLOTHING_SCH, !- Clothing Insulation Schedule Name
+ AIR_VELO_SCH, !- Air Velocity Schedule Name
+ FANGER; !- Thermal Comfort Model 1 Type
+
+ Lights,
+ ZN_1_FLR_1_SEC_4_Lights, !- Name
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ BLDG_LIGHT_SCH, !- Schedule Name
+ LightingLevel, !- Design Level Calculation Method
+ 916.1373, !- Lighting Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Return Air Fraction
+ 0.2000, !- Fraction Radiant
+ 0.2000, !- Fraction Visible
+ 1.0000, !- Fraction Replaceable
+ General Lights; !- End-Use Subcategory
+
+ ComponentCost:LineItem,
+ LIGHTING EQUIP:ZN_1_FLR_1_SEC_4, !- Name
+ , !- Type
+ LIGHTS, !- Line Item Type
+ ZN_1_FLR_1_SEC_4, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 1.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ ElectricEquipment,
+ ZN_1_FLR_1_SEC_4_MiscPlug_Equip, !- Name
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 362.3476, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.5000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ GeneralEquipment; !- End-Use Subcategory
+
+ GasEquipment,
+ ZN_1_FLR_1_SEC_4_MiscGas_Equip, !- Name
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 143.1654, !- Design Level {W}
+ , !- Power per Zone Floor Area {W/m2}
+ , !- Power per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.2000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ 0, !- Carbon Dioxide Generation Rate {m3/s-W}
+ GeneralEquipment; !- End-Use Subcategory
+
+!***** Space Conditioning For Zone: ZN_1_FLR_1_SEC_4 *****
+
+ Sizing:Zone,
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method
+ 14.0, !- Zone Cooling Design Supply Air Temperature {C}
+ , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}
+ SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method
+ 50.0, !- Zone Heating Design Supply Air Temperature {C}
+ , !- Zone Heating Design Supply Air Temperature Difference {deltaC}
+ 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ SZ DSOA ZN_1_FLR_1_SEC_4,!- Design Specification Outdoor Air Object Name
+ 0.0, !- Zone Heating Sizing Factor
+ 0.0, !- Zone Cooling Sizing Factor
+ DesignDay, !- Cooling Design Air Flow Method
+ 0.0, !- Cooling Design Air Flow Rate {m3/s}
+ , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}
+ 0.0, !- Cooling Minimum Air Flow {m3/s}
+ 0.0, !- Cooling Minimum Air Flow Fraction
+ DesignDay, !- Heating Design Air Flow Method
+ 0.0, !- Heating Design Air Flow Rate {m3/s}
+ , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}
+ , !- Heating Maximum Air Flow {m3/s}
+ , !- Heating Maximum Air Flow Fraction
+ , !- Design Specification Zone Air Distribution Object Name
+ No, !- Account for Dedicated Outdoor Air System
+ NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy
+ autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}
+ autosize; !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}
+
+ DesignSpecification:OutdoorAir,
+ SZ DSOA ZN_1_FLR_1_SEC_4,!- Name
+ FLOW/ZONE, !- Outdoor Air Method
+ , !- Outdoor Air Flow per Person {m3/s-person}
+ 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}
+ 0.057316225695446; !- Outdoor Air Flow per Zone {m3/s}
+
+ ZoneControl:Thermostat,
+ ZN_1_FLR_1_SEC_4 Thermostat, !- Name
+ ZN_1_FLR_1_SEC_4, !- Zone or ZoneList Name
+ Dual Zone Control Type Sched, !- Control Type Schedule Name
+ ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type
+ ZN_1_FLR_1_SEC_4 DualSPSched; !- Control 1 Name
+
+ ThermostatSetpoint:DualSetpoint,
+ ZN_1_FLR_1_SEC_4 DualSPSched, !- Name
+ HtgSetP_Sch, !- Heating Setpoint Temperature Schedule Name
+ ClgSetP_Sch; !- Cooling Setpoint Temperature Schedule Name
+
+ ZoneHVAC:EquipmentConnections,
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ ZN_1_FLR_1_SEC_4 Equipment, !- Zone Conditioning Equipment List Name
+ ZN_1_FLR_1_SEC_4 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name
+ , !- Zone Air Exhaust Node or NodeList Name
+ ZN_1_FLR_1_SEC_4 Air Node, !- Zone Air Node Name
+ ZN_1_FLR_1_SEC_4 Return Air Node; !- Zone Return Air Node or NodeList Name
+
+ NodeList,
+ ZN_1_FLR_1_SEC_4 Inlet Nodes, !- Name
+ ZN_1_FLR_1_SEC_4 Direct Air Inlet Node; !- Node 1 Name
+
+ ZoneHVAC:EquipmentList,
+ ZN_1_FLR_1_SEC_4 Equipment, !- Name
+ SequentialLoad, !- Load Distribution Scheme
+ ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
+ ZN_1_FLR_1_SEC_4 Direct Air ADU, !- Zone Equipment 1 Name
+ 1, !- Zone Equipment 1 Cooling Sequence
+ 1, !- Zone Equipment 1 Heating or No-Load Sequence
+ , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
+ ; !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
+
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat,
+ ZN_1_FLR_1_SEC_4 Direct Air, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_4 Direct Air Inlet Node ATInlet, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_4 Direct Air Inlet Node, !- Air Outlet Node Name
+ AUTOSIZE, !- Maximum Air Flow Rate {m3/s}
+ , !- Design Specification Outdoor Air Object Name
+ ; !- Per Person Ventilation Rate Mode
+
+ ZoneHVAC:AirDistributionUnit,
+ ZN_1_FLR_1_SEC_4 Direct Air ADU, !- Name
+ ZN_1_FLR_1_SEC_4 Direct Air Inlet Node, !- Air Distribution Unit Outlet Node Name
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type
+ ZN_1_FLR_1_SEC_4 Direct Air, !- Air Terminal Name
+ , !- Nominal Upstream Leakage Fraction
+ , !- Constant Downstream Leakage Fraction
+ ; !- Design Specification Air Terminal Sizing Object Name
+
+ SetpointManager:SingleZone:Reheat,
+ SupAirTemp MngrZN_1_FLR_1_SEC_4, !- Name
+ Temperature, !- Control Variable
+ 13.0, !- Minimum Supply Air Temperature {C}
+ 40.0, !- Maximum Supply Air Temperature {C}
+ ZN_1_FLR_1_SEC_4, !- Control Zone Name
+ ZN_1_FLR_1_SEC_4 Air Node, !- Zone Node Name
+ ZN_1_FLR_1_SEC_4 Direct Air Inlet Node, !- Zone Inlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name
+
+!***** Process Loads For Zone: ZN_1_FLR_1_SEC_4 *****
+
+ WaterUse:Connections,
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT, !- Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Water Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Water Outlet Node, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ , !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT; !- Water Use Equipment 1 Name
+
+ WaterUse:Equipment,
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT, !- Name
+ SHW_DEFAULT, !- End-Use Subcategory
+ 1.72185666291403E-6, !- Peak Flow Rate {m3/s}
+ HOURS_OF_OPERATION, !- Flow Rate Fraction Schedule Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Temp Sched, !- Target Temperature Schedule Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULTHot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ ZN_1_FLR_1_SEC_4, !- Zone Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Sensible fract sched, !- Sensible Fraction Schedule Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Latent fract sched; !- Latent Fraction Schedule Name
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Latent fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.05; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Sensible fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.2; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,40; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_4SHW_DEFAULTHot Supply Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,55; !- Field 3
+
+ Zone,
+ ZN_1_FLR_1_SEC_5, !- Name
+ 0.0000, !- Direction of Relative North {deg}
+ 4.5700, !- X Origin {m}
+ 4.5700, !- Y Origin {m}
+ 0.0000, !- Z Origin {m}
+ 1, !- Type
+ 1.0000, !- Multiplier
+ 5.0088, !- Ceiling Height {m}
+ 555.7240, !- Volume {m3}
+ autocalculate, !- Floor Area {m2}
+ , !- Zone Inside Convection Algorithm
+ , !- Zone Outside Convection Algorithm
+ YES; !- Part of Total Floor Area
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_5_Wall_1, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_1_Wall_3, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 12.616,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 12.616,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_5_Wall_2, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_2_Wall_3, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.616,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 12.616,0.000,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 12.616,8.795,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 12.616,8.795,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_5_Wall_3, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_3_Wall_1, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.616,8.795,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 12.616,8.795,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,8.795,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,8.795,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_5_Wall_4, !- Name
+ wall, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Interior Wall_Int-Wall, !- Construction Name
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ Surface, !- Outside Boundary Condition
+ ZN_1_FLR_1_SEC_4_Wall_2, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,8.795,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 0.000,8.795,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 0.000,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_5_Floor, !- Name
+ floor, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_Unheated_Ext-slab, !- Construction Name
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ Ground, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,8.795,0.000, !- X,Y,Z ==> Vertex 1 {m}
+ 12.616,8.795,0.000, !- X,Y,Z ==> Vertex 2 {m}
+ 12.616,0.000,0.000, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,0.000,0.000; !- X,Y,Z ==> Vertex 4 {m}
+
+ BuildingSurface:Detailed,
+ ZN_1_FLR_1_SEC_5_Ceiling,!- Name
+ ceiling, !- Surface Type
+ ASHRAE 90.1-2004_Sec 5.5-3ab_IEAD_Roof, !- Construction Name
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0000, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0.000,0.000,5.009, !- X,Y,Z ==> Vertex 1 {m}
+ 12.616,0.000,5.009, !- X,Y,Z ==> Vertex 2 {m}
+ 12.616,8.795,5.009, !- X,Y,Z ==> Vertex 3 {m}
+ 0.000,8.795,5.009; !- X,Y,Z ==> Vertex 4 {m}
+
+ InternalMass,
+ ZN_1_FLR_1_SEC_5_InternalMass_1, !- Name
+ InteriorFurnishings, !- Construction Name
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ 221.8999; !- Surface Area {m2}
+
+ ZoneInfiltration:DesignFlowRate,
+ ZN_1_FLR_1_SEC_5_Infiltration, !- Name
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ INFIL_SCH, !- Schedule Name
+ flow/zone, !- Design Flow Rate Calculation Method
+ 0.0354, !- Design Flow Rate {m3/s}
+ , !- Flow per Zone Floor Area {m3/s-m2}
+ , !- Flow per Exterior Surface Area {m3/s-m2}
+ , !- Air Changes per Hour {1/hr}
+ 1.0000, !- Constant Term Coefficient
+ 0.0000, !- Temperature Term Coefficient
+ 0.0000, !- Velocity Term Coefficient
+ 0.0000; !- Velocity Squared Term Coefficient
+
+ People,
+ ZN_1_FLR_1_SEC_5, !- Name
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ BLDG_OCC_SCH, !- Number of People Schedule Name
+ people, !- Number of People Calculation Method
+ 0.8531, !- Number of People
+ , !- People per Zone Floor Area {person/m2}
+ , !- Zone Floor Area per Person {m2/person}
+ 0.3000, !- Fraction Radiant
+ , !- Sensible Heat Fraction
+ ACTIVITY_SCH, !- Activity Level Schedule Name
+ 3.82E-8, !- Carbon Dioxide Generation Rate {m3/s-W}
+ , !- Enable ASHRAE 55 Comfort Warnings
+ ZoneAveraged, !- Mean Radiant Temperature Calculation Type
+ , !- Surface Name/Angle Factor List Name
+ WORK_EFF_SCH, !- Work Efficiency Schedule Name
+ ClothingInsulationSchedule, !- Clothing Insulation Calculation Method
+ , !- Clothing Insulation Calculation Method Schedule Name
+ CLOTHING_SCH, !- Clothing Insulation Schedule Name
+ AIR_VELO_SCH, !- Air Velocity Schedule Name
+ FANGER; !- Thermal Comfort Model 1 Type
+
+ Lights,
+ ZN_1_FLR_1_SEC_5_Lights, !- Name
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ BLDG_LIGHT_SCH, !- Schedule Name
+ LightingLevel, !- Design Level Calculation Method
+ 1664.2496, !- Lighting Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Return Air Fraction
+ 0.2000, !- Fraction Radiant
+ 0.2000, !- Fraction Visible
+ 1.0000, !- Fraction Replaceable
+ General Lights; !- End-Use Subcategory
+
+ ComponentCost:LineItem,
+ LIGHTING EQUIP:ZN_1_FLR_1_SEC_5, !- Name
+ , !- Type
+ LIGHTS, !- Line Item Type
+ ZN_1_FLR_1_SEC_5, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 1.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ ElectricEquipment,
+ ZN_1_FLR_1_SEC_5_MiscPlug_Equip, !- Name
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 658.2385, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.5000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ GeneralEquipment; !- End-Use Subcategory
+
+ GasEquipment,
+ ZN_1_FLR_1_SEC_5_MiscGas_Equip, !- Name
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ BLDG_EQUIP_SCH, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 260.0734, !- Design Level {W}
+ , !- Power per Zone Floor Area {W/m2}
+ , !- Power per Person {W/person}
+ 0.0000, !- Fraction Latent
+ 0.2000, !- Fraction Radiant
+ 0.0000, !- Fraction Lost
+ 0, !- Carbon Dioxide Generation Rate {m3/s-W}
+ GeneralEquipment; !- End-Use Subcategory
+
+!***** Space Conditioning For Zone: ZN_1_FLR_1_SEC_5 *****
+
+ Sizing:Zone,
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method
+ 14.0, !- Zone Cooling Design Supply Air Temperature {C}
+ , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}
+ SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method
+ 50.0, !- Zone Heating Design Supply Air Temperature {C}
+ , !- Zone Heating Design Supply Air Temperature Difference {deltaC}
+ 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ SZ DSOA ZN_1_FLR_1_SEC_5,!- Design Specification Outdoor Air Object Name
+ 0.0, !- Zone Heating Sizing Factor
+ 0.0, !- Zone Cooling Sizing Factor
+ DesignDay, !- Cooling Design Air Flow Method
+ 0.0, !- Cooling Design Air Flow Rate {m3/s}
+ , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}
+ 0.0, !- Cooling Minimum Air Flow {m3/s}
+ 0.0, !- Cooling Minimum Air Flow Fraction
+ DesignDay, !- Heating Design Air Flow Method
+ 0.0, !- Heating Design Air Flow Rate {m3/s}
+ , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}
+ , !- Heating Maximum Air Flow {m3/s}
+ , !- Heating Maximum Air Flow Fraction
+ , !- Design Specification Zone Air Distribution Object Name
+ No, !- Account for Dedicated Outdoor Air System
+ NeutralSupplyAir, !- Dedicated Outdoor Air System Control Strategy
+ autosize, !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}
+ autosize; !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}
+
+ DesignSpecification:OutdoorAir,
+ SZ DSOA ZN_1_FLR_1_SEC_5,!- Name
+ FLOW/ZONE, !- Outdoor Air Method
+ , !- Outdoor Air Flow per Person {m3/s-person}
+ 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}
+ 0.104120314886338; !- Outdoor Air Flow per Zone {m3/s}
+
+ ZoneControl:Thermostat,
+ ZN_1_FLR_1_SEC_5 Thermostat, !- Name
+ ZN_1_FLR_1_SEC_5, !- Zone or ZoneList Name
+ Dual Zone Control Type Sched, !- Control Type Schedule Name
+ ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type
+ ZN_1_FLR_1_SEC_5 DualSPSched; !- Control 1 Name
+
+ ThermostatSetpoint:DualSetpoint,
+ ZN_1_FLR_1_SEC_5 DualSPSched, !- Name
+ HtgSetP_Sch, !- Heating Setpoint Temperature Schedule Name
+ ClgSetP_Sch; !- Cooling Setpoint Temperature Schedule Name
+
+ ZoneHVAC:EquipmentConnections,
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ ZN_1_FLR_1_SEC_5 Equipment, !- Zone Conditioning Equipment List Name
+ ZN_1_FLR_1_SEC_5 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name
+ , !- Zone Air Exhaust Node or NodeList Name
+ ZN_1_FLR_1_SEC_5 Air Node, !- Zone Air Node Name
+ ZN_1_FLR_1_SEC_5 Return Air Node; !- Zone Return Air Node or NodeList Name
+
+ NodeList,
+ ZN_1_FLR_1_SEC_5 Inlet Nodes, !- Name
+ ZN_1_FLR_1_SEC_5 Direct Air Inlet Node; !- Node 1 Name
+
+ ZoneHVAC:EquipmentList,
+ ZN_1_FLR_1_SEC_5 Equipment, !- Name
+ SequentialLoad, !- Load Distribution Scheme
+ ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
+ ZN_1_FLR_1_SEC_5 Direct Air ADU, !- Zone Equipment 1 Name
+ 1, !- Zone Equipment 1 Cooling Sequence
+ 1, !- Zone Equipment 1 Heating or No-Load Sequence
+ , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
+ ; !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
+
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat,
+ ZN_1_FLR_1_SEC_5 Direct Air, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_5 Direct Air Inlet Node ATInlet, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_5 Direct Air Inlet Node, !- Air Outlet Node Name
+ AUTOSIZE, !- Maximum Air Flow Rate {m3/s}
+ , !- Design Specification Outdoor Air Object Name
+ ; !- Per Person Ventilation Rate Mode
+
+ ZoneHVAC:AirDistributionUnit,
+ ZN_1_FLR_1_SEC_5 Direct Air ADU, !- Name
+ ZN_1_FLR_1_SEC_5 Direct Air Inlet Node, !- Air Distribution Unit Outlet Node Name
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type
+ ZN_1_FLR_1_SEC_5 Direct Air, !- Air Terminal Name
+ , !- Nominal Upstream Leakage Fraction
+ , !- Constant Downstream Leakage Fraction
+ ; !- Design Specification Air Terminal Sizing Object Name
+
+ SetpointManager:SingleZone:Reheat,
+ SupAirTemp MngrZN_1_FLR_1_SEC_5, !- Name
+ Temperature, !- Control Variable
+ 13.0, !- Minimum Supply Air Temperature {C}
+ 40.0, !- Maximum Supply Air Temperature {C}
+ ZN_1_FLR_1_SEC_5, !- Control Zone Name
+ ZN_1_FLR_1_SEC_5 Air Node, !- Zone Node Name
+ ZN_1_FLR_1_SEC_5 Direct Air Inlet Node, !- Zone Inlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name
+
+!***** Process Loads For Zone: ZN_1_FLR_1_SEC_5 *****
+
+ WaterUse:Connections,
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT, !- Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Water Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Water Outlet Node, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ , !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT; !- Water Use Equipment 1 Name
+
+ WaterUse:Equipment,
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT, !- Name
+ SHW_DEFAULT, !- End-Use Subcategory
+ 3.12791457840171E-7, !- Peak Flow Rate {m3/s}
+ HOURS_OF_OPERATION, !- Flow Rate Fraction Schedule Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Temp Sched, !- Target Temperature Schedule Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULTHot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ ZN_1_FLR_1_SEC_5, !- Zone Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Sensible fract sched, !- Sensible Fraction Schedule Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Latent fract sched; !- Latent Fraction Schedule Name
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Latent fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.05; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Sensible fract sched, !- Name
+ Fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,0.2; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,40; !- Field 3
+
+ Schedule:Compact,
+ ZN_1_FLR_1_SEC_5SHW_DEFAULTHot Supply Temp Sched, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,55; !- Field 3
+
+!***** Air Loop: ZN_1_FLR_1_SEC_1:Sys *****
+
+ AirLoopHVAC,
+ ZN_1_FLR_1_SEC_1:Sys, !- Name
+ , !- Controller List Name
+ ZN_1_FLR_1_SEC_1:Sys Availability Manager List, !- Availability Manager List Name
+ AUTOSIZE, !- Design Supply Air Flow Rate {m3/s}
+ ZN_1_FLR_1_SEC_1:Sys Air Loop Branches, !- Branch List Name
+ , !- Connector List Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Inlet Node, !- Supply Side Inlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Zone Equipment Outlet Node, !- Demand Side Outlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Zone Equipment Inlet Node, !- Demand Side Inlet Node Names
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node; !- Supply Side Outlet Node Names
+
+ Sizing:System,
+ ZN_1_FLR_1_SEC_1:Sys, !- AirLoop Name
+ SENSIBLE, !- Type of Load to Size On
+ AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s}
+ 0.3, !- Central Heating Maximum System Air Flow Ratio
+ 7.0, !- Preheat Design Temperature {C}
+ .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir}
+ 11.0, !- Precool Design Temperature {C}
+ .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir}
+ 12.8, !- Central Cooling Design Supply Air Temperature {C}
+ 40.0, !- Central Heating Design Supply Air Temperature {C}
+ NONCOINCIDENT, !- Type of Zone Sum to Use
+ NO, !- 100% Outdoor Air in Cooling
+ NO, !- 100% Outdoor Air in Heating
+ 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ DesignDay, !- Cooling Supply Air Flow Rate Method
+ 0.0, !- Cooling Supply Air Flow Rate {m3/s}
+ , !- Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Cooling Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}
+ DesignDay, !- Heating Supply Air Flow Rate Method
+ 0.0, !- Heating Supply Air Flow Rate {m3/s}
+ , !- Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Heating Fraction of Autosized Heating Supply Air Flow Rate
+ , !- Heating Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}
+ , !- System Outdoor Air Method
+ 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless}
+ CoolingDesignCapacity, !- Cooling Design Capacity Method
+ autosize, !- Cooling Design Capacity {W}
+ , !- Cooling Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Cooling Design Capacity
+ HeatingDesignCapacity, !- Heating Design Capacity Method
+ autosize, !- Heating Design Capacity {W}
+ , !- Heating Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Heating Design Capacity
+ VAV; !- Central Cooling Capacity Control Method
+
+ AvailabilityManagerAssignmentList,
+ ZN_1_FLR_1_SEC_1:Sys Availability Manager List, !- Name
+ AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type
+ ZN_1_FLR_1_SEC_1:Sys Availability Manager; !- Availability Manager 1 Name
+
+ AvailabilityManager:NightCycle,
+ ZN_1_FLR_1_SEC_1:Sys Availability Manager, !- Name
+ Always_On, !- Applicability Schedule Name
+ HVACOperationSchd, !- Fan Schedule Name
+ CycleOnAny, !- Control Type
+ 1.0, !- Thermostat Tolerance {deltaC}
+ FixedRunTime, !- Cycling Run Time Control Type
+ 7200; !- Cycling Run Time {s}
+
+ BranchList,
+ ZN_1_FLR_1_SEC_1:Sys Air Loop Branches, !- Name
+ ZN_1_FLR_1_SEC_1:Sys Air Loop Main Branch; !- Branch 1 Name
+
+ Branch,
+ ZN_1_FLR_1_SEC_1:Sys Air Loop Main Branch, !- Name
+ , !- Pressure Drop Curve Name
+ AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_1:Sys_OA, !- Component 1 Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys_OA-ZN_1_FLR_1_SEC_1:SysCoolCNode, !- Component 1 Outlet Node Name
+ CoilSystem:Cooling:DX, !- Component 2 Object Type
+ ZN_1_FLR_1_SEC_1:SysCoolC, !- Component 2 Name
+ ZN_1_FLR_1_SEC_1:Sys_OA-ZN_1_FLR_1_SEC_1:SysCoolCNode, !- Component 2 Inlet Node Name
+ ZN_1_FLR_1_SEC_1:SysCoolC-ZN_1_FLR_1_SEC_1:SysHeatCNode, !- Component 2 Outlet Node Name
+ Coil:Heating:Electric, !- Component 3 Object Type
+ ZN_1_FLR_1_SEC_1:SysHeatC, !- Component 3 Name
+ ZN_1_FLR_1_SEC_1:SysCoolC-ZN_1_FLR_1_SEC_1:SysHeatCNode, !- Component 3 Inlet Node Name
+ ZN_1_FLR_1_SEC_1:SysHeatC-ZN_1_FLR_1_SEC_1:Sys FanNode, !- Component 3 Outlet Node Name
+ Fan:ConstantVolume, !- Component 4 Object Type
+ ZN_1_FLR_1_SEC_1:Sys Fan,!- Component 4 Name
+ ZN_1_FLR_1_SEC_1:SysHeatC-ZN_1_FLR_1_SEC_1:Sys FanNode, !- Component 4 Inlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node; !- Component 4 Outlet Node Name
+
+ AirLoopHVAC:ControllerList,
+ ZN_1_FLR_1_SEC_1:Sys_OAControllers, !- Name
+ Controller:OutdoorAir, !- Controller 1 Object Type
+ ControllerZN_1_FLR_1_SEC_1:Sys_OA; !- Controller 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem:EquipmentList,
+ ZN_1_FLR_1_SEC_1:Sys_OAEquipment, !- Name
+ OutdoorAir:Mixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_1:Sys_OAMixing Box; !- Component 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem,
+ ZN_1_FLR_1_SEC_1:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_1:Sys_OAControllers, !- Controller List Name
+ ZN_1_FLR_1_SEC_1:Sys_OAEquipment, !- Outdoor Air Equipment List Name
+ ZN_1_FLR_1_SEC_1:Sys Availability Manager List; !- Availability Manager List Name
+
+ OutdoorAir:NodeList,
+ ZN_1_FLR_1_SEC_1:Sys_OANode List; !- Node or NodeList Name 1
+
+ NodeList,
+ ZN_1_FLR_1_SEC_1:Sys_OANode List, !- Name
+ ZN_1_FLR_1_SEC_1:Sys_OAInlet Node; !- Node 1 Name
+
+ OutdoorAir:Mixer,
+ ZN_1_FLR_1_SEC_1:Sys_OAMixing Box, !- Name
+ ZN_1_FLR_1_SEC_1:Sys_OA-ZN_1_FLR_1_SEC_1:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_1:Sys_OAInlet Node, !- Outdoor Air Stream Node Name
+ ZN_1_FLR_1_SEC_1:Sys_OARelief Node, !- Relief Air Stream Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Inlet Node; !- Return Air Stream Node Name
+
+ SetpointManager:MixedAir,
+ ZN_1_FLR_1_SEC_1:Sys_OAMixed Air Temp Manager, !- Name
+ Temperature, !- Control Variable
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node, !- Reference Setpoint Node Name
+ ZN_1_FLR_1_SEC_1:SysHeatC-ZN_1_FLR_1_SEC_1:Sys FanNode, !- Fan Inlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node, !- Fan Outlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys_OA-ZN_1_FLR_1_SEC_1:SysCoolCNode; !- Setpoint Node or NodeList Name
+
+ Controller:OutdoorAir,
+ ControllerZN_1_FLR_1_SEC_1:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_1:Sys_OARelief Node, !- Relief Air Outlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Inlet Node, !- Return Air Node Name
+ ZN_1_FLR_1_SEC_1:Sys_OA-ZN_1_FLR_1_SEC_1:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_1:Sys_OAInlet Node, !- Actuator Node Name
+ AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s}
+ AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s}
+ NoEconomizer, !- Economizer Control Type
+ ModulateFlow, !- Economizer Control Action Type
+ 19.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C}
+ 32000.0, !- Economizer Maximum Limit Enthalpy {J/kg}
+ , !- Economizer Maximum Limit Dewpoint Temperature {C}
+ , !- Electronic Enthalpy Limit Curve Name
+ , !- Economizer Minimum Limit Dry-Bulb Temperature {C}
+ NoLockout, !- Lockout Type
+ FixedMinimum, !- Minimum Limit Type
+ MinOA_Sched; !- Minimum Outdoor Air Schedule Name
+
+ CoilSystem:Cooling:DX,
+ ZN_1_FLR_1_SEC_1:SysCoolC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_1:Sys_OA-ZN_1_FLR_1_SEC_1:SysCoolCNode, !- DX Cooling Coil System Inlet Node Name
+ ZN_1_FLR_1_SEC_1:SysCoolC-ZN_1_FLR_1_SEC_1:SysHeatCNode, !- DX Cooling Coil System Outlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node, !- DX Cooling Coil System Sensor Node Name
+ Coil:Cooling:DX:SingleSpeed, !- Cooling Coil Object Type
+ ZN_1_FLR_1_SEC_1:SysCoolC DXCoil; !- Cooling Coil Name
+
+ Coil:Cooling:DX:SingleSpeed,
+ ZN_1_FLR_1_SEC_1:SysCoolC DXCoil, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ AUTOSIZE, !- Gross Rated Total Cooling Capacity {W}
+ AUTOSIZE, !- Gross Rated Sensible Heat Ratio
+ 2.7835, !- Gross Rated Cooling COP {W/W}
+ AUTOSIZE, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
+ ZN_1_FLR_1_SEC_1:Sys_OA-ZN_1_FLR_1_SEC_1:SysCoolCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_1:SysCoolC-ZN_1_FLR_1_SEC_1:SysHeatCNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_CapFT, !- Total Cooling Capacity Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_FFF, !- Total Cooling Capacity Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_EIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_1:SysCoolCIEA_HVAC_BESTEST_9ton-PLR; !- Part Load Fraction Correlation Curve Name
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_CapFT, !- Name
+ 1.39072, !- Coefficient1 Constant
+ -0.0529058, !- Coefficient2 x
+ 0.0018423, !- Coefficient3 x**2
+ 0.00058267, !- Coefficient4 y
+ -0.000186814, !- Coefficient5 y**2
+ 0.000265159, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_EIRFT, !- Name
+ -0.536161, !- Coefficient1 Constant
+ 0.105138, !- Coefficient2 x
+ -0.00172659, !- Coefficient3 x**2
+ 0.0149848, !- Coefficient4 y
+ 0.000659948, !- Coefficient5 y**2
+ -0.0017385, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_FFF, !- Name
+ 0.718954, !- Coefficient1 Constant
+ 0.435436, !- Coefficient2 x
+ -0.154193, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_1:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Name
+ 1.19525, !- Coefficient1 Constant
+ -0.306138, !- Coefficient2 x
+ 0.110973, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_1:SysCoolCIEA_HVAC_BESTEST_9ton-PLR, !- Name
+ 0.771, !- Coefficient1 Constant
+ 0.229, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+ OutdoorAir:Node,
+ ZN_1_FLR_1_SEC_1:SysCoolCOA Ref node; !- Name
+
+ Coil:Heating:Electric,
+ ZN_1_FLR_1_SEC_1:SysHeatC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ 1.0, !- Efficiency
+ AUTOSIZE, !- Nominal Capacity {W}
+ ZN_1_FLR_1_SEC_1:SysCoolC-ZN_1_FLR_1_SEC_1:SysHeatCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_1:SysHeatC-ZN_1_FLR_1_SEC_1:Sys FanNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node; !- Temperature Setpoint Node Name
+
+ Fan:ConstantVolume,
+ ZN_1_FLR_1_SEC_1:Sys Fan,!- Name
+ HVACOperationSchd, !- Availability Schedule Name
+ 0.55, !- Fan Total Efficiency
+ 500, !- Pressure Rise {Pa}
+ AUTOSIZE, !- Maximum Flow Rate {m3/s}
+ 0.85, !- Motor Efficiency
+ 1.0, !- Motor In Airstream Fraction
+ ZN_1_FLR_1_SEC_1:SysHeatC-ZN_1_FLR_1_SEC_1:Sys FanNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_1:Sys Supply Equipment Outlet Node; !- Air Outlet Node Name
+
+ AirLoopHVAC:SupplyPath,
+ ZN_1_FLR_1_SEC_1:Sys, !- Name
+ ZN_1_FLR_1_SEC_1:Sys Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
+ ZN_1_FLR_1_SEC_1:Sys Supply Air Splitter; !- Component 1 Name
+
+ AirLoopHVAC:ZoneSplitter,
+ ZN_1_FLR_1_SEC_1:Sys Supply Air Splitter, !- Name
+ ZN_1_FLR_1_SEC_1:Sys Zone Equipment Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_1 Direct Air Inlet Node ATInlet; !- Outlet 1 Node Name
+
+ AirLoopHVAC:ReturnPath,
+ ZN_1_FLR_1_SEC_1:Sys Return Air Path, !- Name
+ ZN_1_FLR_1_SEC_1:Sys Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name
+ AirLoopHVAC:ZoneMixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_1:Sys Return Air Mixer; !- Component 1 Name
+
+ AirLoopHVAC:ZoneMixer,
+ ZN_1_FLR_1_SEC_1:Sys Return Air Mixer, !- Name
+ ZN_1_FLR_1_SEC_1:Sys Zone Equipment Outlet Node, !- Outlet Node Name
+ ZN_1_FLR_1_SEC_1 Return Air Node; !- Inlet 1 Node Name
+
+!***** Air Loop: ZN_1_FLR_1_SEC_2:Sys *****
+
+ AirLoopHVAC,
+ ZN_1_FLR_1_SEC_2:Sys, !- Name
+ , !- Controller List Name
+ ZN_1_FLR_1_SEC_2:Sys Availability Manager List, !- Availability Manager List Name
+ AUTOSIZE, !- Design Supply Air Flow Rate {m3/s}
+ ZN_1_FLR_1_SEC_2:Sys Air Loop Branches, !- Branch List Name
+ , !- Connector List Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Inlet Node, !- Supply Side Inlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Zone Equipment Outlet Node, !- Demand Side Outlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Zone Equipment Inlet Node, !- Demand Side Inlet Node Names
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node; !- Supply Side Outlet Node Names
+
+ Sizing:System,
+ ZN_1_FLR_1_SEC_2:Sys, !- AirLoop Name
+ SENSIBLE, !- Type of Load to Size On
+ AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s}
+ 0.3, !- Central Heating Maximum System Air Flow Ratio
+ 7.0, !- Preheat Design Temperature {C}
+ .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir}
+ 11.0, !- Precool Design Temperature {C}
+ .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir}
+ 12.8, !- Central Cooling Design Supply Air Temperature {C}
+ 40.0, !- Central Heating Design Supply Air Temperature {C}
+ NONCOINCIDENT, !- Type of Zone Sum to Use
+ NO, !- 100% Outdoor Air in Cooling
+ NO, !- 100% Outdoor Air in Heating
+ 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ DesignDay, !- Cooling Supply Air Flow Rate Method
+ 0.0, !- Cooling Supply Air Flow Rate {m3/s}
+ , !- Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Cooling Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}
+ DesignDay, !- Heating Supply Air Flow Rate Method
+ 0.0, !- Heating Supply Air Flow Rate {m3/s}
+ , !- Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Heating Fraction of Autosized Heating Supply Air Flow Rate
+ , !- Heating Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}
+ , !- System Outdoor Air Method
+ 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless}
+ CoolingDesignCapacity, !- Cooling Design Capacity Method
+ autosize, !- Cooling Design Capacity {W}
+ , !- Cooling Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Cooling Design Capacity
+ HeatingDesignCapacity, !- Heating Design Capacity Method
+ autosize, !- Heating Design Capacity {W}
+ , !- Heating Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Heating Design Capacity
+ VAV; !- Central Cooling Capacity Control Method
+
+ AvailabilityManagerAssignmentList,
+ ZN_1_FLR_1_SEC_2:Sys Availability Manager List, !- Name
+ AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type
+ ZN_1_FLR_1_SEC_2:Sys Availability Manager; !- Availability Manager 1 Name
+
+ AvailabilityManager:NightCycle,
+ ZN_1_FLR_1_SEC_2:Sys Availability Manager, !- Name
+ Always_On, !- Applicability Schedule Name
+ HVACOperationSchd, !- Fan Schedule Name
+ CycleOnAny, !- Control Type
+ 1.0, !- Thermostat Tolerance {deltaC}
+ FixedRunTime, !- Cycling Run Time Control Type
+ 7200; !- Cycling Run Time {s}
+
+ BranchList,
+ ZN_1_FLR_1_SEC_2:Sys Air Loop Branches, !- Name
+ ZN_1_FLR_1_SEC_2:Sys Air Loop Main Branch; !- Branch 1 Name
+
+ Branch,
+ ZN_1_FLR_1_SEC_2:Sys Air Loop Main Branch, !- Name
+ , !- Pressure Drop Curve Name
+ AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_2:Sys_OA, !- Component 1 Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys_OA-ZN_1_FLR_1_SEC_2:SysCoolCNode, !- Component 1 Outlet Node Name
+ CoilSystem:Cooling:DX, !- Component 2 Object Type
+ ZN_1_FLR_1_SEC_2:SysCoolC, !- Component 2 Name
+ ZN_1_FLR_1_SEC_2:Sys_OA-ZN_1_FLR_1_SEC_2:SysCoolCNode, !- Component 2 Inlet Node Name
+ ZN_1_FLR_1_SEC_2:SysCoolC-ZN_1_FLR_1_SEC_2:SysHeatCNode, !- Component 2 Outlet Node Name
+ Coil:Heating:Electric, !- Component 3 Object Type
+ ZN_1_FLR_1_SEC_2:SysHeatC, !- Component 3 Name
+ ZN_1_FLR_1_SEC_2:SysCoolC-ZN_1_FLR_1_SEC_2:SysHeatCNode, !- Component 3 Inlet Node Name
+ ZN_1_FLR_1_SEC_2:SysHeatC-ZN_1_FLR_1_SEC_2:Sys FanNode, !- Component 3 Outlet Node Name
+ Fan:ConstantVolume, !- Component 4 Object Type
+ ZN_1_FLR_1_SEC_2:Sys Fan,!- Component 4 Name
+ ZN_1_FLR_1_SEC_2:SysHeatC-ZN_1_FLR_1_SEC_2:Sys FanNode, !- Component 4 Inlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node; !- Component 4 Outlet Node Name
+
+ AirLoopHVAC:ControllerList,
+ ZN_1_FLR_1_SEC_2:Sys_OAControllers, !- Name
+ Controller:OutdoorAir, !- Controller 1 Object Type
+ ControllerZN_1_FLR_1_SEC_2:Sys_OA; !- Controller 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem:EquipmentList,
+ ZN_1_FLR_1_SEC_2:Sys_OAEquipment, !- Name
+ OutdoorAir:Mixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_2:Sys_OAMixing Box; !- Component 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem,
+ ZN_1_FLR_1_SEC_2:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_2:Sys_OAControllers, !- Controller List Name
+ ZN_1_FLR_1_SEC_2:Sys_OAEquipment, !- Outdoor Air Equipment List Name
+ ZN_1_FLR_1_SEC_2:Sys Availability Manager List; !- Availability Manager List Name
+
+ OutdoorAir:NodeList,
+ ZN_1_FLR_1_SEC_2:Sys_OANode List; !- Node or NodeList Name 1
+
+ NodeList,
+ ZN_1_FLR_1_SEC_2:Sys_OANode List, !- Name
+ ZN_1_FLR_1_SEC_2:Sys_OAInlet Node; !- Node 1 Name
+
+ OutdoorAir:Mixer,
+ ZN_1_FLR_1_SEC_2:Sys_OAMixing Box, !- Name
+ ZN_1_FLR_1_SEC_2:Sys_OA-ZN_1_FLR_1_SEC_2:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_2:Sys_OAInlet Node, !- Outdoor Air Stream Node Name
+ ZN_1_FLR_1_SEC_2:Sys_OARelief Node, !- Relief Air Stream Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Inlet Node; !- Return Air Stream Node Name
+
+ SetpointManager:MixedAir,
+ ZN_1_FLR_1_SEC_2:Sys_OAMixed Air Temp Manager, !- Name
+ Temperature, !- Control Variable
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node, !- Reference Setpoint Node Name
+ ZN_1_FLR_1_SEC_2:SysHeatC-ZN_1_FLR_1_SEC_2:Sys FanNode, !- Fan Inlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node, !- Fan Outlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys_OA-ZN_1_FLR_1_SEC_2:SysCoolCNode; !- Setpoint Node or NodeList Name
+
+ Controller:OutdoorAir,
+ ControllerZN_1_FLR_1_SEC_2:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_2:Sys_OARelief Node, !- Relief Air Outlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Inlet Node, !- Return Air Node Name
+ ZN_1_FLR_1_SEC_2:Sys_OA-ZN_1_FLR_1_SEC_2:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_2:Sys_OAInlet Node, !- Actuator Node Name
+ AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s}
+ AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s}
+ NoEconomizer, !- Economizer Control Type
+ ModulateFlow, !- Economizer Control Action Type
+ 19.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C}
+ 32000.0, !- Economizer Maximum Limit Enthalpy {J/kg}
+ , !- Economizer Maximum Limit Dewpoint Temperature {C}
+ , !- Electronic Enthalpy Limit Curve Name
+ , !- Economizer Minimum Limit Dry-Bulb Temperature {C}
+ NoLockout, !- Lockout Type
+ FixedMinimum, !- Minimum Limit Type
+ MinOA_Sched; !- Minimum Outdoor Air Schedule Name
+
+ CoilSystem:Cooling:DX,
+ ZN_1_FLR_1_SEC_2:SysCoolC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_2:Sys_OA-ZN_1_FLR_1_SEC_2:SysCoolCNode, !- DX Cooling Coil System Inlet Node Name
+ ZN_1_FLR_1_SEC_2:SysCoolC-ZN_1_FLR_1_SEC_2:SysHeatCNode, !- DX Cooling Coil System Outlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node, !- DX Cooling Coil System Sensor Node Name
+ Coil:Cooling:DX:SingleSpeed, !- Cooling Coil Object Type
+ ZN_1_FLR_1_SEC_2:SysCoolC DXCoil; !- Cooling Coil Name
+
+ Coil:Cooling:DX:SingleSpeed,
+ ZN_1_FLR_1_SEC_2:SysCoolC DXCoil, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ AUTOSIZE, !- Gross Rated Total Cooling Capacity {W}
+ AUTOSIZE, !- Gross Rated Sensible Heat Ratio
+ 2.7835, !- Gross Rated Cooling COP {W/W}
+ AUTOSIZE, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
+ ZN_1_FLR_1_SEC_2:Sys_OA-ZN_1_FLR_1_SEC_2:SysCoolCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_2:SysCoolC-ZN_1_FLR_1_SEC_2:SysHeatCNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_CapFT, !- Total Cooling Capacity Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_FFF, !- Total Cooling Capacity Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_EIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_2:SysCoolCIEA_HVAC_BESTEST_9ton-PLR; !- Part Load Fraction Correlation Curve Name
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_CapFT, !- Name
+ 1.39072, !- Coefficient1 Constant
+ -0.0529058, !- Coefficient2 x
+ 0.0018423, !- Coefficient3 x**2
+ 0.00058267, !- Coefficient4 y
+ -0.000186814, !- Coefficient5 y**2
+ 0.000265159, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_EIRFT, !- Name
+ -0.536161, !- Coefficient1 Constant
+ 0.105138, !- Coefficient2 x
+ -0.00172659, !- Coefficient3 x**2
+ 0.0149848, !- Coefficient4 y
+ 0.000659948, !- Coefficient5 y**2
+ -0.0017385, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_FFF, !- Name
+ 0.718954, !- Coefficient1 Constant
+ 0.435436, !- Coefficient2 x
+ -0.154193, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_2:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Name
+ 1.19525, !- Coefficient1 Constant
+ -0.306138, !- Coefficient2 x
+ 0.110973, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_2:SysCoolCIEA_HVAC_BESTEST_9ton-PLR, !- Name
+ 0.771, !- Coefficient1 Constant
+ 0.229, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+ OutdoorAir:Node,
+ ZN_1_FLR_1_SEC_2:SysCoolCOA Ref node; !- Name
+
+ Coil:Heating:Electric,
+ ZN_1_FLR_1_SEC_2:SysHeatC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ 1.0, !- Efficiency
+ AUTOSIZE, !- Nominal Capacity {W}
+ ZN_1_FLR_1_SEC_2:SysCoolC-ZN_1_FLR_1_SEC_2:SysHeatCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_2:SysHeatC-ZN_1_FLR_1_SEC_2:Sys FanNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node; !- Temperature Setpoint Node Name
+
+ Fan:ConstantVolume,
+ ZN_1_FLR_1_SEC_2:Sys Fan,!- Name
+ HVACOperationSchd, !- Availability Schedule Name
+ 0.55, !- Fan Total Efficiency
+ 500, !- Pressure Rise {Pa}
+ AUTOSIZE, !- Maximum Flow Rate {m3/s}
+ 0.85, !- Motor Efficiency
+ 1.0, !- Motor In Airstream Fraction
+ ZN_1_FLR_1_SEC_2:SysHeatC-ZN_1_FLR_1_SEC_2:Sys FanNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_2:Sys Supply Equipment Outlet Node; !- Air Outlet Node Name
+
+ AirLoopHVAC:SupplyPath,
+ ZN_1_FLR_1_SEC_2:Sys, !- Name
+ ZN_1_FLR_1_SEC_2:Sys Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
+ ZN_1_FLR_1_SEC_2:Sys Supply Air Splitter; !- Component 1 Name
+
+ AirLoopHVAC:ZoneSplitter,
+ ZN_1_FLR_1_SEC_2:Sys Supply Air Splitter, !- Name
+ ZN_1_FLR_1_SEC_2:Sys Zone Equipment Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_2 Direct Air Inlet Node ATInlet; !- Outlet 1 Node Name
+
+ AirLoopHVAC:ReturnPath,
+ ZN_1_FLR_1_SEC_2:Sys Return Air Path, !- Name
+ ZN_1_FLR_1_SEC_2:Sys Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name
+ AirLoopHVAC:ZoneMixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_2:Sys Return Air Mixer; !- Component 1 Name
+
+ AirLoopHVAC:ZoneMixer,
+ ZN_1_FLR_1_SEC_2:Sys Return Air Mixer, !- Name
+ ZN_1_FLR_1_SEC_2:Sys Zone Equipment Outlet Node, !- Outlet Node Name
+ ZN_1_FLR_1_SEC_2 Return Air Node; !- Inlet 1 Node Name
+
+!***** Air Loop: ZN_1_FLR_1_SEC_3:Sys *****
+
+ AirLoopHVAC,
+ ZN_1_FLR_1_SEC_3:Sys, !- Name
+ , !- Controller List Name
+ ZN_1_FLR_1_SEC_3:Sys Availability Manager List, !- Availability Manager List Name
+ AUTOSIZE, !- Design Supply Air Flow Rate {m3/s}
+ ZN_1_FLR_1_SEC_3:Sys Air Loop Branches, !- Branch List Name
+ , !- Connector List Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Inlet Node, !- Supply Side Inlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Zone Equipment Outlet Node, !- Demand Side Outlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Zone Equipment Inlet Node, !- Demand Side Inlet Node Names
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node; !- Supply Side Outlet Node Names
+
+ Sizing:System,
+ ZN_1_FLR_1_SEC_3:Sys, !- AirLoop Name
+ SENSIBLE, !- Type of Load to Size On
+ AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s}
+ 0.3, !- Central Heating Maximum System Air Flow Ratio
+ 7.0, !- Preheat Design Temperature {C}
+ .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir}
+ 11.0, !- Precool Design Temperature {C}
+ .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir}
+ 12.8, !- Central Cooling Design Supply Air Temperature {C}
+ 40.0, !- Central Heating Design Supply Air Temperature {C}
+ NONCOINCIDENT, !- Type of Zone Sum to Use
+ NO, !- 100% Outdoor Air in Cooling
+ NO, !- 100% Outdoor Air in Heating
+ 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ DesignDay, !- Cooling Supply Air Flow Rate Method
+ 0.0, !- Cooling Supply Air Flow Rate {m3/s}
+ , !- Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Cooling Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}
+ DesignDay, !- Heating Supply Air Flow Rate Method
+ 0.0, !- Heating Supply Air Flow Rate {m3/s}
+ , !- Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Heating Fraction of Autosized Heating Supply Air Flow Rate
+ , !- Heating Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}
+ , !- System Outdoor Air Method
+ 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless}
+ CoolingDesignCapacity, !- Cooling Design Capacity Method
+ autosize, !- Cooling Design Capacity {W}
+ , !- Cooling Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Cooling Design Capacity
+ HeatingDesignCapacity, !- Heating Design Capacity Method
+ autosize, !- Heating Design Capacity {W}
+ , !- Heating Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Heating Design Capacity
+ VAV; !- Central Cooling Capacity Control Method
+
+ AvailabilityManagerAssignmentList,
+ ZN_1_FLR_1_SEC_3:Sys Availability Manager List, !- Name
+ AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type
+ ZN_1_FLR_1_SEC_3:Sys Availability Manager; !- Availability Manager 1 Name
+
+ AvailabilityManager:NightCycle,
+ ZN_1_FLR_1_SEC_3:Sys Availability Manager, !- Name
+ Always_On, !- Applicability Schedule Name
+ HVACOperationSchd, !- Fan Schedule Name
+ CycleOnAny, !- Control Type
+ 1.0, !- Thermostat Tolerance {deltaC}
+ FixedRunTime, !- Cycling Run Time Control Type
+ 7200; !- Cycling Run Time {s}
+
+ BranchList,
+ ZN_1_FLR_1_SEC_3:Sys Air Loop Branches, !- Name
+ ZN_1_FLR_1_SEC_3:Sys Air Loop Main Branch; !- Branch 1 Name
+
+ Branch,
+ ZN_1_FLR_1_SEC_3:Sys Air Loop Main Branch, !- Name
+ , !- Pressure Drop Curve Name
+ AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_3:Sys_OA, !- Component 1 Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys_OA-ZN_1_FLR_1_SEC_3:SysCoolCNode, !- Component 1 Outlet Node Name
+ CoilSystem:Cooling:DX, !- Component 2 Object Type
+ ZN_1_FLR_1_SEC_3:SysCoolC, !- Component 2 Name
+ ZN_1_FLR_1_SEC_3:Sys_OA-ZN_1_FLR_1_SEC_3:SysCoolCNode, !- Component 2 Inlet Node Name
+ ZN_1_FLR_1_SEC_3:SysCoolC-ZN_1_FLR_1_SEC_3:SysHeatCNode, !- Component 2 Outlet Node Name
+ Coil:Heating:Electric, !- Component 3 Object Type
+ ZN_1_FLR_1_SEC_3:SysHeatC, !- Component 3 Name
+ ZN_1_FLR_1_SEC_3:SysCoolC-ZN_1_FLR_1_SEC_3:SysHeatCNode, !- Component 3 Inlet Node Name
+ ZN_1_FLR_1_SEC_3:SysHeatC-ZN_1_FLR_1_SEC_3:Sys FanNode, !- Component 3 Outlet Node Name
+ Fan:ConstantVolume, !- Component 4 Object Type
+ ZN_1_FLR_1_SEC_3:Sys Fan,!- Component 4 Name
+ ZN_1_FLR_1_SEC_3:SysHeatC-ZN_1_FLR_1_SEC_3:Sys FanNode, !- Component 4 Inlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node; !- Component 4 Outlet Node Name
+
+ AirLoopHVAC:ControllerList,
+ ZN_1_FLR_1_SEC_3:Sys_OAControllers, !- Name
+ Controller:OutdoorAir, !- Controller 1 Object Type
+ ControllerZN_1_FLR_1_SEC_3:Sys_OA; !- Controller 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem:EquipmentList,
+ ZN_1_FLR_1_SEC_3:Sys_OAEquipment, !- Name
+ OutdoorAir:Mixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_3:Sys_OAMixing Box; !- Component 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem,
+ ZN_1_FLR_1_SEC_3:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_3:Sys_OAControllers, !- Controller List Name
+ ZN_1_FLR_1_SEC_3:Sys_OAEquipment, !- Outdoor Air Equipment List Name
+ ZN_1_FLR_1_SEC_3:Sys Availability Manager List; !- Availability Manager List Name
+
+ OutdoorAir:NodeList,
+ ZN_1_FLR_1_SEC_3:Sys_OANode List; !- Node or NodeList Name 1
+
+ NodeList,
+ ZN_1_FLR_1_SEC_3:Sys_OANode List, !- Name
+ ZN_1_FLR_1_SEC_3:Sys_OAInlet Node; !- Node 1 Name
+
+ OutdoorAir:Mixer,
+ ZN_1_FLR_1_SEC_3:Sys_OAMixing Box, !- Name
+ ZN_1_FLR_1_SEC_3:Sys_OA-ZN_1_FLR_1_SEC_3:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_3:Sys_OAInlet Node, !- Outdoor Air Stream Node Name
+ ZN_1_FLR_1_SEC_3:Sys_OARelief Node, !- Relief Air Stream Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Inlet Node; !- Return Air Stream Node Name
+
+ SetpointManager:MixedAir,
+ ZN_1_FLR_1_SEC_3:Sys_OAMixed Air Temp Manager, !- Name
+ Temperature, !- Control Variable
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node, !- Reference Setpoint Node Name
+ ZN_1_FLR_1_SEC_3:SysHeatC-ZN_1_FLR_1_SEC_3:Sys FanNode, !- Fan Inlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node, !- Fan Outlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys_OA-ZN_1_FLR_1_SEC_3:SysCoolCNode; !- Setpoint Node or NodeList Name
+
+ Controller:OutdoorAir,
+ ControllerZN_1_FLR_1_SEC_3:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_3:Sys_OARelief Node, !- Relief Air Outlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Inlet Node, !- Return Air Node Name
+ ZN_1_FLR_1_SEC_3:Sys_OA-ZN_1_FLR_1_SEC_3:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_3:Sys_OAInlet Node, !- Actuator Node Name
+ AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s}
+ AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s}
+ NoEconomizer, !- Economizer Control Type
+ ModulateFlow, !- Economizer Control Action Type
+ 19.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C}
+ 32000.0, !- Economizer Maximum Limit Enthalpy {J/kg}
+ , !- Economizer Maximum Limit Dewpoint Temperature {C}
+ , !- Electronic Enthalpy Limit Curve Name
+ , !- Economizer Minimum Limit Dry-Bulb Temperature {C}
+ NoLockout, !- Lockout Type
+ FixedMinimum, !- Minimum Limit Type
+ MinOA_Sched; !- Minimum Outdoor Air Schedule Name
+
+ CoilSystem:Cooling:DX,
+ ZN_1_FLR_1_SEC_3:SysCoolC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_3:Sys_OA-ZN_1_FLR_1_SEC_3:SysCoolCNode, !- DX Cooling Coil System Inlet Node Name
+ ZN_1_FLR_1_SEC_3:SysCoolC-ZN_1_FLR_1_SEC_3:SysHeatCNode, !- DX Cooling Coil System Outlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node, !- DX Cooling Coil System Sensor Node Name
+ Coil:Cooling:DX:SingleSpeed, !- Cooling Coil Object Type
+ ZN_1_FLR_1_SEC_3:SysCoolC DXCoil; !- Cooling Coil Name
+
+ Coil:Cooling:DX:SingleSpeed,
+ ZN_1_FLR_1_SEC_3:SysCoolC DXCoil, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ AUTOSIZE, !- Gross Rated Total Cooling Capacity {W}
+ AUTOSIZE, !- Gross Rated Sensible Heat Ratio
+ 2.7835, !- Gross Rated Cooling COP {W/W}
+ AUTOSIZE, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
+ ZN_1_FLR_1_SEC_3:Sys_OA-ZN_1_FLR_1_SEC_3:SysCoolCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_3:SysCoolC-ZN_1_FLR_1_SEC_3:SysHeatCNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_CapFT, !- Total Cooling Capacity Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_FFF, !- Total Cooling Capacity Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_EIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_3:SysCoolCIEA_HVAC_BESTEST_9ton-PLR; !- Part Load Fraction Correlation Curve Name
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_CapFT, !- Name
+ 1.39072, !- Coefficient1 Constant
+ -0.0529058, !- Coefficient2 x
+ 0.0018423, !- Coefficient3 x**2
+ 0.00058267, !- Coefficient4 y
+ -0.000186814, !- Coefficient5 y**2
+ 0.000265159, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_EIRFT, !- Name
+ -0.536161, !- Coefficient1 Constant
+ 0.105138, !- Coefficient2 x
+ -0.00172659, !- Coefficient3 x**2
+ 0.0149848, !- Coefficient4 y
+ 0.000659948, !- Coefficient5 y**2
+ -0.0017385, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_FFF, !- Name
+ 0.718954, !- Coefficient1 Constant
+ 0.435436, !- Coefficient2 x
+ -0.154193, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_3:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Name
+ 1.19525, !- Coefficient1 Constant
+ -0.306138, !- Coefficient2 x
+ 0.110973, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_3:SysCoolCIEA_HVAC_BESTEST_9ton-PLR, !- Name
+ 0.771, !- Coefficient1 Constant
+ 0.229, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+ OutdoorAir:Node,
+ ZN_1_FLR_1_SEC_3:SysCoolCOA Ref node; !- Name
+
+ Coil:Heating:Electric,
+ ZN_1_FLR_1_SEC_3:SysHeatC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ 1.0, !- Efficiency
+ AUTOSIZE, !- Nominal Capacity {W}
+ ZN_1_FLR_1_SEC_3:SysCoolC-ZN_1_FLR_1_SEC_3:SysHeatCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_3:SysHeatC-ZN_1_FLR_1_SEC_3:Sys FanNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node; !- Temperature Setpoint Node Name
+
+ Fan:ConstantVolume,
+ ZN_1_FLR_1_SEC_3:Sys Fan,!- Name
+ HVACOperationSchd, !- Availability Schedule Name
+ 0.55, !- Fan Total Efficiency
+ 500, !- Pressure Rise {Pa}
+ AUTOSIZE, !- Maximum Flow Rate {m3/s}
+ 0.85, !- Motor Efficiency
+ 1.0, !- Motor In Airstream Fraction
+ ZN_1_FLR_1_SEC_3:SysHeatC-ZN_1_FLR_1_SEC_3:Sys FanNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_3:Sys Supply Equipment Outlet Node; !- Air Outlet Node Name
+
+ AirLoopHVAC:SupplyPath,
+ ZN_1_FLR_1_SEC_3:Sys, !- Name
+ ZN_1_FLR_1_SEC_3:Sys Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
+ ZN_1_FLR_1_SEC_3:Sys Supply Air Splitter; !- Component 1 Name
+
+ AirLoopHVAC:ZoneSplitter,
+ ZN_1_FLR_1_SEC_3:Sys Supply Air Splitter, !- Name
+ ZN_1_FLR_1_SEC_3:Sys Zone Equipment Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_3 Direct Air Inlet Node ATInlet; !- Outlet 1 Node Name
+
+ AirLoopHVAC:ReturnPath,
+ ZN_1_FLR_1_SEC_3:Sys Return Air Path, !- Name
+ ZN_1_FLR_1_SEC_3:Sys Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name
+ AirLoopHVAC:ZoneMixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_3:Sys Return Air Mixer; !- Component 1 Name
+
+ AirLoopHVAC:ZoneMixer,
+ ZN_1_FLR_1_SEC_3:Sys Return Air Mixer, !- Name
+ ZN_1_FLR_1_SEC_3:Sys Zone Equipment Outlet Node, !- Outlet Node Name
+ ZN_1_FLR_1_SEC_3 Return Air Node; !- Inlet 1 Node Name
+
+!***** Air Loop: ZN_1_FLR_1_SEC_4:Sys *****
+
+ AirLoopHVAC,
+ ZN_1_FLR_1_SEC_4:Sys, !- Name
+ , !- Controller List Name
+ ZN_1_FLR_1_SEC_4:Sys Availability Manager List, !- Availability Manager List Name
+ AUTOSIZE, !- Design Supply Air Flow Rate {m3/s}
+ ZN_1_FLR_1_SEC_4:Sys Air Loop Branches, !- Branch List Name
+ , !- Connector List Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Inlet Node, !- Supply Side Inlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Zone Equipment Outlet Node, !- Demand Side Outlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Zone Equipment Inlet Node, !- Demand Side Inlet Node Names
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node; !- Supply Side Outlet Node Names
+
+ Sizing:System,
+ ZN_1_FLR_1_SEC_4:Sys, !- AirLoop Name
+ SENSIBLE, !- Type of Load to Size On
+ AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s}
+ 0.3, !- Central Heating Maximum System Air Flow Ratio
+ 7.0, !- Preheat Design Temperature {C}
+ .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir}
+ 11.0, !- Precool Design Temperature {C}
+ .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir}
+ 12.8, !- Central Cooling Design Supply Air Temperature {C}
+ 40.0, !- Central Heating Design Supply Air Temperature {C}
+ NONCOINCIDENT, !- Type of Zone Sum to Use
+ NO, !- 100% Outdoor Air in Cooling
+ NO, !- 100% Outdoor Air in Heating
+ 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ DesignDay, !- Cooling Supply Air Flow Rate Method
+ 0.0, !- Cooling Supply Air Flow Rate {m3/s}
+ , !- Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Cooling Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}
+ DesignDay, !- Heating Supply Air Flow Rate Method
+ 0.0, !- Heating Supply Air Flow Rate {m3/s}
+ , !- Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Heating Fraction of Autosized Heating Supply Air Flow Rate
+ , !- Heating Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}
+ , !- System Outdoor Air Method
+ 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless}
+ CoolingDesignCapacity, !- Cooling Design Capacity Method
+ autosize, !- Cooling Design Capacity {W}
+ , !- Cooling Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Cooling Design Capacity
+ HeatingDesignCapacity, !- Heating Design Capacity Method
+ autosize, !- Heating Design Capacity {W}
+ , !- Heating Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Heating Design Capacity
+ VAV; !- Central Cooling Capacity Control Method
+
+ AvailabilityManagerAssignmentList,
+ ZN_1_FLR_1_SEC_4:Sys Availability Manager List, !- Name
+ AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type
+ ZN_1_FLR_1_SEC_4:Sys Availability Manager; !- Availability Manager 1 Name
+
+ AvailabilityManager:NightCycle,
+ ZN_1_FLR_1_SEC_4:Sys Availability Manager, !- Name
+ Always_On, !- Applicability Schedule Name
+ HVACOperationSchd, !- Fan Schedule Name
+ CycleOnAny, !- Control Type
+ 1.0, !- Thermostat Tolerance {deltaC}
+ FixedRunTime, !- Cycling Run Time Control Type
+ 7200; !- Cycling Run Time {s}
+
+ BranchList,
+ ZN_1_FLR_1_SEC_4:Sys Air Loop Branches, !- Name
+ ZN_1_FLR_1_SEC_4:Sys Air Loop Main Branch; !- Branch 1 Name
+
+ Branch,
+ ZN_1_FLR_1_SEC_4:Sys Air Loop Main Branch, !- Name
+ , !- Pressure Drop Curve Name
+ AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_4:Sys_OA, !- Component 1 Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys_OA-ZN_1_FLR_1_SEC_4:SysCoolCNode, !- Component 1 Outlet Node Name
+ CoilSystem:Cooling:DX, !- Component 2 Object Type
+ ZN_1_FLR_1_SEC_4:SysCoolC, !- Component 2 Name
+ ZN_1_FLR_1_SEC_4:Sys_OA-ZN_1_FLR_1_SEC_4:SysCoolCNode, !- Component 2 Inlet Node Name
+ ZN_1_FLR_1_SEC_4:SysCoolC-ZN_1_FLR_1_SEC_4:SysHeatCNode, !- Component 2 Outlet Node Name
+ Coil:Heating:Electric, !- Component 3 Object Type
+ ZN_1_FLR_1_SEC_4:SysHeatC, !- Component 3 Name
+ ZN_1_FLR_1_SEC_4:SysCoolC-ZN_1_FLR_1_SEC_4:SysHeatCNode, !- Component 3 Inlet Node Name
+ ZN_1_FLR_1_SEC_4:SysHeatC-ZN_1_FLR_1_SEC_4:Sys FanNode, !- Component 3 Outlet Node Name
+ Fan:ConstantVolume, !- Component 4 Object Type
+ ZN_1_FLR_1_SEC_4:Sys Fan,!- Component 4 Name
+ ZN_1_FLR_1_SEC_4:SysHeatC-ZN_1_FLR_1_SEC_4:Sys FanNode, !- Component 4 Inlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node; !- Component 4 Outlet Node Name
+
+ AirLoopHVAC:ControllerList,
+ ZN_1_FLR_1_SEC_4:Sys_OAControllers, !- Name
+ Controller:OutdoorAir, !- Controller 1 Object Type
+ ControllerZN_1_FLR_1_SEC_4:Sys_OA; !- Controller 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem:EquipmentList,
+ ZN_1_FLR_1_SEC_4:Sys_OAEquipment, !- Name
+ OutdoorAir:Mixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_4:Sys_OAMixing Box; !- Component 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem,
+ ZN_1_FLR_1_SEC_4:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_4:Sys_OAControllers, !- Controller List Name
+ ZN_1_FLR_1_SEC_4:Sys_OAEquipment, !- Outdoor Air Equipment List Name
+ ZN_1_FLR_1_SEC_4:Sys Availability Manager List; !- Availability Manager List Name
+
+ OutdoorAir:NodeList,
+ ZN_1_FLR_1_SEC_4:Sys_OANode List; !- Node or NodeList Name 1
+
+ NodeList,
+ ZN_1_FLR_1_SEC_4:Sys_OANode List, !- Name
+ ZN_1_FLR_1_SEC_4:Sys_OAInlet Node; !- Node 1 Name
+
+ OutdoorAir:Mixer,
+ ZN_1_FLR_1_SEC_4:Sys_OAMixing Box, !- Name
+ ZN_1_FLR_1_SEC_4:Sys_OA-ZN_1_FLR_1_SEC_4:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_4:Sys_OAInlet Node, !- Outdoor Air Stream Node Name
+ ZN_1_FLR_1_SEC_4:Sys_OARelief Node, !- Relief Air Stream Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Inlet Node; !- Return Air Stream Node Name
+
+ SetpointManager:MixedAir,
+ ZN_1_FLR_1_SEC_4:Sys_OAMixed Air Temp Manager, !- Name
+ Temperature, !- Control Variable
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node, !- Reference Setpoint Node Name
+ ZN_1_FLR_1_SEC_4:SysHeatC-ZN_1_FLR_1_SEC_4:Sys FanNode, !- Fan Inlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node, !- Fan Outlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys_OA-ZN_1_FLR_1_SEC_4:SysCoolCNode; !- Setpoint Node or NodeList Name
+
+ Controller:OutdoorAir,
+ ControllerZN_1_FLR_1_SEC_4:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_4:Sys_OARelief Node, !- Relief Air Outlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Inlet Node, !- Return Air Node Name
+ ZN_1_FLR_1_SEC_4:Sys_OA-ZN_1_FLR_1_SEC_4:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_4:Sys_OAInlet Node, !- Actuator Node Name
+ AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s}
+ AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s}
+ NoEconomizer, !- Economizer Control Type
+ ModulateFlow, !- Economizer Control Action Type
+ 19.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C}
+ 32000.0, !- Economizer Maximum Limit Enthalpy {J/kg}
+ , !- Economizer Maximum Limit Dewpoint Temperature {C}
+ , !- Electronic Enthalpy Limit Curve Name
+ , !- Economizer Minimum Limit Dry-Bulb Temperature {C}
+ NoLockout, !- Lockout Type
+ FixedMinimum, !- Minimum Limit Type
+ MinOA_Sched; !- Minimum Outdoor Air Schedule Name
+
+ CoilSystem:Cooling:DX,
+ ZN_1_FLR_1_SEC_4:SysCoolC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_4:Sys_OA-ZN_1_FLR_1_SEC_4:SysCoolCNode, !- DX Cooling Coil System Inlet Node Name
+ ZN_1_FLR_1_SEC_4:SysCoolC-ZN_1_FLR_1_SEC_4:SysHeatCNode, !- DX Cooling Coil System Outlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node, !- DX Cooling Coil System Sensor Node Name
+ Coil:Cooling:DX:SingleSpeed, !- Cooling Coil Object Type
+ ZN_1_FLR_1_SEC_4:SysCoolC DXCoil; !- Cooling Coil Name
+
+ Coil:Cooling:DX:SingleSpeed,
+ ZN_1_FLR_1_SEC_4:SysCoolC DXCoil, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ AUTOSIZE, !- Gross Rated Total Cooling Capacity {W}
+ AUTOSIZE, !- Gross Rated Sensible Heat Ratio
+ 2.7835, !- Gross Rated Cooling COP {W/W}
+ AUTOSIZE, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
+ ZN_1_FLR_1_SEC_4:Sys_OA-ZN_1_FLR_1_SEC_4:SysCoolCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_4:SysCoolC-ZN_1_FLR_1_SEC_4:SysHeatCNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_CapFT, !- Total Cooling Capacity Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_FFF, !- Total Cooling Capacity Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_EIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_4:SysCoolCIEA_HVAC_BESTEST_9ton-PLR; !- Part Load Fraction Correlation Curve Name
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_CapFT, !- Name
+ 1.39072, !- Coefficient1 Constant
+ -0.0529058, !- Coefficient2 x
+ 0.0018423, !- Coefficient3 x**2
+ 0.00058267, !- Coefficient4 y
+ -0.000186814, !- Coefficient5 y**2
+ 0.000265159, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_EIRFT, !- Name
+ -0.536161, !- Coefficient1 Constant
+ 0.105138, !- Coefficient2 x
+ -0.00172659, !- Coefficient3 x**2
+ 0.0149848, !- Coefficient4 y
+ 0.000659948, !- Coefficient5 y**2
+ -0.0017385, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_FFF, !- Name
+ 0.718954, !- Coefficient1 Constant
+ 0.435436, !- Coefficient2 x
+ -0.154193, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_4:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Name
+ 1.19525, !- Coefficient1 Constant
+ -0.306138, !- Coefficient2 x
+ 0.110973, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_4:SysCoolCIEA_HVAC_BESTEST_9ton-PLR, !- Name
+ 0.771, !- Coefficient1 Constant
+ 0.229, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+ OutdoorAir:Node,
+ ZN_1_FLR_1_SEC_4:SysCoolCOA Ref node; !- Name
+
+ Coil:Heating:Electric,
+ ZN_1_FLR_1_SEC_4:SysHeatC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ 1.0, !- Efficiency
+ AUTOSIZE, !- Nominal Capacity {W}
+ ZN_1_FLR_1_SEC_4:SysCoolC-ZN_1_FLR_1_SEC_4:SysHeatCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_4:SysHeatC-ZN_1_FLR_1_SEC_4:Sys FanNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node; !- Temperature Setpoint Node Name
+
+ Fan:ConstantVolume,
+ ZN_1_FLR_1_SEC_4:Sys Fan,!- Name
+ HVACOperationSchd, !- Availability Schedule Name
+ 0.55, !- Fan Total Efficiency
+ 500, !- Pressure Rise {Pa}
+ AUTOSIZE, !- Maximum Flow Rate {m3/s}
+ 0.85, !- Motor Efficiency
+ 1.0, !- Motor In Airstream Fraction
+ ZN_1_FLR_1_SEC_4:SysHeatC-ZN_1_FLR_1_SEC_4:Sys FanNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_4:Sys Supply Equipment Outlet Node; !- Air Outlet Node Name
+
+ AirLoopHVAC:SupplyPath,
+ ZN_1_FLR_1_SEC_4:Sys, !- Name
+ ZN_1_FLR_1_SEC_4:Sys Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
+ ZN_1_FLR_1_SEC_4:Sys Supply Air Splitter; !- Component 1 Name
+
+ AirLoopHVAC:ZoneSplitter,
+ ZN_1_FLR_1_SEC_4:Sys Supply Air Splitter, !- Name
+ ZN_1_FLR_1_SEC_4:Sys Zone Equipment Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_4 Direct Air Inlet Node ATInlet; !- Outlet 1 Node Name
+
+ AirLoopHVAC:ReturnPath,
+ ZN_1_FLR_1_SEC_4:Sys Return Air Path, !- Name
+ ZN_1_FLR_1_SEC_4:Sys Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name
+ AirLoopHVAC:ZoneMixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_4:Sys Return Air Mixer; !- Component 1 Name
+
+ AirLoopHVAC:ZoneMixer,
+ ZN_1_FLR_1_SEC_4:Sys Return Air Mixer, !- Name
+ ZN_1_FLR_1_SEC_4:Sys Zone Equipment Outlet Node, !- Outlet Node Name
+ ZN_1_FLR_1_SEC_4 Return Air Node; !- Inlet 1 Node Name
+
+!***** Air Loop: ZN_1_FLR_1_SEC_5:Sys *****
+
+ AirLoopHVAC,
+ ZN_1_FLR_1_SEC_5:Sys, !- Name
+ , !- Controller List Name
+ ZN_1_FLR_1_SEC_5:Sys Availability Manager List, !- Availability Manager List Name
+ AUTOSIZE, !- Design Supply Air Flow Rate {m3/s}
+ ZN_1_FLR_1_SEC_5:Sys Air Loop Branches, !- Branch List Name
+ , !- Connector List Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Inlet Node, !- Supply Side Inlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Zone Equipment Outlet Node, !- Demand Side Outlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Zone Equipment Inlet Node, !- Demand Side Inlet Node Names
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node; !- Supply Side Outlet Node Names
+
+ Sizing:System,
+ ZN_1_FLR_1_SEC_5:Sys, !- AirLoop Name
+ SENSIBLE, !- Type of Load to Size On
+ AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s}
+ 0.3, !- Central Heating Maximum System Air Flow Ratio
+ 7.0, !- Preheat Design Temperature {C}
+ .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir}
+ 11.0, !- Precool Design Temperature {C}
+ .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir}
+ 12.8, !- Central Cooling Design Supply Air Temperature {C}
+ 40.0, !- Central Heating Design Supply Air Temperature {C}
+ NONCOINCIDENT, !- Type of Zone Sum to Use
+ NO, !- 100% Outdoor Air in Cooling
+ NO, !- 100% Outdoor Air in Heating
+ 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ DesignDay, !- Cooling Supply Air Flow Rate Method
+ 0.0, !- Cooling Supply Air Flow Rate {m3/s}
+ , !- Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Cooling Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}
+ DesignDay, !- Heating Supply Air Flow Rate Method
+ 0.0, !- Heating Supply Air Flow Rate {m3/s}
+ , !- Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Heating Fraction of Autosized Heating Supply Air Flow Rate
+ , !- Heating Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}
+ , !- System Outdoor Air Method
+ 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless}
+ CoolingDesignCapacity, !- Cooling Design Capacity Method
+ autosize, !- Cooling Design Capacity {W}
+ , !- Cooling Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Cooling Design Capacity
+ HeatingDesignCapacity, !- Heating Design Capacity Method
+ autosize, !- Heating Design Capacity {W}
+ , !- Heating Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Heating Design Capacity
+ VAV; !- Central Cooling Capacity Control Method
+
+ AvailabilityManagerAssignmentList,
+ ZN_1_FLR_1_SEC_5:Sys Availability Manager List, !- Name
+ AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type
+ ZN_1_FLR_1_SEC_5:Sys Availability Manager; !- Availability Manager 1 Name
+
+ AvailabilityManager:NightCycle,
+ ZN_1_FLR_1_SEC_5:Sys Availability Manager, !- Name
+ Always_On, !- Applicability Schedule Name
+ HVACOperationSchd, !- Fan Schedule Name
+ CycleOnAny, !- Control Type
+ 1.0, !- Thermostat Tolerance {deltaC}
+ FixedRunTime, !- Cycling Run Time Control Type
+ 7200; !- Cycling Run Time {s}
+
+ BranchList,
+ ZN_1_FLR_1_SEC_5:Sys Air Loop Branches, !- Name
+ ZN_1_FLR_1_SEC_5:Sys Air Loop Main Branch; !- Branch 1 Name
+
+ Branch,
+ ZN_1_FLR_1_SEC_5:Sys Air Loop Main Branch, !- Name
+ , !- Pressure Drop Curve Name
+ AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_5:Sys_OA, !- Component 1 Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys_OA-ZN_1_FLR_1_SEC_5:SysCoolCNode, !- Component 1 Outlet Node Name
+ CoilSystem:Cooling:DX, !- Component 2 Object Type
+ ZN_1_FLR_1_SEC_5:SysCoolC, !- Component 2 Name
+ ZN_1_FLR_1_SEC_5:Sys_OA-ZN_1_FLR_1_SEC_5:SysCoolCNode, !- Component 2 Inlet Node Name
+ ZN_1_FLR_1_SEC_5:SysCoolC-ZN_1_FLR_1_SEC_5:SysHeatCNode, !- Component 2 Outlet Node Name
+ Coil:Heating:Electric, !- Component 3 Object Type
+ ZN_1_FLR_1_SEC_5:SysHeatC, !- Component 3 Name
+ ZN_1_FLR_1_SEC_5:SysCoolC-ZN_1_FLR_1_SEC_5:SysHeatCNode, !- Component 3 Inlet Node Name
+ ZN_1_FLR_1_SEC_5:SysHeatC-ZN_1_FLR_1_SEC_5:Sys FanNode, !- Component 3 Outlet Node Name
+ Fan:ConstantVolume, !- Component 4 Object Type
+ ZN_1_FLR_1_SEC_5:Sys Fan,!- Component 4 Name
+ ZN_1_FLR_1_SEC_5:SysHeatC-ZN_1_FLR_1_SEC_5:Sys FanNode, !- Component 4 Inlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node; !- Component 4 Outlet Node Name
+
+ AirLoopHVAC:ControllerList,
+ ZN_1_FLR_1_SEC_5:Sys_OAControllers, !- Name
+ Controller:OutdoorAir, !- Controller 1 Object Type
+ ControllerZN_1_FLR_1_SEC_5:Sys_OA; !- Controller 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem:EquipmentList,
+ ZN_1_FLR_1_SEC_5:Sys_OAEquipment, !- Name
+ OutdoorAir:Mixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_5:Sys_OAMixing Box; !- Component 1 Name
+
+ AirLoopHVAC:OutdoorAirSystem,
+ ZN_1_FLR_1_SEC_5:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_5:Sys_OAControllers, !- Controller List Name
+ ZN_1_FLR_1_SEC_5:Sys_OAEquipment, !- Outdoor Air Equipment List Name
+ ZN_1_FLR_1_SEC_5:Sys Availability Manager List; !- Availability Manager List Name
+
+ OutdoorAir:NodeList,
+ ZN_1_FLR_1_SEC_5:Sys_OANode List; !- Node or NodeList Name 1
+
+ NodeList,
+ ZN_1_FLR_1_SEC_5:Sys_OANode List, !- Name
+ ZN_1_FLR_1_SEC_5:Sys_OAInlet Node; !- Node 1 Name
+
+ OutdoorAir:Mixer,
+ ZN_1_FLR_1_SEC_5:Sys_OAMixing Box, !- Name
+ ZN_1_FLR_1_SEC_5:Sys_OA-ZN_1_FLR_1_SEC_5:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_5:Sys_OAInlet Node, !- Outdoor Air Stream Node Name
+ ZN_1_FLR_1_SEC_5:Sys_OARelief Node, !- Relief Air Stream Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Inlet Node; !- Return Air Stream Node Name
+
+ SetpointManager:MixedAir,
+ ZN_1_FLR_1_SEC_5:Sys_OAMixed Air Temp Manager, !- Name
+ Temperature, !- Control Variable
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node, !- Reference Setpoint Node Name
+ ZN_1_FLR_1_SEC_5:SysHeatC-ZN_1_FLR_1_SEC_5:Sys FanNode, !- Fan Inlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node, !- Fan Outlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys_OA-ZN_1_FLR_1_SEC_5:SysCoolCNode; !- Setpoint Node or NodeList Name
+
+ Controller:OutdoorAir,
+ ControllerZN_1_FLR_1_SEC_5:Sys_OA, !- Name
+ ZN_1_FLR_1_SEC_5:Sys_OARelief Node, !- Relief Air Outlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Inlet Node, !- Return Air Node Name
+ ZN_1_FLR_1_SEC_5:Sys_OA-ZN_1_FLR_1_SEC_5:SysCoolCNode, !- Mixed Air Node Name
+ ZN_1_FLR_1_SEC_5:Sys_OAInlet Node, !- Actuator Node Name
+ AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s}
+ AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s}
+ NoEconomizer, !- Economizer Control Type
+ ModulateFlow, !- Economizer Control Action Type
+ 19.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C}
+ 32000.0, !- Economizer Maximum Limit Enthalpy {J/kg}
+ , !- Economizer Maximum Limit Dewpoint Temperature {C}
+ , !- Electronic Enthalpy Limit Curve Name
+ , !- Economizer Minimum Limit Dry-Bulb Temperature {C}
+ NoLockout, !- Lockout Type
+ FixedMinimum, !- Minimum Limit Type
+ MinOA_Sched; !- Minimum Outdoor Air Schedule Name
+
+ CoilSystem:Cooling:DX,
+ ZN_1_FLR_1_SEC_5:SysCoolC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ ZN_1_FLR_1_SEC_5:Sys_OA-ZN_1_FLR_1_SEC_5:SysCoolCNode, !- DX Cooling Coil System Inlet Node Name
+ ZN_1_FLR_1_SEC_5:SysCoolC-ZN_1_FLR_1_SEC_5:SysHeatCNode, !- DX Cooling Coil System Outlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node, !- DX Cooling Coil System Sensor Node Name
+ Coil:Cooling:DX:SingleSpeed, !- Cooling Coil Object Type
+ ZN_1_FLR_1_SEC_5:SysCoolC DXCoil; !- Cooling Coil Name
+
+ Coil:Cooling:DX:SingleSpeed,
+ ZN_1_FLR_1_SEC_5:SysCoolC DXCoil, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ AUTOSIZE, !- Gross Rated Total Cooling Capacity {W}
+ AUTOSIZE, !- Gross Rated Sensible Heat Ratio
+ 2.7835, !- Gross Rated Cooling COP {W/W}
+ AUTOSIZE, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
+ ZN_1_FLR_1_SEC_5:Sys_OA-ZN_1_FLR_1_SEC_5:SysCoolCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_5:SysCoolC-ZN_1_FLR_1_SEC_5:SysHeatCNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_CapFT, !- Total Cooling Capacity Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_FFF, !- Total Cooling Capacity Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_EIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ ZN_1_FLR_1_SEC_5:SysCoolCIEA_HVAC_BESTEST_9ton-PLR; !- Part Load Fraction Correlation Curve Name
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_CapFT, !- Name
+ 1.39072, !- Coefficient1 Constant
+ -0.0529058, !- Coefficient2 x
+ 0.0018423, !- Coefficient3 x**2
+ 0.00058267, !- Coefficient4 y
+ -0.000186814, !- Coefficient5 y**2
+ 0.000265159, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Biquadratic,
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_EIRFT, !- Name
+ -0.536161, !- Coefficient1 Constant
+ 0.105138, !- Coefficient2 x
+ -0.00172659, !- Coefficient3 x**2
+ 0.0149848, !- Coefficient4 y
+ 0.000659948, !- Coefficient5 y**2
+ -0.0017385, !- Coefficient6 x*y
+ 16.5556, !- Minimum Value of x
+ 22.1111, !- Maximum Value of x
+ 18.0, !- Minimum Value of y
+ 47.66, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_FFF, !- Name
+ 0.718954, !- Coefficient1 Constant
+ 0.435436, !- Coefficient2 x
+ -0.154193, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_5:SysCoolCCarrier48TM014_12tons_EIRFFF, !- Name
+ 1.19525, !- Coefficient1 Constant
+ -0.306138, !- Coefficient2 x
+ 0.110973, !- Coefficient3 x**2
+ 0.75, !- Minimum Value of x
+ 1.25; !- Maximum Value of x
+
+ Curve:Quadratic,
+ ZN_1_FLR_1_SEC_5:SysCoolCIEA_HVAC_BESTEST_9ton-PLR, !- Name
+ 0.771, !- Coefficient1 Constant
+ 0.229, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+ OutdoorAir:Node,
+ ZN_1_FLR_1_SEC_5:SysCoolCOA Ref node; !- Name
+
+ Coil:Heating:Electric,
+ ZN_1_FLR_1_SEC_5:SysHeatC, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ 1.0, !- Efficiency
+ AUTOSIZE, !- Nominal Capacity {W}
+ ZN_1_FLR_1_SEC_5:SysCoolC-ZN_1_FLR_1_SEC_5:SysHeatCNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_5:SysHeatC-ZN_1_FLR_1_SEC_5:Sys FanNode, !- Air Outlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node; !- Temperature Setpoint Node Name
+
+ Fan:ConstantVolume,
+ ZN_1_FLR_1_SEC_5:Sys Fan,!- Name
+ HVACOperationSchd, !- Availability Schedule Name
+ 0.55, !- Fan Total Efficiency
+ 500, !- Pressure Rise {Pa}
+ AUTOSIZE, !- Maximum Flow Rate {m3/s}
+ 0.85, !- Motor Efficiency
+ 1.0, !- Motor In Airstream Fraction
+ ZN_1_FLR_1_SEC_5:SysHeatC-ZN_1_FLR_1_SEC_5:Sys FanNode, !- Air Inlet Node Name
+ ZN_1_FLR_1_SEC_5:Sys Supply Equipment Outlet Node; !- Air Outlet Node Name
+
+ AirLoopHVAC:SupplyPath,
+ ZN_1_FLR_1_SEC_5:Sys, !- Name
+ ZN_1_FLR_1_SEC_5:Sys Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
+ ZN_1_FLR_1_SEC_5:Sys Supply Air Splitter; !- Component 1 Name
+
+ AirLoopHVAC:ZoneSplitter,
+ ZN_1_FLR_1_SEC_5:Sys Supply Air Splitter, !- Name
+ ZN_1_FLR_1_SEC_5:Sys Zone Equipment Inlet Node, !- Inlet Node Name
+ ZN_1_FLR_1_SEC_5 Direct Air Inlet Node ATInlet; !- Outlet 1 Node Name
+
+ AirLoopHVAC:ReturnPath,
+ ZN_1_FLR_1_SEC_5:Sys Return Air Path, !- Name
+ ZN_1_FLR_1_SEC_5:Sys Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name
+ AirLoopHVAC:ZoneMixer, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_5:Sys Return Air Mixer; !- Component 1 Name
+
+ AirLoopHVAC:ZoneMixer,
+ ZN_1_FLR_1_SEC_5:Sys Return Air Mixer, !- Name
+ ZN_1_FLR_1_SEC_5:Sys Zone Equipment Outlet Node, !- Outlet Node Name
+ ZN_1_FLR_1_SEC_5 Return Air Node; !- Inlet 1 Node Name
+
+!***** PLANT Loop: SHWSys1 *****
+
+ PlantLoop,
+ SHWSys1, !- Name
+ WATER, !- Fluid Type
+ , !- User Defined Fluid Type
+ SHWSys1 Loop Operation Scheme List, !- Plant Equipment Operation Scheme Name
+ SHWSys1 Supply Outlet Node, !- Loop Temperature Setpoint Node Name
+ 60.0, !- Maximum Loop Temperature {C}
+ 10.0, !- Minimum Loop Temperature {C}
+ AUTOSIZE, !- Maximum Loop Flow Rate {m3/s}
+ 0.0, !- Minimum Loop Flow Rate {m3/s}
+ AUTOSIZE, !- Plant Loop Volume {m3}
+ SHWSys1 Supply Inlet Node, !- Plant Side Inlet Node Name
+ SHWSys1 Supply Outlet Node, !- Plant Side Outlet Node Name
+ SHWSys1 Supply Branches, !- Plant Side Branch List Name
+ SHWSys1 Supply Connectors, !- Plant Side Connector List Name
+ SHWSys1 Demand Inlet Node, !- Demand Side Inlet Node Name
+ SHWSys1 Demand Outlet Node, !- Demand Side Outlet Node Name
+ SHWSys1 Demand Branches, !- Demand Side Branch List Name
+ SHWSys1 Demand Connectors, !- Demand Side Connector List Name
+ OPTIMAL; !- Load Distribution Scheme
+
+ Sizing:Plant,
+ SHWSys1, !- Plant or Condenser Loop Name
+ HEATING, !- Loop Type
+ 55, !- Design Loop Exit Temperature {C}
+ 5.0; !- Loop Design Temperature Difference {deltaC}
+
+ SetpointManager:Scheduled,
+ SHWSys1 Loop Setpoint Manager, !- Name
+ Temperature, !- Control Variable
+ SHWSys1-Loop-Temp-Schedule, !- Schedule Name
+ SHWSys1 Supply Outlet Node; !- Setpoint Node or NodeList Name
+
+ PlantEquipmentOperationSchemes,
+ SHWSys1 Loop Operation Scheme List, !- Name
+ PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type
+ SHWSys1 Operation Scheme,!- Control Scheme 1 Name
+ PlantOnSched; !- Control Scheme 1 Schedule Name
+
+ PlantEquipmentOperation:HeatingLoad,
+ SHWSys1 Operation Scheme,!- Name
+ 0.0, !- Load Range 1 Lower Limit {W}
+ 1000000000000000, !- Load Range 1 Upper Limit {W}
+ SHWSys1 Equipment List; !- Range 1 Equipment List Name
+
+ Schedule:Compact,
+ SHWSys1-Loop-Temp-Schedule, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,55; !- Field 3
+
+ PlantEquipmentList,
+ SHWSys1 Equipment List, !- Name
+ WaterHeater:Mixed, !- Equipment 1 Object Type
+ SHWSys1 Water Heater; !- Equipment 1 Name
+
+ BranchList,
+ SHWSys1 Supply Branches, !- Name
+ SHWSys1 Supply Inlet Branch, !- Branch 1 Name
+ SHWSys1 Supply Equipment Branch, !- Branch 2 Name
+ SHWSys1 Supply Equipment Bypass Branch, !- Branch 3 Name
+ SHWSys1 Supply Outlet Branch; !- Branch 4 Name
+
+ ConnectorList,
+ SHWSys1 Supply Connectors, !- Name
+ Connector:Splitter, !- Connector 1 Object Type
+ SHWSys1 Supply Splitter, !- Connector 1 Name
+ Connector:Mixer, !- Connector 2 Object Type
+ SHWSys1 Supply Mixer; !- Connector 2 Name
+
+ Connector:Splitter,
+ SHWSys1 Supply Splitter, !- Name
+ SHWSys1 Supply Inlet Branch, !- Inlet Branch Name
+ SHWSys1 Supply Equipment Branch, !- Outlet Branch 1 Name
+ SHWSys1 Supply Equipment Bypass Branch; !- Outlet Branch 2 Name
+
+ Connector:Mixer,
+ SHWSys1 Supply Mixer, !- Name
+ SHWSys1 Supply Outlet Branch, !- Outlet Branch Name
+ SHWSys1 Supply Equipment Branch, !- Inlet Branch 1 Name
+ SHWSys1 Supply Equipment Bypass Branch; !- Inlet Branch 2 Name
+
+ Branch,
+ SHWSys1 Supply Inlet Branch, !- Name
+ , !- Pressure Drop Curve Name
+ Pump:VariableSpeed, !- Component 1 Object Type
+ SHWSys1 Pump, !- Component 1 Name
+ SHWSys1 Supply Inlet Node, !- Component 1 Inlet Node Name
+ SHWSys1 Pump-SHWSys1 Water HeaterNodeviaConnector; !- Component 1 Outlet Node Name
+
+ Branch,
+ SHWSys1 Supply Equipment Branch, !- Name
+ , !- Pressure Drop Curve Name
+ WaterHeater:Mixed, !- Component 1 Object Type
+ SHWSys1 Water Heater, !- Component 1 Name
+ SHWSys1 Pump-SHWSys1 Water HeaterNode, !- Component 1 Inlet Node Name
+ SHWSys1 Supply Equipment Outlet Node; !- Component 1 Outlet Node Name
+
+ Pump:VariableSpeed,
+ SHWSys1 Pump, !- Name
+ SHWSys1 Supply Inlet Node, !- Inlet Node Name
+ SHWSys1 Pump-SHWSys1 Water HeaterNodeviaConnector, !- Outlet Node Name
+ AUTOSIZE, !- Design Maximum Flow Rate {m3/s}
+ 179352, !- Design Pump Head {Pa}
+ AUTOSIZE, !- Design Power Consumption {W}
+ 1, !- Motor Efficiency
+ 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream
+ 0, !- Coefficient 1 of the Part Load Performance Curve
+ 1, !- Coefficient 2 of the Part Load Performance Curve
+ 0, !- Coefficient 3 of the Part Load Performance Curve
+ 0, !- Coefficient 4 of the Part Load Performance Curve
+ 0.0, !- Design Minimum Flow Rate {m3/s}
+ INTERMITTENT; !- Pump Control Type
+
+ WaterHeater:Mixed,
+ SHWSys1 Water Heater, !- Name
+ 0.9, !- Tank Volume {m3}
+ SHWSys1 Water Heater Setpoint Temperature Schedule, !- Setpoint Temperature Schedule Name
+ 2.0, !- Deadband Temperature Difference {deltaC}
+ 82.2222, !- Maximum Temperature Limit {C}
+ CYCLE, !- Heater Control Type
+ 4500, !- Heater Maximum Capacity {W}
+ , !- Heater Minimum Capacity {W}
+ , !- Heater Ignition Minimum Flow Rate {m3/s}
+ , !- Heater Ignition Delay {s}
+ Electricity, !- Heater Fuel Type
+ 0.595, !- Heater Thermal Efficiency
+ , !- Part Load Factor Curve Name
+ 20, !- Off Cycle Parasitic Fuel Consumption Rate {W}
+ Electricity, !- Off Cycle Parasitic Fuel Type
+ 0.595, !- Off Cycle Parasitic Heat Fraction to Tank
+ , !- On Cycle Parasitic Fuel Consumption Rate {W}
+ Electricity, !- On Cycle Parasitic Fuel Type
+ , !- On Cycle Parasitic Heat Fraction to Tank
+ SCHEDULE, !- Ambient Temperature Indicator
+ SHWSys1 Water Heater Ambient Temperature Schedule, !- Ambient Temperature Schedule Name
+ , !- Ambient Temperature Zone Name
+ , !- Ambient Temperature Outdoor Air Node Name
+ 6.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K}
+ , !- Off Cycle Loss Fraction to Zone
+ 6.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K}
+ , !- On Cycle Loss Fraction to Zone
+ , !- Peak Use Flow Rate {m3/s}
+ , !- Use Flow Rate Fraction Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ SHWSys1 Pump-SHWSys1 Water HeaterNode, !- Use Side Inlet Node Name
+ SHWSys1 Supply Equipment Outlet Node, !- Use Side Outlet Node Name
+ 1.0, !- Use Side Effectiveness
+ , !- Source Side Inlet Node Name
+ , !- Source Side Outlet Node Name
+ 1.0, !- Source Side Effectiveness
+ Autosize, !- Use Side Design Flow Rate {m3/s}
+ , !- Source Side Design Flow Rate {m3/s}
+ ; !- Indirect Water Heating Recovery Time {hr}
+
+ Schedule:Compact,
+ SHWSys1 Water Heater Setpoint Temperature Schedule, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,60.0; !- Field 3
+
+ Schedule:Compact,
+ SHWSys1 Water Heater Ambient Temperature Schedule, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,22.0; !- Field 3
+
+ Branch,
+ SHWSys1 Supply Equipment Bypass Branch, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ SHWSys1 Supply Equipment Bypass Pipe, !- Component 1 Name
+ SHWSys1 Supply Equip Bypass Inlet Node, !- Component 1 Inlet Node Name
+ SHWSys1 Supply Equip Bypass Outlet Node; !- Component 1 Outlet Node Name
+
+ Pipe:Adiabatic,
+ SHWSys1 Supply Equipment Bypass Pipe, !- Name
+ SHWSys1 Supply Equip Bypass Inlet Node, !- Inlet Node Name
+ SHWSys1 Supply Equip Bypass Outlet Node; !- Outlet Node Name
+
+ Branch,
+ SHWSys1 Supply Outlet Branch, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ SHWSys1 Supply Outlet Pipe, !- Component 1 Name
+ SHWSys1 Supply Mixer-SHWSys1 Supply Outlet Pipe, !- Component 1 Inlet Node Name
+ SHWSys1 Supply Outlet Node; !- Component 1 Outlet Node Name
+
+ Pipe:Adiabatic,
+ SHWSys1 Supply Outlet Pipe, !- Name
+ SHWSys1 Supply Mixer-SHWSys1 Supply Outlet Pipe, !- Inlet Node Name
+ SHWSys1 Supply Outlet Node; !- Outlet Node Name
+
+ BranchList,
+ SHWSys1 Demand Branches, !- Name
+ SHWSys1 Demand Inlet Branch, !- Branch 1 Name
+ SHWSys1 Demand Load Branch 1, !- Branch 2 Name
+ SHWSys1 Demand Load Branch 2, !- Branch 3 Name
+ SHWSys1 Demand Load Branch 3, !- Branch 4 Name
+ SHWSys1 Demand Load Branch 4, !- Branch 5 Name
+ SHWSys1 Demand Load Branch 5, !- Branch 6 Name
+ SHWSys1 Demand Bypass Branch, !- Branch 7 Name
+ SHWSys1 Demand Outlet Branch; !- Branch 8 Name
+
+ ConnectorList,
+ SHWSys1 Demand Connectors, !- Name
+ Connector:Splitter, !- Connector 1 Object Type
+ SHWSys1 Demand Splitter, !- Connector 1 Name
+ Connector:Mixer, !- Connector 2 Object Type
+ SHWSys1 Demand Mixer; !- Connector 2 Name
+
+ Connector:Splitter,
+ SHWSys1 Demand Splitter, !- Name
+ SHWSys1 Demand Inlet Branch, !- Inlet Branch Name
+ SHWSys1 Demand Load Branch 1, !- Outlet Branch 1 Name
+ SHWSys1 Demand Load Branch 2, !- Outlet Branch 2 Name
+ SHWSys1 Demand Load Branch 3, !- Outlet Branch 3 Name
+ SHWSys1 Demand Load Branch 4, !- Outlet Branch 4 Name
+ SHWSys1 Demand Load Branch 5, !- Outlet Branch 5 Name
+ SHWSys1 Demand Bypass Branch; !- Outlet Branch 6 Name
+
+ Connector:Mixer,
+ SHWSys1 Demand Mixer, !- Name
+ SHWSys1 Demand Outlet Branch, !- Outlet Branch Name
+ SHWSys1 Demand Load Branch 1, !- Inlet Branch 1 Name
+ SHWSys1 Demand Load Branch 2, !- Inlet Branch 2 Name
+ SHWSys1 Demand Load Branch 3, !- Inlet Branch 3 Name
+ SHWSys1 Demand Load Branch 4, !- Inlet Branch 4 Name
+ SHWSys1 Demand Load Branch 5, !- Inlet Branch 5 Name
+ SHWSys1 Demand Bypass Branch; !- Inlet Branch 6 Name
+
+ Branch,
+ SHWSys1 Demand Inlet Branch, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ SHWSys1 Demand Inlet Pipe, !- Component 1 Name
+ SHWSys1 Demand Inlet Node, !- Component 1 Inlet Node Name
+ SHWSys1 Demand Inlet Pipe-SHWSys1 Demand Mixer; !- Component 1 Outlet Node Name
+
+ Pipe:Adiabatic,
+ SHWSys1 Demand Inlet Pipe, !- Name
+ SHWSys1 Demand Inlet Node, !- Inlet Node Name
+ SHWSys1 Demand Inlet Pipe-SHWSys1 Demand Mixer; !- Outlet Node Name
+
+ Branch,
+ SHWSys1 Demand Load Branch 1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT, !- Component 1 Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Water Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_1SHW_DEFAULT Water Outlet Node; !- Component 1 Outlet Node Name
+
+ Branch,
+ SHWSys1 Demand Load Branch 2, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT, !- Component 1 Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Water Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_2SHW_DEFAULT Water Outlet Node; !- Component 1 Outlet Node Name
+
+ Branch,
+ SHWSys1 Demand Load Branch 3, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT, !- Component 1 Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Water Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_3SHW_DEFAULT Water Outlet Node; !- Component 1 Outlet Node Name
+
+ Branch,
+ SHWSys1 Demand Load Branch 4, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT, !- Component 1 Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Water Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_4SHW_DEFAULT Water Outlet Node; !- Component 1 Outlet Node Name
+
+ Branch,
+ SHWSys1 Demand Load Branch 5, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT, !- Component 1 Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Water Inlet Node, !- Component 1 Inlet Node Name
+ ZN_1_FLR_1_SEC_5SHW_DEFAULT Water Outlet Node; !- Component 1 Outlet Node Name
+
+ Branch,
+ SHWSys1 Demand Bypass Branch, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ SHWSys1 Demand Bypass Pipe, !- Component 1 Name
+ SHWSys1 Demand Bypass Pipe Inlet Node, !- Component 1 Inlet Node Name
+ SHWSys1 Demand Bypass Pipe Outlet Node; !- Component 1 Outlet Node Name
+
+ Pipe:Adiabatic,
+ SHWSys1 Demand Bypass Pipe, !- Name
+ SHWSys1 Demand Bypass Pipe Inlet Node, !- Inlet Node Name
+ SHWSys1 Demand Bypass Pipe Outlet Node; !- Outlet Node Name
+
+ Branch,
+ SHWSys1 Demand Outlet Branch, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ SHWSys1 Demand Outlet Pipe, !- Component 1 Name
+ SHWSys1 Demand Mixer-SHWSys1 Demand Outlet Pipe, !- Component 1 Inlet Node Name
+ SHWSys1 Demand Outlet Node; !- Component 1 Outlet Node Name
+
+ Pipe:Adiabatic,
+ SHWSys1 Demand Outlet Pipe, !- Name
+ SHWSys1 Demand Mixer-SHWSys1 Demand Outlet Pipe, !- Inlet Node Name
+ SHWSys1 Demand Outlet Node; !- Outlet Node Name
+
+ Exterior:FuelEquipment,
+ Equipment_SimpleRefrigeration, !- Name
+ Electricity, !- Fuel Use Type
+ ALWAYS_ON, !- Schedule Name
+ 507.2340, !- Design Level {W}
+ Refrigeration (simple); !- End-Use Subcategory
+
+ Exterior:Lights,
+ Exterior Facade Lighting,!- Name
+ ALWAYS_ON, !- Schedule Name
+ 130.2176, !- Design Level {W}
+ AstronomicalClock, !- Control Option
+ Exterior Facade Lighting;!- End-Use Subcategory
+
+ Schedule:Compact,
+ ReliantEnergySeasonSched,!- Name
+ number, !- Schedule Type Limits Name
+ Through: 4/30, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00,1, !- Field 3
+ Through: 10/31, !- Field 5
+ For: AllDays, !- Field 6
+ Until: 24:00,3, !- Field 7
+ Through: 12/31, !- Field 9
+ For: AllDays, !- Field 10
+ Until: 24:00,1; !- Field 11
+
+ UtilityCost:Tariff,
+ ReliantEnergy_PTB-LGS_LargeGeneral, !- Name
+ Electricity:Facility, !- Output Meter Name
+ kWh, !- Conversion Factor Choice
+ , !- Energy Conversion Factor
+ , !- Demand Conversion Factor
+ , !- Time of Use Period Schedule Name
+ ReliantEnergySeasonSched,!- Season Schedule Name
+ , !- Month Schedule Name
+ halfHour, !- Demand Window Length
+ 2936.2, !- Monthly Charge or Variable Name
+ , !- Minimum Monthly Charge or Variable Name
+ , !- Real Time Pricing Charge Schedule Name
+ , !- Customer Baseline Load Schedule Name
+ Comm Elect; !- Group Name
+
+ UtilityCost:Charge:Simple,
+ SummerFuelEnergyCharge, !- Utility Cost Charge Simple Name
+ ReliantEnergy_PTB-LGS_LargeGeneral, !- Tariff Name
+ totalEnergy, !- Source Variable
+ Summer, !- Season
+ EnergyCharges, !- Category Variable Name
+ 0.0823; !- Cost per Unit Value or Variable Name
+
+ UtilityCost:Charge:Block,
+ SummerBaseEnergycharge, !- Utility Cost Charge Block Name
+ ReliantEnergy_PTB-LGS_LargeGeneral, !- Tariff Name
+ TotalEnergy, !- Source Variable
+ Summer, !- Season
+ EnergyCharges, !- Category Variable Name
+ , !- Remaining Into Variable
+ TotalDemand, !- Block Size Multiplier Value or Variable Name
+ 295, !- Block Size 1 Value or Variable Name
+ 0.0249, !- Block 1 Cost per Unit Value or Variable Name
+ remaining, !- Block Size 2 Value or Variable Name
+ 0.0048; !- Block 2 Cost per Unit Value or Variable Name
+
+ UtilityCost:Charge:Simple,
+ WinterFuelEnergyCharge, !- Utility Cost Charge Simple Name
+ ReliantEnergy_PTB-LGS_LargeGeneral, !- Tariff Name
+ totalEnergy, !- Source Variable
+ Winter, !- Season
+ EnergyCharges, !- Category Variable Name
+ 0.0485; !- Cost per Unit Value or Variable Name
+
+ UtilityCost:Charge:Block,
+ AnnualDemandCharge, !- Utility Cost Charge Block Name
+ ReliantEnergy_PTB-LGS_LargeGeneral, !- Tariff Name
+ TotalDemand, !- Source Variable
+ Annual, !- Season
+ DemandCharges, !- Category Variable Name
+ , !- Remaining Into Variable
+ , !- Block Size Multiplier Value or Variable Name
+ 400, !- Block Size 1 Value or Variable Name
+ 0.0, !- Block 1 Cost per Unit Value or Variable Name
+ remaining, !- Block Size 2 Value or Variable Name
+ 6.14; !- Block 2 Cost per Unit Value or Variable Name
+
+ UtilityCost:Qualify,
+ MinDemand400kw, !- Utility Cost Qualify Name
+ ReliantEnergy_PTB-LGS_LargeGeneral, !- Tariff Name
+ TotalDemand, !- Variable Name
+ Minimum, !- Qualify Type
+ 400, !- Threshold Value or Variable Name
+ Annual, !- Season
+ Count, !- Threshold Test
+ 12; !- Number of Months
+
+ UtilityCost:Charge:Simple,
+ TaxofEightPtTwoFivePercent, !- Utility Cost Charge Simple Name
+ ReliantEnergy_PTB-LGS_LargeGeneral, !- Tariff Name
+ SubTotal, !- Source Variable
+ Annual, !- Season
+ Taxes, !- Category Variable Name
+ 0.0825; !- Cost per Unit Value or Variable Name
+
+!end ReliantEnergy_PTB-LGS_LargeGeneral
+
+ UtilityCost:Tariff,
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Name
+ Electricity:Facility, !- Output Meter Name
+ kWh, !- Conversion Factor Choice
+ , !- Energy Conversion Factor
+ , !- Demand Conversion Factor
+ , !- Time of Use Period Schedule Name
+ ReliantEnergySeasonSched,!- Season Schedule Name
+ , !- Month Schedule Name
+ halfHour, !- Demand Window Length
+ 18.82, !- Monthly Charge or Variable Name
+ , !- Minimum Monthly Charge or Variable Name
+ , !- Real Time Pricing Charge Schedule Name
+ , !- Customer Baseline Load Schedule Name
+ Comm Elect; !- Group Name
+
+ UtilityCost:Charge:Simple,
+ SummerFuelEnergyCharge, !- Utility Cost Charge Simple Name
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Tariff Name
+ totalEnergy, !- Source Variable
+ Summer, !- Season
+ EnergyCharges, !- Category Variable Name
+ 0.0823; !- Cost per Unit Value or Variable Name
+
+ UtilityCost:Charge:Block,
+ SummerBaseEnergycharge, !- Utility Cost Charge Block Name
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Tariff Name
+ TotalEnergy, !- Source Variable
+ Summer, !- Season
+ EnergyCharges, !- Category Variable Name
+ , !- Remaining Into Variable
+ TotalDemand, !- Block Size Multiplier Value or Variable Name
+ 125, !- Block Size 1 Value or Variable Name
+ 0.0521, !- Block 1 Cost per Unit Value or Variable Name
+ 170, !- Block Size 2 Value or Variable Name
+ 0.0317, !- Block 2 Cost per Unit Value or Variable Name
+ remaining, !- Block Size 3 Value or Variable Name
+ 0.0055; !- Block 3 Cost per Unit Value or Variable Name
+
+ UtilityCost:Charge:Simple,
+ WinterFuelEnergyCharge, !- Utility Cost Charge Simple Name
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Tariff Name
+ totalEnergy, !- Source Variable
+ Winter, !- Season
+ EnergyCharges, !- Category Variable Name
+ 0.0485; !- Cost per Unit Value or Variable Name
+
+ UtilityCost:Charge:Block,
+ SummerBaseEnergycharge, !- Utility Cost Charge Block Name
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Tariff Name
+ TotalEnergy, !- Source Variable
+ Summer, !- Season
+ EnergyCharges, !- Category Variable Name
+ , !- Remaining Into Variable
+ TotalDemand, !- Block Size Multiplier Value or Variable Name
+ 125, !- Block Size 1 Value or Variable Name
+ 0.0504, !- Block 1 Cost per Unit Value or Variable Name
+ 170, !- Block Size 2 Value or Variable Name
+ 0.0317, !- Block 2 Cost per Unit Value or Variable Name
+ remaining, !- Block Size 3 Value or Variable Name
+ 0.0055; !- Block 3 Cost per Unit Value or Variable Name
+
+ UtilityCost:Charge:Block,
+ AnnualDemandCharge, !- Utility Cost Charge Block Name
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Tariff Name
+ TotalDemand, !- Source Variable
+ Annual, !- Season
+ DemandCharges, !- Category Variable Name
+ , !- Remaining Into Variable
+ TotalDemand, !- Block Size Multiplier Value or Variable Name
+ 10, !- Block Size 1 Value or Variable Name
+ 0.0, !- Block 1 Cost per Unit Value or Variable Name
+ remaining, !- Block Size 2 Value or Variable Name
+ 3.04; !- Block 2 Cost per Unit Value or Variable Name
+
+ UtilityCost:Qualify,
+ MaxDemand400kw, !- Utility Cost Qualify Name
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Tariff Name
+ TotalDemand, !- Variable Name
+ Maximum, !- Qualify Type
+ 400, !- Threshold Value or Variable Name
+ Annual, !- Season
+ Count, !- Threshold Test
+ 1; !- Number of Months
+
+ UtilityCost:Charge:Simple,
+ TaxofEightPtTwoFivePercent, !- Utility Cost Charge Simple Name
+ ReliantEnergy_PTB-MGS_MiscGeneral, !- Tariff Name
+ SubTotal, !- Source Variable
+ Annual, !- Season
+ Taxes, !- Category Variable Name
+ 0.0825; !- Cost per Unit Value or Variable Name
+
+!end ReliantEnergy_PTB-MGS_MiscGeneral
+
+ FuelFactors,
+ Electricity, !- Existing Fuel Resource Name
+ kg, !- Units of Measure
+ , !- Energy per Unit Factor
+ 3.712, !- Source Energy Factor {J/J}
+ , !- Source Energy Schedule Name
+ 184.46090, !- CO2 Emission Factor {g/MJ}
+ , !- CO2 Emission Factor Schedule Name
+ 9.63405E+03, !- CO Emission Factor {g/MJ}
+ , !- CO Emission Factor Schedule Name
+ 9.70184E-04, !- CH4 Emission Factor {g/MJ}
+ , !- CH4 Emission Factor Schedule Name
+ 3.27720E-01, !- NOx Emission Factor {g/MJ}
+ , !- NOx Emission Factor Schedule Name
+ 1.83957E-03, !- N2O Emission Factor {g/MJ}
+ , !- N2O Emission Factor Schedule Name
+ 4.90888E-01, !- SO2 Emission Factor {g/MJ}
+ , !- SO2 Emission Factor Schedule Name
+ 1.73147E-02, !- PM Emission Factor {g/MJ}
+ , !- PM Emission Factor Schedule Name
+ 1.71765E-02, !- PM10 Emission Factor {g/MJ}
+ , !- PM10 Emission Factor Schedule Name
+ 1.38283E-04, !- PM2.5 Emission Factor {g/MJ}
+ , !- PM2.5 Emission Factor Schedule Name
+ 1.26310E-03, !- NH3 Emission Factor {g/MJ}
+ , !- NH3 Emission Factor Schedule Name
+ 4.32150E-03, !- NMVOC Emission Factor {g/MJ}
+ , !- NMVOC Emission Factor Schedule Name
+ 3.52794E-06, !- Hg Emission Factor {g/MJ}
+ , !- Hg Emission Factor Schedule Name
+ 0, !- Pb Emission Factor {g/MJ}
+ , !- Pb Emission Factor Schedule Name
+ 0.45499, !- Water Emission Factor {L/MJ}
+ , !- Water Emission Factor Schedule Name
+ 0, !- Nuclear High Level Emission Factor {g/MJ}
+ , !- Nuclear High Level Emission Factor Schedule Name
+ 0; !- Nuclear Low Level Emission Factor {m3/MJ}
+
+ UtilityCost:Tariff,
+ TX_EIAMonthlyRateGas, !- Name
+ NaturalGas:Facility, !- Output Meter Name
+ MCF, !- Conversion Factor Choice
+ , !- Energy Conversion Factor
+ , !- Demand Conversion Factor
+ , !- Time of Use Period Schedule Name
+ , !- Season Schedule Name
+ , !- Month Schedule Name
+ , !- Demand Window Length
+ 0.0, !- Monthly Charge or Variable Name
+ , !- Minimum Monthly Charge or Variable Name
+ , !- Real Time Pricing Charge Schedule Name
+ , !- Customer Baseline Load Schedule Name
+ Comm Gas; !- Group Name
+
+ UtilityCost:Charge:Simple,
+ MonthlyRateGasCharge, !- Utility Cost Charge Simple Name
+ TX_EIAMonthlyRateGas, !- Tariff Name
+ totalEnergy, !- Source Variable
+ Annual, !- Season
+ EnergyCharges, !- Category Variable Name
+ TX_MonthlyGasRates; !- Cost per Unit Value or Variable Name
+
+ UtilityCost:Variable,
+ TX_MonthlyGasRates, !- Name
+ TX_EIAMonthlyRateGas, !- Tariff Name
+ Currency, !- Variable Type
+ 7.87, !- January Value
+ 7.73, !- February Value
+ 7.41, !- March Value
+ 7.86, !- April Value
+ 8.05, !- May Value
+ 8.75, !- June Value
+ 8.21, !- July Value
+ 8.34, !- August Value
+ 8.04, !- September Value
+ 7.65, !- October Value
+ 8.24, !- November Value
+ 7.99; !- December Value
+
+ UtilityCost:Charge:Simple,
+ TaxofEightPtTwoFivePercent, !- Utility Cost Charge Simple Name
+ TX_EIAMonthlyRateGas, !- Tariff Name
+ SubTotal, !- Source Variable
+ Annual, !- Season
+ Taxes, !- Category Variable Name
+ 0.0825; !- Cost per Unit Value or Variable Name
+
+ Output:Surfaces:Drawing,dxf;
+
+ Output:VariableDictionary,IDF;
+
+ Output:Constructions,Constructions;
+
+ OutputControl:Table:Style,
+ HTML; !- Column Separator
+
+ Output:Table:SummaryReports,
+ AllSummary; !- Report 1 Name
+
+ Output:Table:Monthly,
+ Load Center Performance Summary, !- Name
+ 2, !- Digits After Decimal
+ Electric Load Center Produced Electricity Rate, !- Variable or Meter 1 Name
+ HoursNonZero, !- Aggregation Type for Variable or Meter 1
+ Electric Load Center Produced Electricity Rate, !- Variable or Meter 2 Name
+ SumOrAverageDuringHoursShown; !- Aggregation Type for Variable or Meter 2
+
+ Output:Table:Monthly,
+ PV Performance Summary, !- Name
+ 2, !- Digits After Decimal
+ Generator Produced DC Electricity Rate, !- Variable or Meter 1 Name
+ HoursNonZero, !- Aggregation Type for Variable or Meter 1
+ Generator Produced DC Electricity Rate, !- Variable or Meter 2 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 2
+ Generator PV Array Efficiency, !- Variable or Meter 3 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 3
+ Generator Produced DC Electricity Energy, !- Variable or Meter 4 Name
+ SumOrAverageDuringHoursShown; !- Aggregation Type for Variable or Meter 4
+
+ Output:Table:Monthly,
+ Inverter Performance Summary, !- Name
+ 3, !- Digits After Decimal
+ Inverter DC Input Electricity Rate, !- Variable or Meter 1 Name
+ HoursNonZero, !- Aggregation Type for Variable or Meter 1
+ Inverter DC Input Electricity Rate, !- Variable or Meter 2 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 2
+ Inverter AC Output Electricity Rate, !- Variable or Meter 3 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 3
+ Inverter Thermal Loss Rate, !- Variable or Meter 4 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 4
+ Inverter DC to AC Efficiency, !- Variable or Meter 5 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 5
+ Inverter Thermal Loss Rate, !- Variable or Meter 6 Name
+ SumOrAverageDuringHoursShown; !- Aggregation Type for Variable or Meter 6
+
+ Output:Table:Monthly,
+ Electric Storage Performance Summary, !- Name
+ 2, !- Digits After Decimal
+ Electric Storage Charge Power, !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Electric Storage Charge Energy, !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Electric Storage Discharge Power, !- Variable or Meter 3 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 3
+ Electric Storage Discharge Energy, !- Variable or Meter 4 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 4
+ Electric Storage Thermal Loss Rate, !- Variable or Meter 5 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 5
+ Electric Storage Thermal Loss Energy, !- Variable or Meter 6 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 6
+ Electric Storage Battery Charge State, !- Variable or Meter 7 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 7
+
+ Output:Table:Monthly,
+ AC Power Summary, !- Name
+ 3, !- Digits After Decimal
+ Facility Total Purchased Electricity Rate, !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Facility Net Purchased Electricity Rate, !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Facility Total Produced Electricity Rate, !- Variable or Meter 3 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 3
+ Facility Total Electricity Demand Rate, !- Variable or Meter 4 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 4
+ Facility Total Building Electricity Demand Rate, !- Variable or Meter 5 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 5
+ Facility Total HVAC Electricity Demand Rate, !- Variable or Meter 6 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 6
+
+ !!*********************************************
+
+ ElectricLoadCenter:Distribution,
+ PV Array Load Center, !- Name
+ Generator List, !- Generator List Name
+ TrackElectrical, !- Generator Operation Scheme Type
+ 0, !- Generator Demand Limit Scheme Purchased Electric Demand Limit {W}
+ , !- Generator Track Schedule Name Scheme Schedule Name
+ , !- Generator Track Meter Scheme Meter Name
+ DirectCurrentWithInverterDCStorage, !- Electrical Buss Type
+ PV Inverter, !- Inverter Name
+ LiIonBattery, !- Electrical Storage Object Name
+ , !- Transformer Object Name
+ TrackFacilityElectricDemandStoreExcessOnSite, !- Storage Operation Scheme
+ , !- Storage Control Track Meter Name
+ , !- Storage Converter Object Name
+ 0.95, !- Maximum Storage State of Charge Fraction
+ 0.20; !- Minimum Storage State of Charge Fraction
+
+ Curve:DoubleExponentialDecay,
+ Doubleexponential, !- Name
+ 1380, !- Coefficient1 C1
+ 6834, !- Coefficient2 C2
+ -8.75, !- Coefficient3 C3
+ 6747, !- Coefficient4 C4
+ -6.22, !- Coefficient5 C5
+ 0, !- Minimum Value of x
+ 1, !- Maximum Value of x
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for x
+ Dimensionless; !- Output Unit Type
+
+ ElectricLoadCenter:Storage:LiIonNMCBattery,
+ LiIonBattery, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ , !- Zone Name
+ 0, !- Radiative Fraction
+ KandlerSmith, !- Lifetime Model
+ 139, !- Number of Cells in Series
+ 25, !- Number of Strings in Parallel
+ 0.7, !- Initial Fractional State of Charge
+ , !- DC to DC Charging Efficiency
+ 342, !- Battery Mass
+ 4.26, !- Battery Surface Area
+ , !- Battery Specific Heat Capacity
+ ; !- Heat Transfer Coefficient Between Battery and Ambient
+
+ ElectricLoadCenter:Inverter:LookUpTable,
+ PV Inverter, !- Name
+ ALWAYS_ON, !- Availability Schedule Name
+ , !- Zone Name
+ 0.25, !- Radiative Fraction
+ 14000, !- Rated Maximum Continuous Output Power {W}
+ 200.0, !- Night Tare Loss Power {W}
+ 368, !- Nominal Voltage Input {V}
+ 0.839, !- Efficiency at 10% Power and Nominal Voltage
+ 0.897, !- Efficiency at 20% Power and Nominal Voltage
+ 0.916, !- Efficiency at 30% Power and Nominal Voltage
+ 0.931, !- Efficiency at 50% Power and Nominal Voltage
+ 0.934, !- Efficiency at 75% Power and Nominal Voltage
+ 0.930; !- Efficiency at 100% Power and Nominal Voltage
+
+ ElectricLoadCenter:Generators,
+ Generator List, !- Name
+ PV:ZN_1_FLR_1_SEC_1_Ceiling, !- Generator 1 Name
+ Generator:Photovoltaic, !- Generator 1 Object Type
+ 9000.0, !- Generator 1 Rated Electric Power Output {W}
+ , !- Generator 1 Availability Schedule Name
+ , !- Generator 1 Rated Thermal to Electrical Power Ratio
+ PV:ZN_1_FLR_1_SEC_2_Ceiling, !- Generator 2 Name
+ Generator:Photovoltaic, !- Generator 2 Object Type
+ 6000.0, !- Generator 2 Rated Electric Power Output {W}
+ , !- Generator 2 Availability Schedule Name
+ , !- Generator 2 Rated Thermal to Electrical Power Ratio
+ PV:ZN_1_FLR_1_SEC_3_Ceiling, !- Generator 3 Name
+ Generator:Photovoltaic, !- Generator 3 Object Type
+ 9000.0, !- Generator 3 Rated Electric Power Output {W}
+ , !- Generator 3 Availability Schedule Name
+ , !- Generator 3 Rated Thermal to Electrical Power Ratio
+ PV:ZN_1_FLR_1_SEC_4_Ceiling, !- Generator 4 Name
+ Generator:Photovoltaic, !- Generator 4 Object Type
+ 6000.0, !- Generator 4 Rated Electric Power Output {W}
+ , !- Generator 4 Availability Schedule Name
+ , !- Generator 4 Rated Thermal to Electrical Power Ratio
+ PV:ZN_1_FLR_1_SEC_5_Ceiling, !- Generator 5 Name
+ Generator:Photovoltaic, !- Generator 5 Object Type
+ 9000.0, !- Generator 5 Rated Electric Power Output {W}
+ , !- Generator 5 Availability Schedule Name
+ ; !- Generator 5 Rated Thermal to Electrical Power Ratio
+
+ Generator:Photovoltaic,
+ PV:ZN_1_FLR_1_SEC_1_Ceiling, !- Name
+ ZN_1_FLR_1_SEC_1_Ceiling,!- Surface Name
+ PhotovoltaicPerformance:Simple, !- Photovoltaic Performance Object Type
+ 20percentEffPVhalfArea, !- Module Performance Name
+ Decoupled, !- Heat Transfer Integration Mode
+ 1.0, !- Number of Series Strings in Parallel {dimensionless}
+ 1.0; !- Number of Modules in Series {dimensionless}
+
+ PhotovoltaicPerformance:Simple,
+ 20percentEffPVhalfArea, !- Name
+ 0.5, !- Fraction of Surface Area with Active Solar Cells {dimensionless}
+ Fixed, !- Conversion Efficiency Input Mode
+ 0.20, !- Value for Cell Efficiency if Fixed
+ ; !- Efficiency Schedule Name
+
+ ComponentCost:LineItem,
+ PV:ZN_1_FLR_1_SEC_1_Ceiling, !- Name
+ , !- Type
+ Generator:Photovoltaic, !- Line Item Type
+ PV:ZN_1_FLR_1_SEC_1_Ceiling, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 9000.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Generator:Photovoltaic,
+ PV:ZN_1_FLR_1_SEC_2_Ceiling, !- Name
+ ZN_1_FLR_1_SEC_2_Ceiling,!- Surface Name
+ PhotovoltaicPerformance:Simple, !- Photovoltaic Performance Object Type
+ 20percentEffPVhalfArea, !- Module Performance Name
+ Decoupled, !- Heat Transfer Integration Mode
+ 1.0, !- Number of Series Strings in Parallel {dimensionless}
+ 1.0; !- Number of Modules in Series {dimensionless}
+
+ ComponentCost:LineItem,
+ PV:ZN_1_FLR_1_SEC_2_Ceiling, !- Name
+ , !- Type
+ Generator:Photovoltaic, !- Line Item Type
+ PV:ZN_1_FLR_1_SEC_2_Ceiling, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 9000.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Generator:Photovoltaic,
+ PV:ZN_1_FLR_1_SEC_3_Ceiling, !- Name
+ ZN_1_FLR_1_SEC_3_Ceiling,!- Surface Name
+ PhotovoltaicPerformance:Simple, !- Photovoltaic Performance Object Type
+ 20percentEffPVhalfArea, !- Module Performance Name
+ Decoupled, !- Heat Transfer Integration Mode
+ 1.0, !- Number of Series Strings in Parallel {dimensionless}
+ 1.0; !- Number of Modules in Series {dimensionless}
+
+ ComponentCost:LineItem,
+ PV:ZN_1_FLR_1_SEC_3_Ceiling, !- Name
+ , !- Type
+ Generator:Photovoltaic, !- Line Item Type
+ PV:ZN_1_FLR_1_SEC_3_Ceiling, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 9000.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Generator:Photovoltaic,
+ PV:ZN_1_FLR_1_SEC_4_Ceiling, !- Name
+ ZN_1_FLR_1_SEC_4_Ceiling,!- Surface Name
+ PhotovoltaicPerformance:Simple, !- Photovoltaic Performance Object Type
+ 20percentEffPVhalfArea, !- Module Performance Name
+ Decoupled, !- Heat Transfer Integration Mode
+ 1.0, !- Number of Series Strings in Parallel {dimensionless}
+ 1.0; !- Number of Modules in Series {dimensionless}
+
+ ComponentCost:LineItem,
+ PV:ZN_1_FLR_1_SEC_4_Ceiling, !- Name
+ , !- Type
+ Generator:Photovoltaic, !- Line Item Type
+ PV:ZN_1_FLR_1_SEC_4_Ceiling, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 9000.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Generator:Photovoltaic,
+ PV:ZN_1_FLR_1_SEC_5_Ceiling, !- Name
+ ZN_1_FLR_1_SEC_5_Ceiling,!- Surface Name
+ PhotovoltaicPerformance:Simple, !- Photovoltaic Performance Object Type
+ 20percentEffPVhalfArea, !- Module Performance Name
+ Decoupled, !- Heat Transfer Integration Mode
+ 1.0, !- Number of Series Strings in Parallel {dimensionless}
+ 1.0; !- Number of Modules in Series {dimensionless}
+
+ ComponentCost:LineItem,
+ PV:ZN_1_FLR_1_SEC_5_Ceiling, !- Name
+ , !- Type
+ Generator:Photovoltaic, !- Line Item Type
+ PV:ZN_1_FLR_1_SEC_5_Ceiling, !- Item Name
+ , !- Object End-Use Key
+ , !- Cost per Each {$}
+ , !- Cost per Area {$/m2}
+ 9000.0000, !- Cost per Unit of Output Capacity {$/kW}
+ , !- Cost per Unit of Output Capacity per COP {$/kW}
+ , !- Cost per Volume {$/m3}
+ , !- Cost per Volume Rate {$/(m3/s)}
+ , !- Cost per Energy per Temperature Difference {$/(W/K)}
+ ; !- Quantity {dimensionless}
+
+ Output:Variable,*,Inverter DC to AC Efficiency,timestep;
+
+ Output:Variable,*,Inverter DC Input Electricity Rate,timestep;
+
+ Output:Variable,*,Inverter DC Input Electricity Energy,timestep;
+
+ Output:Variable,*,Inverter AC Output Electricity Rate,timestep;
+
+ Output:Variable,*,Electric Storage Degradation Fraction,timestep;
+
+ Output:Variable,*,Electric Storage Charge Fraction,timestep;
+
+ Output:Variable,*,Electric Storage Operating Mode Index,timestep;
+
+ Output:Variable,*,Electric Storage Battery Charge State,timestep;
+
+ Output:Variable,*,Electric Storage Charge Power,timestep;
+
+ Output:Variable,*,Electric Storage Charge Energy,timestep;
+
+ Output:Variable,*,Electric Storage Discharge Power,timestep;
+
+ Output:Variable,*,Electric Storage Discharge Energy,timestep;
+
+ Output:Variable,*,Electric Storage Thermal Loss Rate,timestep;
+
+ Output:Variable,*,Electric Storage Thermal Loss Energy,timestep;
+
+ Output:Variable,*,Electric Storage Total Current,timestep;
+
+ Output:Variable,*,Electric Storage Total Voltage,timestep;
+
+ Output:Variable,*,Electric Storage Battery Temperature,timestep;
+
+ Output:Variable,*,Electric Load Center Produced Electricity Rate,timestep;
+
+ Output:Variable,*,Electric Load Center Produced Electricity Energy,timestep;
+
+ Output:Variable,*,Electric Load Center Produced Thermal Rate,timestep;
+
+ Output:Variable,*,Electric Load Center Produced Thermal Energy,timestep;
+
+ Output:Variable,*,Facility Total Purchased Electricity Rate,timestep;
+
+ Output:Variable,*,Facility Total Purchased Electricity Energy,timestep;
+
+ Output:Variable,*,Facility Total Surplus Electricity Energy,timestep;
+
+ Output:Variable,*,Facility Net Purchased Electricity Rate,timestep;
+
+ Output:Variable,*,Facility Net Purchased Electricity Energy,timestep;
+
+ Output:Variable,*,Facility Total Building Electricity Demand Rate,timestep;
+
+ Output:Variable,*,Facility Total HVAC Electricity Demand Rate,timestep;
+
+ Output:Variable,*,Facility Total Electricity Demand Rate,timestep;
+
+ Output:Variable,*,Facility Total Produced Electricity Rate,timestep;
+
+ Output:Variable,*,Facility Total Produced Electricity Energy,timestep;
+
+ Output:Variable,*,Generator Produced DC Electricity Rate,timestep;
+
+ Output:Variable,*,Generator Produced DC Electricity Energy,timestep;
+
+ Output:Variable,*,Generator PV Array Efficiency,timestep;
+
+ Output:Variable,*,Generator Requested Electricity Rate,timestep;
+
+ Output:Variable,*,Cooling Coil Electricity Rate,timestep;
+
+ Output:SQLite,
+ Simple; !- Option Type
+
+!***** Portions of this file originally Generated by EPXMLPreproc2 *****
+!***** Created on 06/07/2007 02:53:27 *****
+!***** Input File produced by the EnergyPlus Model Example File Generator *****
+!***** Disclaimer & Notice: *****
+!***** The EnergyPlus Example File Generator ("EEFG") is provided by the *****
+!***** National Renewable Energy Laboratory ("NREL") operated by Midwest *****
+!***** Research Institute for the U.S. Department of Energy ("DOE"). *****
+!***** Access to and use of the EEFG shall impose the following obligations *****
+!***** on the user. The user agrees to credit NREL/MRI in any publication(s) *****
+!***** that result from the use of EEFG. The names NREL/MRI/DOE, however, may *****
+!***** not be used in any advertising or publicity to endorse or promote *****
+!***** any products, services or commercial entities unless specific written *****
+!***** permission is obtained from NREL/MRI/DOE. *****
+!***** EEFG IS PROVIDED BY NREL/MRI "AS IS" AND ANY EXPRESS OR IMPLIED *****
+!***** WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES *****
+!***** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *****
+!***** DISCLAIMED. IN NO EVENT SHALL NREL/MRI/DOE BE LIABLE FOR ANY *****
+!***** SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER, *****
+!***** INCLUDING BUT NOT LIMITED TO CLAIMS ASSOCIATED WITH THE LOSS OF DATA *****
+!***** OR PROFITS, WHICH MAY RESULT FROM AN ACTION IN CONTRACT, NEGLIGENCE *****
+!***** OR OTHER TORTIOUS CLAIM THAT ARISES OUT OF OR IN CONNECTION *****
+!***** WITH THE ACCESS, USE OR PERFORMANCE OF THE EEFG. *****
+!***** Please help us to improve this service. If you have suggestions for *****
+!***** improving this input file, please contact us at ewi_support@nrel.gov. *****
+! Start SimMetaData
+! WeatherFileName=USA_OK_Oklahoma.City_TMY2.epw
+! CodeStandard=ASHRAE 90.1-2004
+! Std62Version=2004
+! RoofConstruction=Insulation Entirely Above Deck
+! ExtWallConstruction=Steel-Framed
+! End SimMetaData
diff --git a/testfiles/SingleFamilyHouse_HP_Slab.idf b/testfiles/SingleFamilyHouse_HP_Slab.idf
new file mode 100644
index 00000000000..9bfe44295e0
--- /dev/null
+++ b/testfiles/SingleFamilyHouse_HP_Slab.idf
@@ -0,0 +1,5453 @@
+!-Generator IDFEditor 1.51
+!-Option SortedOrder UseSpecialFormat
+
+!-NOTE: All comments with '!-' are ignored by the IDFEditor and are generated automatically.
+!- Use '!' comments if they need to be retained when using the IDFEditor.
+
+
+!- =========== ALL OBJECTS IN CLASS: VERSION ===========
+
+Version,9.5;
+
+!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL ===========
+
+
+SimulationControl,
+ Yes, !- Do Zone Sizing Calculation
+ Yes, !- Do System Sizing Calculation
+ No, !- Do Plant Sizing Calculation
+ Yes, !- Run Simulation for Sizing Periods
+ Yes, !- Run Simulation for Weather File Run Periods
+ , !- Do HVAC Sizing Simulation for Sizing Periods
+ ; !- Maximum Number of HVAC Sizing Simulation Passes
+
+
+!- =========== ALL OBJECTS IN CLASS: BUILDING ===========
+
+Building,
+ SF_CZ8_HP_SLAB, !- Name
+ 0, !- North Axis {deg}
+ Suburbs, !- Terrain
+ 0.04, !- Loads Convergence Tolerance Value {W}
+ 0.4, !- Temperature Convergence Tolerance Value {deltaC}
+ FullExterior, !- Solar Distribution
+ 25, !- Maximum Number of Warmup Days
+ 6; !- Minimum Number of Warmup Days
+
+
+!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE ===========
+
+SurfaceConvectionAlgorithm:Inside,TARP;
+
+!- =========== ALL OBJECTS IN CLASS: TIMESTEP ===========
+
+Timestep,6;
+
+!- =========== ALL OBJECTS IN CLASS: SITE:LOCATION ===========
+
+
+Site:Location,
+ Fairbanks Intl Arpt_AK_USA Design_Conditions, !- Name
+ 64.82, !- Latitude {deg}
+ -147.85, !- Longitude {deg}
+ -9.00, !- Time Zone {hr}
+ 133.00; !- Elevation {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY ===========
+
+SizingPeriod:DesignDay,
+ Fairbanks Intl Arpt Ann Htg 99.6% Condns DB, !- Name
+ 1, !- Month
+ 21, !- Day of Month
+ WinterDesignDay, !- Day Type
+ -41.9, !- Maximum Dry-Bulb Temperature {C}
+ 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}
+ DefaultMultipliers, !- Dry-Bulb Temperature Range Modifier Type
+ , !- Dry-Bulb Temperature Range Modifier Day Schedule Name
+ Wetbulb, !- Humidity Condition Type
+ -41.9, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}
+ , !- Humidity Condition Day Schedule Name
+ , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
+ , !- Enthalpy at Maximum Dry-Bulb {J/kg}
+ , !- Daily Wet-Bulb Temperature Range {deltaC}
+ 99737., !- Barometric Pressure {Pa}
+ 0.3, !- Wind Speed {m/s}
+ 20, !- Wind Direction {deg}
+ No, !- Rain Indicator
+ No, !- Snow Indicator
+ No, !- Daylight Saving Time Indicator
+ ASHRAEClearSky, !- Solar Model Indicator
+ , !- Beam Solar Day Schedule Name
+ , !- Diffuse Solar Day Schedule Name
+ , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}
+ , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}
+ 0.00; !- Sky Clearness
+
+SizingPeriod:DesignDay,
+ Fairbanks Intl Arpt Ann Clg .4% Condns DB=>MWB, !- Name
+ 7, !- Month
+ 21, !- Day of Month
+ SummerDesignDay, !- Day Type
+ 27.4, !- Maximum Dry-Bulb Temperature {C}
+ 10.2, !- Daily Dry-Bulb Temperature Range {deltaC}
+ DefaultMultipliers, !- Dry-Bulb Temperature Range Modifier Type
+ , !- Dry-Bulb Temperature Range Modifier Day Schedule Name
+ Wetbulb, !- Humidity Condition Type
+ 16.1, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}
+ , !- Humidity Condition Day Schedule Name
+ , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
+ , !- Enthalpy at Maximum Dry-Bulb {J/kg}
+ , !- Daily Wet-Bulb Temperature Range {deltaC}
+ 99737., !- Barometric Pressure {Pa}
+ 3.1, !- Wind Speed {m/s}
+ 180, !- Wind Direction {deg}
+ No, !- Rain Indicator
+ No, !- Snow Indicator
+ No, !- Daylight Saving Time Indicator
+ ASHRAETau, !- Solar Model Indicator
+ , !- Beam Solar Day Schedule Name
+ , !- Diffuse Solar Day Schedule Name
+ 0.387, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}
+ 2.212; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: RUNPERIOD ===========
+
+RunPeriod,
+ annual, !- Name
+ 1, !- Begin Month
+ 1, !- Begin Day of Month
+ , !- Begin Year
+ 12, !- End Month
+ 31, !- End Day of Month
+ , !- End Year
+ Sunday, !- Day of Week for Start Day
+ Yes, !- Use Weather File Holidays and Special Days
+ Yes, !- Use Weather File Daylight Saving Period
+ No, !- Apply Weekend Holiday Rule
+ Yes, !- Use Weather File Rain Indicators
+ Yes; !- Use Weather File Snow Indicators
+
+
+!- =========== ALL OBJECTS IN CLASS: SITE:WATERMAINSTEMPERATURE ===========
+
+Site:WaterMainsTemperature,
+ Correlation, !- Calculation Method
+ , !- Temperature Schedule Name
+ -1.525, !- Annual Average Outdoor Air Temperature {C}
+ 36.2; !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC}
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS ===========
+
+ScheduleTypeLimits,
+ any number; !- Name
+
+ScheduleTypeLimits,
+ On/Off, !- Name
+ 0, !- Lower Limit Value
+ 1, !- Upper Limit Value
+ Discrete; !- Numeric Type
+
+ScheduleTypeLimits,
+ control_type, !- Name
+ 0, !- Lower Limit Value
+ 4, !- Upper Limit Value
+ Discrete; !- Numeric Type
+
+ScheduleTypeLimits,
+ fraction, !- Name
+ 0, !- Lower Limit Value
+ 1, !- Upper Limit Value
+ Continuous; !- Numeric Type
+
+ScheduleTypeLimits,
+ Temperature, !- Name
+ -60, !- Lower Limit Value
+ 200, !- Upper Limit Value
+ Continuous; !- Numeric Type
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY ===========
+
+Schedule:Day:Hourly,
+ OccupancyDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 1.00000, !- Hour 1
+ 1.00000, !- Hour 2
+ 1.00000, !- Hour 3
+ 1.00000, !- Hour 4
+ 1.00000, !- Hour 5
+ 1.00000, !- Hour 6
+ 1.00000, !- Hour 7
+ 0.88310, !- Hour 8
+ 0.40861, !- Hour 9
+ 0.24189, !- Hour 10
+ 0.24189, !- Hour 11
+ 0.24189, !- Hour 12
+ 0.24189, !- Hour 13
+ 0.24189, !- Hour 14
+ 0.24189, !- Hour 15
+ 0.24189, !- Hour 16
+ 0.29498, !- Hour 17
+ 0.55310, !- Hour 18
+ 0.89693, !- Hour 19
+ 0.89693, !- Hour 20
+ 0.89693, !- Hour 21
+ 1.00000, !- Hour 22
+ 1.00000, !- Hour 23
+ 1.00000; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0625, !- Hour 1
+ 0.0625, !- Hour 2
+ 0.0625, !- Hour 3
+ 0.0625, !- Hour 4
+ 0.1875, !- Hour 5
+ 0.390625, !- Hour 6
+ 0.4375, !- Hour 7
+ 0.390625, !- Hour 8
+ 0.171875, !- Hour 9
+ 0.1171875, !- Hour 10
+ 0.1171875, !- Hour 11
+ 0.1171875, !- Hour 12
+ 0.1171875, !- Hour 13
+ 0.1171875, !- Hour 14
+ 0.1171875, !- Hour 15
+ 0.203125, !- Hour 16
+ 0.4375, !- Hour 17
+ 0.609375, !- Hour 18
+ 0.8203125, !- Hour 19
+ 0.984375, !- Hour 20
+ 1, !- Hour 21
+ 0.6875, !- Hour 22
+ 0.3828125, !- Hour 23
+ 0.15625; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay_EELighting_OccSensors, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.065170403, !- Hour 1
+ 0.065170403, !- Hour 2
+ 0.065170403, !- Hour 3
+ 0.065170403, !- Hour 4
+ 0.195511208, !- Hour 5
+ 0.407315016, !- Hour 6
+ 0.456192818, !- Hour 7
+ 0.407315016, !- Hour 8
+ 0.179218607, !- Hour 9
+ 0.122194505, !- Hour 10
+ 0.122194505, !- Hour 11
+ 0.122194505, !- Hour 12
+ 0.122194505, !- Hour 13
+ 0.122194505, !- Hour 14
+ 0.122194505, !- Hour 15
+ 0.211803808, !- Hour 16
+ 0.456192818, !- Hour 17
+ 0.635411425, !- Hour 18
+ 0.855361533, !- Hour 19
+ 0.947933128, !- Hour 20
+ 0.947933128, !- Hour 21
+ 0.716874428, !- Hour 22
+ 0.399168715, !- Hour 23
+ 0.162926006; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay_EELighting_Garage_OccSensors, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.048125, !- Hour 1
+ 0.048125, !- Hour 2
+ 0.048125, !- Hour 3
+ 0.048125, !- Hour 4
+ 0.144375, !- Hour 5
+ 0.30078125, !- Hour 6
+ 0.336875, !- Hour 7
+ 0.30078125, !- Hour 8
+ 0.13234375, !- Hour 9
+ 0.090234375, !- Hour 10
+ 0.090234375, !- Hour 11
+ 0.090234375, !- Hour 12
+ 0.090234375, !- Hour 13
+ 0.090234375, !- Hour 14
+ 0.090234375, !- Hour 15
+ 0.15640625, !- Hour 16
+ 0.336875, !- Hour 17
+ 0.46921875, !- Hour 18
+ 0.631640625, !- Hour 19
+ 0.7, !- Hour 20
+ 0.7, !- Hour 21
+ 0.529375, !- Hour 22
+ 0.294765625, !- Hour 23
+ 0.1203125; !- Hour 24
+
+Schedule:Day:Hourly,
+ ExteriorLightingDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 1, !- Hour 1
+ 1, !- Hour 2
+ 1, !- Hour 3
+ 1, !- Hour 4
+ 1, !- Hour 5
+ 1, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 1, !- Hour 19
+ 1, !- Hour 20
+ 1, !- Hour 21
+ 1, !- Hour 22
+ 1, !- Hour 23
+ 1; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay_EELighting, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.06875, !- Hour 1
+ 0.06875, !- Hour 2
+ 0.06875, !- Hour 3
+ 0.06875, !- Hour 4
+ 0.20625, !- Hour 5
+ 0.4296875, !- Hour 6
+ 0.48125, !- Hour 7
+ 0.4296875, !- Hour 8
+ 0.1890625, !- Hour 9
+ 0.12890625, !- Hour 10
+ 0.12890625, !- Hour 11
+ 0.12890625, !- Hour 12
+ 0.12890625, !- Hour 13
+ 0.12890625, !- Hour 14
+ 0.12890625, !- Hour 15
+ 0.2234375, !- Hour 16
+ 0.48125, !- Hour 17
+ 0.6703125, !- Hour 18
+ 0.90234375, !- Hour 19
+ 1, !- Hour 20
+ 1, !- Hour 21
+ 0.75625, !- Hour 22
+ 0.42109375, !- Hour 23
+ 0.171875; !- Hour 24
+
+Schedule:Day:Hourly,
+ RefrigeratorDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.8, !- Hour 1
+ 0.782696177062374, !- Hour 2
+ 0.765593561368209, !- Hour 3
+ 0.742857142857143, !- Hour 4
+ 0.731388329979879, !- Hour 5
+ 0.731388329979879, !- Hour 6
+ 0.759959758551308, !- Hour 7
+ 0.8, !- Hour 8
+ 0.817102615694165, !- Hour 9
+ 0.828571428571429, !- Hour 10
+ 0.8, !- Hour 11
+ 0.8, !- Hour 12
+ 0.839839034205231, !- Hour 13
+ 0.839839034205231, !- Hour 14
+ 0.828571428571429, !- Hour 15
+ 0.839839034205231, !- Hour 16
+ 0.885714285714286, !- Hour 17
+ 0.971428571428572, !- Hour 18
+ 1, !- Hour 19
+ 0.971428571428572, !- Hour 20
+ 0.942857142857143, !- Hour 21
+ 0.925553319919517, !- Hour 22
+ 0.885714285714286, !- Hour 23
+ 0.828571428571429; !- Hour 24
+
+Schedule:Day:Hourly,
+ MiscPlugLoadDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.607490272373541, !- Hour 1
+ 0.559338521400778, !- Hour 2
+ 0.552853437094682, !- Hour 3
+ 0.545071335927367, !- Hour 4
+ 0.524481193255512, !- Hour 5
+ 0.585278858625162, !- Hour 6
+ 0.676232166018158, !- Hour 7
+ 0.718547341115435, !- Hour 8
+ 0.607490272373541, !- Hour 9
+ 0.517023346303502, !- Hour 10
+ 0.529182879377432, !- Hour 11
+ 0.529345006485084, !- Hour 12
+ 0.520428015564202, !- Hour 13
+ 0.538424124513619, !- Hour 14
+ 0.568741893644617, !- Hour 15
+ 0.600356679636835, !- Hour 16
+ 0.71011673151751, !- Hour 17
+ 0.862678339818418, !- Hour 18
+ 0.936608300907912, !- Hour 19
+ 0.966763942931258, !- Hour 20
+ 1, !- Hour 21
+ 0.976653696498055, !- Hour 22
+ 0.845168612191959, !- Hour 23
+ 0.73443579766537; !- Hour 24
+
+Schedule:Day:Hourly,
+ CookingRangeDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.04715848452508, !- Hour 1
+ 0.04715848452508, !- Hour 2
+ 0.0235458911419424, !- Hour 3
+ 0.0235458911419424, !- Hour 4
+ 0.04715848452508, !- Hour 5
+ 0.0707043756670224, !- Hour 6
+ 0.165088046958378, !- Hour 7
+ 0.283017609391676, !- Hour 8
+ 0.306563500533618, !- Hour 9
+ 0.320771077908218, !- Hour 10
+ 0.283017609391676, !- Hour 11
+ 0.330176093916756, !- Hour 12
+ 0.377334578441836, !- Hour 13
+ 0.306563500533618, !- Hour 14
+ 0.292422625400213, !- Hour 15
+ 0.377334578441836, !- Hour 16
+ 0.613193703308431, !- Hour 17
+ 1, !- Hour 18
+ 0.778348452508004, !- Hour 19
+ 0.400947171824973, !- Hour 20
+ 0.235859124866596, !- Hour 21
+ 0.165088046958378, !- Hour 22
+ 0.103721985058698, !- Hour 23
+ 0.0707043756670224; !- Hour 24
+
+Schedule:Day:Hourly,
+ DishwasherWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.115858456545258, !- Hour 1
+ 0.0514758745041469, !- Hour 2
+ 0.0385691669671833, !- Hour 3
+ 0.0257379372520738, !- Hour 4
+ 0.0257379372520738, !- Hour 5
+ 0.0772138117562207, !- Hour 6
+ 0.154503101334295, !- Hour 7
+ 0.23179239091237, !- Hour 8
+ 0.437922322394519, !- Hour 9
+ 0.489398196898665, !- Hour 10
+ 0.425015614857555, !- Hour 11
+ 0.360633032816445, !- Hour 12
+ 0.309081680490443, !- Hour 13
+ 0.347726325279481, !- Hour 14
+ 0.28334374323837, !- Hour 15
+ 0.270437035701407, !- Hour 16
+ 0.28334374323837, !- Hour 17
+ 0.373464262531554, !- Hour 18
+ 0.656883483591778, !- Hour 19
+ 0.837199999999997, !- Hour 20
+ 0.682621420843852, !- Hour 21
+ 0.502304904435629, !- Hour 22
+ 0.334819617742518, !- Hour 23
+ 0.23179239091237; !- Hour 24
+
+Schedule:Day:Hourly,
+ DishwasherWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.124134060584205, !- Hour 1
+ 0.0551527226830148, !- Hour 2
+ 0.0413241074648395, !- Hour 3
+ 0.0275763613415074, !- Hour 4
+ 0.0275763613415074, !- Hour 5
+ 0.0827290840245222, !- Hour 6
+ 0.165539037143888, !- Hour 7
+ 0.248348990263252, !- Hour 8
+ 0.469202488279841, !- Hour 9
+ 0.524355210962856, !- Hour 10
+ 0.455373873061666, !- Hour 11
+ 0.386392535160476, !- Hour 12
+ 0.331158943382618, !- Hour 13
+ 0.3725639199423, !- Hour 14
+ 0.303582582041111, !- Hour 15
+ 0.289753966822935, !- Hour 16
+ 0.303582582041111, !- Hour 17
+ 0.400140281283808, !- Hour 18
+ 0.703803732419762, !- Hour 19
+ 0.897, !- Hour 20
+ 0.731380093761269, !- Hour 21
+ 0.538183826181031, !- Hour 22
+ 0.358735304724125, !- Hour 23
+ 0.248348990263252; !- Hour 24
+
+Schedule:Day:Hourly,
+ DishwasherVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesWasherWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0796474528960224, !- Hour 1
+ 0.0637009071877185, !- Hour 2
+ 0.0318078157711097, !- Hour 3
+ 0.0318078157711097, !- Hour 4
+ 0.0637009071877185, !- Hour 5
+ 0.0955939986043261, !- Hour 6
+ 0.191187997208654, !- Hour 7
+ 0.414354361479414, !- Hour 8
+ 0.62157418004187, !- Hour 9
+ 0.7332, !- Hour 10
+ 0.717253454291697, !- Hour 11
+ 0.637520725750175, !- Hour 12
+ 0.573734542916957, !- Hour 13
+ 0.510033635729239, !- Hour 14
+ 0.446247452896022, !- Hour 15
+ 0.414354361479414, !- Hour 16
+ 0.430300907187718, !- Hour 17
+ 0.414354361479414, !- Hour 18
+ 0.414354361479414, !- Hour 19
+ 0.414354361479414, !- Hour 20
+ 0.414354361479414, !- Hour 21
+ 0.398407815771109, !- Hour 22
+ 0.270920725750174, !- Hour 23
+ 0.143433635729239; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesWasherWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0974410327983253, !- Hour 1
+ 0.0779319609211445, !- Hour 2
+ 0.038913817166783, !- Hour 3
+ 0.038913817166783, !- Hour 4
+ 0.0779319609211445, !- Hour 5
+ 0.116950104675506, !- Hour 6
+ 0.233900209351012, !- Hour 7
+ 0.506922889043964, !- Hour 8
+ 0.760436496859734, !- Hour 9
+ 0.897, !- Hour 10
+ 0.877490928122819, !- Hour 11
+ 0.779945568736915, !- Hour 12
+ 0.701909281228193, !- Hour 13
+ 0.623977320307048, !- Hour 14
+ 0.545941032798325, !- Hour 15
+ 0.506922889043964, !- Hour 16
+ 0.526431960921144, !- Hour 17
+ 0.506922889043964, !- Hour 18
+ 0.506922889043964, !- Hour 19
+ 0.506922889043964, !- Hour 20
+ 0.506922889043964, !- Hour 21
+ 0.487413817166783, !- Hour 22
+ 0.331445568736915, !- Hour 23
+ 0.175477320307048; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesWasherVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ dhw_profile_day, !- Name
+ fraction, !- Schedule Type Limits Name
+ 0.006, !- Hour 1
+ 0.003, !- Hour 2
+ 0.001, !- Hour 3
+ 0.001, !- Hour 4
+ 0.003, !- Hour 5
+ 0.021, !- Hour 6
+ 0.075, !- Hour 7
+ 0.079, !- Hour 8
+ 0.076, !- Hour 9
+ 0.067, !- Hour 10
+ 0.061, !- Hour 11
+ 0.05, !- Hour 12
+ 0.042, !- Hour 13
+ 0.038, !- Hour 14
+ 0.033, !- Hour 15
+ 0.038, !- Hour 16
+ 0.043, !- Hour 17
+ 0.058, !- Hour 18
+ 0.068, !- Hour 19
+ 0.065, !- Hour 20
+ 0.06, !- Hour 21
+ 0.047, !- Hour 22
+ 0.041, !- Hour 23
+ 0.024; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesDryerWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0996818663838815, !- Hour 1
+ 0.0598091198303289, !- Hour 2
+ 0.0398727465535526, !- Hour 3
+ 0.0199363732767763, !- Hour 4
+ 0.0398727465535526, !- Hour 5
+ 0.0598091198303289, !- Hour 6
+ 0.15949098621421, !- Hour 7
+ 0.31898197242842, !- Hour 8
+ 0.486427370202556, !- Hour 9
+ 0.685791102970318, !- Hour 10
+ 0.785472969354199, !- Hour 11
+ 0.817391304347826, !- Hour 12
+ 0.745600222800647, !- Hour 13
+ 0.677836691410393, !- Hour 14
+ 0.610073160020138, !- Hour 15
+ 0.578154825026511, !- Hour 16
+ 0.558218451749735, !- Hour 17
+ 0.546236490032885, !- Hour 18
+ 0.518345705196183, !- Hour 19
+ 0.510391293636256, !- Hour 20
+ 0.526300116756109, !- Hour 21
+ 0.546236490032885, !- Hour 22
+ 0.438600212089077, !- Hour 23
+ 0.239236479321316; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesDryerWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.121951219512195, !- Hour 1
+ 0.0731707317073171, !- Hour 2
+ 0.0487804878048781, !- Hour 3
+ 0.024390243902439, !- Hour 4
+ 0.0487804878048781, !- Hour 5
+ 0.0731707317073171, !- Hour 6
+ 0.195121951219512, !- Hour 7
+ 0.390243902439024, !- Hour 8
+ 0.59509731460951, !- Hour 9
+ 0.8389997536339, !- Hour 10
+ 0.960950973146095, !- Hour 11
+ 1, !- Hour 12
+ 0.912170485341217, !- Hour 13
+ 0.829268292682927, !- Hour 14
+ 0.746366100024637, !- Hour 15
+ 0.707317073170732, !- Hour 16
+ 0.682926829268293, !- Hour 17
+ 0.668268046316827, !- Hour 18
+ 0.634146341463415, !- Hour 19
+ 0.624414880512441, !- Hour 20
+ 0.643877802414388, !- Hour 21
+ 0.668268046316827, !- Hour 22
+ 0.536585365853659, !- Hour 23
+ 0.292682926829268; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesDryerVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ SinksWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.160052687884461, !- Hour 1
+ 0.0767484287242575, !- Hour 2
+ 0.0575330636533838, !- Hour 3
+ 0.0575330636533838, !- Hour 4
+ 0.0767484287242575, !- Hour 5
+ 0.204926216902916, !- Hour 6
+ 0.480271095212623, !- Hour 7
+ 0.704412677186414, !- Hour 8
+ 0.742843407328163, !- Hour 9
+ 0.697969878309708, !- Hour 10
+ 0.614778650708746, !- Hour 11
+ 0.563462322813587, !- Hour 12
+ 0.550689756619418, !- Hour 13
+ 0.512259026477668, !- Hour 14
+ 0.467385497459214, !- Hour 15
+ 0.486600862530089, !- Hour 16
+ 0.544246957742712, !- Hour 17
+ 0.736400608451458, !- Hour 18
+ 0.84525, !- Hour 19
+ 0.781274137469912, !- Hour 20
+ 0.640323783097085, !- Hour 21
+ 0.544246957742712, !- Hour 22
+ 0.44828316394758, !- Hour 23
+ 0.307332809574753; !- Hour 24
+
+Schedule:Day:Hourly,
+ SinksWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.169851832040653, !- Hour 1
+ 0.0814473121155389, !- Hour 2
+ 0.0610554961219577, !- Hour 3
+ 0.0610554961219577, !- Hour 4
+ 0.0814473121155389, !- Hour 5
+ 0.217472719978604, !- Hour 6
+ 0.509675447980744, !- Hour 7
+ 0.747539983952929, !- Hour 8
+ 0.788323615940091, !- Hour 9
+ 0.74070272800214, !- Hour 10
+ 0.652418159935812, !- Hour 11
+ 0.597960016047071, !- Hour 12
+ 0.58440545600428, !- Hour 13
+ 0.543621824017117, !- Hour 14
+ 0.496000936079166, !- Hour 15
+ 0.516392752072746, !- Hour 16
+ 0.57756820005349, !- Hour 17
+ 0.781486359989302, !- Hour 18
+ 0.897, !- Hour 19
+ 0.829107247927254, !- Hour 20
+ 0.679527280021396, !- Hour 21
+ 0.57756820005349, !- Hour 22
+ 0.47572907194437, !- Hour 23
+ 0.326149104038513; !- Hour 24
+
+Schedule:Day:Hourly,
+ SinksVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ ShowersWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.076044361285933, !- Hour 1
+ 0.0345332539547544, !- Hour 2
+ 0.0242088790610646, !- Hour 3
+ 0.0345332539547544, !- Hour 4
+ 0.0968355162442594, !- Hour 5
+ 0.366693315189659, !- Hour 6
+ 0.837199999999997, !- Hour 7
+ 0.830293349209049, !- Hour 8
+ 0.674644497363497, !- Hour 9
+ 0.529320020411635, !- Hour 10
+ 0.425506650790951, !- Hour 11
+ 0.335577785337642, !- Hour 12
+ 0.242159993196122, !- Hour 13
+ 0.207555536655894, !- Hour 14
+ 0.179857730906617, !- Hour 15
+ 0.186764381697567, !- Hour 16
+ 0.214462187446844, !- Hour 17
+ 0.27676444973635, !- Hour 18
+ 0.300973328797414, !- Hour 19
+ 0.300973328797414, !- Hour 20
+ 0.297484402109202, !- Hour 21
+ 0.290577751318252, !- Hour 22
+ 0.207555536655894, !- Hour 23
+ 0.148742201054601; !- Hour 24
+
+Schedule:Day:Hourly,
+ ShowersWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0814761013777853, !- Hour 1
+ 0.0369999149515223, !- Hour 2
+ 0.0259380847082837, !- Hour 3
+ 0.0369999149515223, !- Hour 4
+ 0.103752338833135, !- Hour 5
+ 0.392885694846062, !- Hour 6
+ 0.897, !- Hour 7
+ 0.889600017009696, !- Hour 8
+ 0.722833390032318, !- Hour 9
+ 0.56712859329818, !- Hour 10
+ 0.455899982990304, !- Hour 11
+ 0.359547627147474, !- Hour 12
+ 0.259457135567274, !- Hour 13
+ 0.222380932131315, !- Hour 14
+ 0.19270471168566, !- Hour 15
+ 0.200104694675966, !- Hour 16
+ 0.229780915121619, !- Hour 17
+ 0.296533339003232, !- Hour 18
+ 0.322471423711515, !- Hour 19
+ 0.322471423711515, !- Hour 20
+ 0.318733287974145, !- Hour 21
+ 0.311333304983841, !- Hour 22
+ 0.222380932131315, !- Hour 23
+ 0.159366643987073; !- Hour 24
+
+Schedule:Day:Hourly,
+ ShowersVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ BathsWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0492758944582015, !- Hour 1
+ 0.0246379472291013, !- Hour 2
+ 0.0246379472291013, !- Hour 3
+ 0.0246379472291013, !- Hour 4
+ 0.0492758944582015, !- Hour 5
+ 0.123189736145504, !- Hour 6
+ 0.295719195628041, !- Hour 7
+ 0.369633037315344, !- Hour 8
+ 0.418908931773546, !- Hour 9
+ 0.369633037315344, !- Hour 10
+ 0.295719195628041, !- Hour 11
+ 0.221741525061908, !- Hour 12
+ 0.197103577832807, !- Hour 13
+ 0.147827683374605, !- Hour 14
+ 0.147827683374605, !- Hour 15
+ 0.147827683374605, !- Hour 16
+ 0.24644330116984, !- Hour 17
+ 0.295719195628041, !- Hour 18
+ 0.492886602339681, !- Hour 19
+ 0.640714285714285, !- Hour 20
+ 0.640714285714285, !- Hour 21
+ 0.492886602339681, !- Hour 22
+ 0.418908931773546, !- Hour 23
+ 0.24644330116984; !- Hour 24
+
+Schedule:Day:Hourly,
+ BathsWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0689862522414824, !- Hour 1
+ 0.0344931261207412, !- Hour 2
+ 0.0344931261207412, !- Hour 3
+ 0.0344931261207412, !- Hour 4
+ 0.0689862522414824, !- Hour 5
+ 0.172465630603706, !- Hour 6
+ 0.414006873879259, !- Hour 7
+ 0.517486252241482, !- Hour 8
+ 0.586472504482965, !- Hour 9
+ 0.517486252241482, !- Hour 10
+ 0.414006873879259, !- Hour 11
+ 0.310438135086671, !- Hour 12
+ 0.27594500896593, !- Hour 13
+ 0.206958756724447, !- Hour 14
+ 0.206958756724447, !- Hour 15
+ 0.206958756724447, !- Hour 16
+ 0.345020621637776, !- Hour 17
+ 0.414006873879259, !- Hour 18
+ 0.690041243275553, !- Hour 19
+ 0.897, !- Hour 20
+ 0.897, !- Hour 21
+ 0.690041243275553, !- Hour 22
+ 0.586472504482965, !- Hour 23
+ 0.345020621637776; !- Hour 24
+
+Schedule:Day:Hourly,
+ BathsVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ DHWDistDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.142553149370226, !- Hour 1
+ 0.0764866759550322, !- Hour 2
+ 0.0516611840277747, !- Hour 3
+ 0.0584039294664903, !- Hour 4
+ 0.121469841058603, !- Hour 5
+ 0.366180268451559, !- Hour 6
+ 0.833258955739606, !- Hour 7
+ 0.999999987228391, !- Hour 8
+ 0.995483090581232, !- Hour 9
+ 0.916474762598139, !- Hour 10
+ 0.800898393293271, !- Hour 11
+ 0.682564390940485, !- Hour 12
+ 0.590066600109555, !- Hour 13
+ 0.522371887032053, !- Hour 14
+ 0.466005974303267, !- Hour 15
+ 0.46573704253214, !- Hour 16
+ 0.527514234916123, !- Hour 17
+ 0.637905701335668, !- Hour 18
+ 0.727588642310272, !- Hour 19
+ 0.732551127624518, !- Hour 20
+ 0.681468471942116, !- Hour 21
+ 0.610804704600985, !- Hour 22
+ 0.464292318119835, !- Hour 23
+ 0.299867724445383; !- Hour 24
+
+Schedule:Day:Hourly,
+ WinterLoadDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ SummerLoadDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 1, !- Hour 1
+ 1, !- Hour 2
+ 1, !- Hour 3
+ 1, !- Hour 4
+ 1, !- Hour 5
+ 1, !- Hour 6
+ 1, !- Hour 7
+ 1, !- Hour 8
+ 1, !- Hour 9
+ 1, !- Hour 10
+ 1, !- Hour 11
+ 1, !- Hour 12
+ 1, !- Hour 13
+ 1, !- Hour 14
+ 1, !- Hour 15
+ 1, !- Hour 16
+ 1, !- Hour 17
+ 1, !- Hour 18
+ 1, !- Hour 19
+ 1, !- Hour 20
+ 1, !- Hour 21
+ 1, !- Hour 22
+ 1, !- Hour 23
+ 1; !- Hour 24
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:COMPACT ===========
+
+Schedule:Week:Compact,
+ RefrigeratorWeek, !- Name
+ For: AllDays, !- DayType List 1
+ RefrigeratorDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ MiscPlugLoadWeek, !- Name
+ For: AllDays, !- DayType List 1
+ MiscPlugLoadDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ CookingRangeWeek, !- Name
+ For: AllDays, !- DayType List 1
+ CookingRangeDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ DishwasherWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ DishwasherWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ DishwasherVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ DishwasherWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ ClothesWasherWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ ClothesWasherWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ ClothesWasherVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ ClothesWasherWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ dhw_profile_week, !- Name
+ AllDays, !- DayType List 1
+ dhw_profile_day; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ ClothesDryerWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ ClothesDryerWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ ClothesDryerVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ ClothesDryerWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ SinksWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ SinksWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ SinksVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ SinksWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ ShowersWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ ShowersWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ ShowersVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ ShowersWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ BathsWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ BathsWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ BathsVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ BathsWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ DHWDistWeek, !- Name
+ For: AllDays, !- DayType List 1
+ DHWDistDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ OccupancyWeek, !- Name
+ AllDays, !- DayType List 1
+ OccupancyDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek_EELighting, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay_EELighting; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek_EELighting_interior_controls, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay_EELighting_OccSensors; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek_EELighting_garage_controls, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay_EELighting_Garage_OccSensors; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ ExteriorLightingProfileWeek, !- Name
+ For: AllDays, !- DayType List 1
+ ExteriorLightingDay; !- Schedule:Day Name 1
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR ===========
+
+Schedule:Year,
+ Occupancy, !- Name
+ Fraction, !- Schedule Type Limits Name
+ OccupancyWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLighting, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLightingHE, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek_EELighting, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLightingHE_OS, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek_EELighting_interior_controls, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLightingHE_VS, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek_EELighting_garage_controls, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ ExteriorLighting, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ExteriorLightingProfileWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Refrigerator, !- Name
+ Fraction, !- Schedule Type Limits Name
+ RefrigeratorWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ MiscPlugLoad, !- Name
+ Fraction, !- Schedule Type Limits Name
+ MiscPlugLoadWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ CookingRange, !- Name
+ Fraction, !- Schedule Type Limits Name
+ CookingRangeWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ dhw_sch, !- Name
+ fraction, !- Schedule Type Limits Name
+ dhw_profile_week, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Dishwasher, !- Name
+ Fraction, !- Schedule Type Limits Name
+ DishwasherWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ ClothesWasher, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ClothesWasherWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ ClothesDryer, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ClothesDryerWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Sinks, !- Name
+ Fraction, !- Schedule Type Limits Name
+ SinksWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Showers, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ShowersWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Baths, !- Name
+ Fraction, !- Schedule Type Limits Name
+ BathsWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ DHWDist, !- Name
+ Fraction, !- Schedule Type Limits Name
+ DHWDistWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT ===========
+
+Schedule:Compact,
+ BA_shower_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 1:00, 0.00174682444444444,
+ !- Field 4
+ Until: 2:00, 0.000794011111111111,
+ !- Field 6
+ Until: 3:00, 0.000476406666666667,
+ !- Field 8
+ Until: 4:00, 0.000794011111111111,
+ !- Field 10
+ Until: 5:00, 0.00222323111111111,
+ !- Field 12
+ Until: 6:00, 0.00825771555555556,
+ !- Field 14
+ Until: 7:00, 0.0187386622222222,
+ !- Field 16
+ Until: 8:00, 0.01857986, !- Field 18
+ Until: 9:00, 0.0150862111111111,
+ !- Field 20
+ Until: 10:00, 0.0117513644444444,
+ !- Field 22
+ Until: 11:00, 0.00952813333333333,
+ !- Field 24
+ Until: 12:00, 0.00746370444444444,
+ !- Field 26
+ Until: 13:00, 0.00539927555555556,
+ !- Field 28
+ Until: 14:00, 0.00460526444444444,
+ !- Field 30
+ Until: 15:00, 0.00412885777777778,
+ !- Field 32
+ Until: 16:00, 0.00397005555555556,
+ !- Field 34
+ Until: 17:00, 0.00476406666666667,
+ !- Field 36
+ Until: 18:00, 0.00619328666666667,
+ !- Field 38
+ Until: 19:00, 0.00666969333333333,
+ !- Field 40
+ Until: 20:00, 0.00666969333333333,
+ !- Field 42
+ Until: 21:00, 0.00666969333333333,
+ !- Field 44
+ Until: 22:00, 0.00651089111111111,
+ !- Field 46
+ Until: 23:00, 0.00460526444444444,
+ !- Field 48
+ Until: 24:00, 0.00333484666666667;
+ !- Field 50
+
+Schedule:Compact,
+ BA_bath_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 1:00, 0.000163090909090909,
+ !- Field 4
+ Until: 2:00, 8.15454545454545e-05,
+ !- Field 6
+ Until: 3:00, 8.15454545454545e-05,
+ !- Field 8
+ Until: 4:00, 8.15454545454545e-05,
+ !- Field 10
+ Until: 5:00, 0.000163090909090909,
+ !- Field 12
+ Until: 6:00, 0.000387340909090909,
+ !- Field 14
+ Until: 7:00, 0.000937772727272727,
+ !- Field 16
+ Until: 8:00, 0.00118240909090909,
+ !- Field 18
+ Until: 9:00, 0.0013455, !- Field 20
+ Until: 10:00, 0.00118240909090909,
+ !- Field 22
+ Until: 11:00, 0.000937772727272727,
+ !- Field 24
+ Until: 12:00, 0.000713522727272727,
+ !- Field 26
+ Until: 13:00, 0.000631977272727273,
+ !- Field 28
+ Until: 14:00, 0.000468886363636364,
+ !- Field 30
+ Until: 15:00, 0.000468886363636364,
+ !- Field 32
+ Until: 16:00, 0.000468886363636364,
+ !- Field 34
+ Until: 17:00, 0.000795068181818182,
+ !- Field 36
+ Until: 18:00, 0.000937772727272727,
+ !- Field 38
+ Until: 19:00, 0.00156975,!- Field 40
+ Until: 20:00, 0.00203863636363636,
+ !- Field 42
+ Until: 21:00, 0.00203863636363636,
+ !- Field 44
+ Until: 22:00, 0.00156975,!- Field 46
+ Until: 23:00, 0.0013455, !- Field 48
+ Until: 24:00, 0.000795068181818182;
+ !- Field 50
+
+Schedule:Compact,
+ BA_sink_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 1:00, 0.00387388596491228,
+ !- Field 4
+ Until: 2:00, 0.00193694298245614,
+ !- Field 6
+ Until: 3:00, 0.00138353070175439,
+ !- Field 8
+ Until: 4:00, 0.00138353070175439,
+ !- Field 10
+ Until: 5:00, 0.00193694298245614,
+ !- Field 12
+ Until: 6:00, 0.00498071052631579,
+ !- Field 14
+ Until: 7:00, 0.0116216578947368,
+ !- Field 16
+ Until: 8:00, 0.0171557807017544,
+ !- Field 18
+ Until: 9:00, 0.0182626052631579,
+ !- Field 20
+ Until: 10:00, 0.0171557807017544,
+ !- Field 22
+ Until: 11:00, 0.0149421315789474,
+ !- Field 24
+ Until: 12:00, 0.0138353070175439,
+ !- Field 26
+ Until: 13:00, 0.013558600877193,
+ !- Field 28
+ Until: 14:00, 0.0124517763157895,
+ !- Field 30
+ Until: 15:00, 0.0118983640350877,
+ !- Field 32
+ Until: 16:00, 0.011344951754386,
+ !- Field 34
+ Until: 17:00, 0.0132818947368421,
+ !- Field 36
+ Until: 18:00, 0.017985899122807,
+ !- Field 38
+ Until: 19:00, 0.0207529605263158,
+ !- Field 40
+ Until: 20:00, 0.0190927236842105,
+ !- Field 42
+ Until: 21:00, 0.01577225,!- Field 44
+ Until: 22:00, 0.0132818947368421,
+ !- Field 46
+ Until: 23:00, 0.0110682456140351,
+ !- Field 48
+ Until: 24:00, 0.00747106578947368;
+ !- Field 50
+
+Schedule:Compact,
+ activity_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 117.28; !- Field 4
+
+Schedule:Compact,
+ inf_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 1; !- Field 4
+
+Schedule:Compact,
+ zone_control_type, !- Name
+ control_type, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 4; !- Field 4
+
+Schedule:Compact,
+ shading_2012iecc, !- Name
+ fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 0; !- Field 4
+
+Schedule:Compact,
+ shading_2009iecc, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 5/30, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 0.85, !- Field 4
+ Through: 8/31, !- Field 5
+ For: AllDays, !- Field 6
+ Until 24:00, !- Field 7
+ 0.7, !- Field 8
+ Through: 12/31, !- Field 9
+ For: AllDays, !- Field 10
+ Until: 24:00, 0.85; !- Field 12
+
+Schedule:Compact,
+ dhw_setpt, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 48; !- Field 4
+
+Schedule:Compact,
+ dhw_setpt_hpwh, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 44; !- Field 4
+
+Schedule:Compact,
+ Supply-Air-Temp-Sch, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 12; !- Field 4
+
+Schedule:Compact,
+ always_avail, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 1; !- Field 4
+
+Schedule:Compact,
+ always_off, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 0; !- Field 4
+
+Schedule:Compact,
+ heating_sch_HRef, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 20; !- Field 4
+
+Schedule:Compact,
+ cooling_sch_HRef, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 25.55; !- Field 4
+
+Schedule:Compact,
+ heating_sch, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 22.2222222222223;
+ !- Field 4
+
+Schedule:Compact,
+ cooling_sch, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 23.888888888889;
+ !- Field 4
+
+Schedule:Compact,
+ fan_cycle, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 0; !- Field 4
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:CONSTANT ===========
+
+Schedule:Constant,DWWaterTempSchedule,Temperature,48.8888888888889;
+Schedule:Constant,CWWaterTempSchedule,Temperature,48.8888888888889;
+Schedule:Constant,SinkSensSchedule,Fraction,0.687777777777778;
+Schedule:Constant,SinkLatSchedule,Fraction,0.312222222222222;
+Schedule:Constant,ShowerSensSchedule,Fraction,0.51280276816609;
+Schedule:Constant,ShowerLatSchedule,Fraction,0.48719723183391;
+Schedule:Constant,BathSensSchedule,Fraction,1;
+Schedule:Constant,BathLatSchedule,Fraction,0;
+Schedule:Constant,SSBWaterTempSchedule,Temperature,40.5555555555556;
+Schedule:Constant,WaterHeaterSP1Schedule,Temperature,48.8888888888889;
+Schedule:Constant,WaterHeaterSP2Schedule,Temperature,40.5555555555556;
+Schedule:Constant,DHWSupplySetpoint,Temperature,48.8888888888889;
+Schedule:Constant,boiler_setpt,Temperature,80;
+Schedule:Constant,Compressor Setpoint,Temperature,50;
+Schedule:Constant,DOAShightemp,Temperature,200;
+Schedule:Constant,DOASlowtemp,Temperature,-60;
+
+!- =========== ALL OBJECTS IN CLASS: MATERIAL ===========
+
+
+Material,
+ sheathing_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.031115, !- Thickness {m}
+ 0.035329, !- Conductivity {W/m-K}
+ 20.1, !- Density {kg/m3}
+ 1465.415; !- Specific Heat {J/kg-K}
+
+Material,
+ ceil_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.444461299067702, !- Thickness {m}
+ 0.0617176, !- Conductivity {W/m-K}
+ 41.9286, !- Density {kg/m3}
+ 776.25126; !- Specific Heat {J/kg-K}
+
+Material,
+ floor_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.000254, !- Thickness {m}
+ 12.989536, !- Conductivity {W/m-K}
+ 55.074, !- Density {kg/m3}
+ 916.9311; !- Specific Heat {J/kg-K}
+
+Material,
+ bsmtwall_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.000254, !- Thickness {m}
+ 10.84384, !- Conductivity {W/m-K}
+ 120.801, !- Density {kg/m3}
+ 1036.25775; !- Specific Heat {J/kg-K}
+
+Material,
+ crawlwall_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.000254, !- Thickness {m}
+ 10.84384, !- Conductivity {W/m-K}
+ 120.801, !- Density {kg/m3}
+ 1036.25775; !- Specific Heat {J/kg-K}
+
+Material,
+ wall_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.1397, !- Thickness {m}
+ 0.057165, !- Conductivity {W/m-K}
+ 120.801, !- Density {kg/m3}
+ 1036.25775; !- Specific Heat {J/kg-K}
+
+Material,
+ Very High Reflectivity Surface, !- Name
+ Smooth, !- Roughness
+ 0.0005, !- Thickness {m}
+ 237, !- Conductivity {W/m-K}
+ 2702, !- Density {kg/m3}
+ 903, !- Specific Heat {J/kg-K}
+ 0.90, !- Thermal Absorptance
+ 0.05, !- Solar Absorptance
+ 0.05; !- Visible Absorptance
+
+Material,
+ GypsumBoard-5/16in, !- Name
+ Rough, !- Roughness
+ 7.93953E-03, !- Thickness {m}
+ 0.1586200, !- Conductivity {W/m-K}
+ 640, !- Density {kg/m3}
+ 1129.6, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.4, !- Solar Absorptance
+ 0.1; !- Visible Absorptance
+
+Material,
+ CopperPipe, !- Name
+ MediumRough, !- Roughness
+ 1.90500386169072E-02, !- Thickness {m}
+ 401, !- Conductivity {W/m-K}
+ 2243.000, !- Density {kg/m3}
+ 837.0000, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.6500000, !- Solar Absorptance
+ 0.6500000; !- Visible Absorptance
+
+Material,
+ F08 Metal surface, !- Name
+ Smooth, !- Roughness
+ 0.0008, !- Thickness {m}
+ 45.28, !- Conductivity {W/m-K}
+ 7824, !- Density {kg/m3}
+ 500; !- Specific Heat {J/kg-K}
+
+Material,
+ Concrete_4in, !- Name
+ Rough, !- Roughness
+ 0.1014984, !- Thickness {m}
+ 1.312098, !- Conductivity {W/m-K}
+ 2242.8, !- Density {kg/m3}
+ 465.2; !- Specific Heat {J/kg-K}
+
+Material,
+ Asphalt_shingle, !- Name
+ MediumRough, !- Roughness
+ 6.33985285170672E-03, !- Thickness {m}
+ 0.08186, !- Conductivity {W/m-K}
+ 1121.2917044623, !- Density {kg/m3}
+ 1255.20000949809, !- Specific Heat {J/kg-K}
+ , !- Thermal Absorptance
+ 0.75; !- Solar Absorptance
+
+Material,
+ Wood_shingle, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 0.11388, !- Conductivity {W/m-K}
+ 426.090847695673, !- Density {kg/m3}
+ 1631.76001234752; !- Specific Heat {J/kg-K}
+
+Material,
+ Slate_shingle, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 1.44219, !- Conductivity {W/m-K}
+ 1601.845292089, !- Density {kg/m3}
+ 1255.20000949809; !- Specific Heat {J/kg-K}
+
+Material,
+ cement_stucco, !- Name
+ MediumSmooth, !- Roughness
+ 1.905E-02, !- Thickness {m}
+ 0.721, !- Conductivity {W/m-K}
+ 1865.58, !- Density {kg/m3}
+ 878.640006648665; !- Specific Heat {J/kg-K}
+
+Material,
+ syn_stucco, !- Name
+ MediumSmooth, !- Roughness
+ 0.3048E-02, !- Thickness {m}
+ 8.65E-02, !- Conductivity {W/m-K}
+ 400, !- Density {kg/m3}
+ 878.640006648665; !- Specific Heat {J/kg-K}
+
+Material,
+ Drywall_1/2in, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 0.16009, !- Conductivity {W/m-K}
+ 800.922646044499, !- Density {kg/m3}
+ 1087.84000823168; !- Specific Heat {J/kg-K}
+
+Material,
+ OSB_5/8in, !- Name
+ MediumSmooth, !- Roughness
+ 0.015875032180756, !- Thickness {m}
+ 0.1163, !- Conductivity {W/m-K}
+ 544.627399310259, !- Density {kg/m3}
+ 1213.36000918149; !- Specific Heat {J/kg-K}
+
+Material,
+ OSB_7/16in, !- Name
+ MediumSmooth, !- Roughness
+ 0.0111125, !- Thickness {m}
+ 0.1163, !- Conductivity {W/m-K}
+ 544.627399310259, !- Density {kg/m3}
+ 1213.36000918149; !- Specific Heat {J/kg-K}
+
+Material,
+ Blown_R30, !- Name
+ MediumRough, !- Roughness
+ 0.212598430964684, !- Thickness {m}
+ 0.04119, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062; !- Specific Heat {J/kg-K}
+
+Material,
+ Blown_R30_top, !- Name
+ MediumRough, !- Roughness
+ 0.117348237880148, !- Thickness {m}
+ 0.04119, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Plywood_3/4in, !- Name
+ Rough, !- Roughness
+ 0.01905, !- Thickness {m}
+ 0.1154577, !- Conductivity {W/m-K}
+ 544.68, !- Density {kg/m3}
+ 674.54, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Batt_R19, !- Name
+ MediumRough, !- Roughness
+ 2.54000514892096E-02, !- Thickness {m}
+ 3.47522010738099E-03, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Lumber_2x4, !- Name
+ Rough , !- Roughness
+ 0.0890016, !- Thickness {m}
+ 0.1154577, !- Conductivity {W/m-K}
+ 512.64, !- Density {kg/m3}
+ 767.58, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Carpet_n_pad, !- Name
+ MediumSmooth, !- Roughness
+ 2.54000514892096E-02, !- Thickness {m}
+ 6.01314018580031E-02, !- Conductivity {W/m-K}
+ 32.03690584178, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Batt_R13, !- Name
+ MediumRough, !- Roughness
+ 0.0889, !- Thickness {m}
+ 0.03876, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ OSB_1/2in, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 0.1163, !- Conductivity {W/m-K}
+ 544.627399310259, !- Density {kg/m3}
+ 1213.36000918149, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ soil_12in, !- Name
+ Rough, !- Roughness
+ 0.3048, !- Thickness {m}
+ 1.731, !- Conductivity {W/m-K}
+ 1842.3, !- Density {kg/m3}
+ 232.6, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ door_const, !- Name
+ Smooth, !- Roughness
+ 0.0422695734864227, !- Thickness {m}
+ 0.0720096, !- Conductivity {W/m-K}
+ 512.64, !- Density {kg/m3}
+ 767.58; !- Specific Heat {J/kg-K}
+
+Material,
+ Gyp_board_1/2in, !- Name
+ Rough, !- Roughness
+ 0.01271016, !- Thickness {m}
+ 0.1586200, !- Conductivity {W/m-K}
+ 640, !- Density {kg/m3}
+ 1129.6, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.4, !- Solar Absorptance
+ 0.1; !- Visible Absorptance
+
+Material,
+ Std Wood 6inch, !- Name
+ MediumSmooth, !- Roughness
+ 0.15, !- Thickness {m}
+ 0.12, !- Conductivity {W/m-K}
+ 540.0000, !- Density {kg/m3}
+ 1210, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.7000000, !- Solar Absorptance
+ 0.7000000; !- Visible Absorptance
+
+Material,
+ Pipe Insulation, !- Name
+ VeryRough, !- Roughness
+ 0.0127032520325203, !- Thickness {m}
+ 0.03317175, !- Conductivity {W/m-K}
+ 91.0, !- Density {kg/m3}
+ 836.0, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.5, !- Solar Absorptance
+ 0.5; !- Visible Absorptance
+
+
+!- =========== ALL OBJECTS IN CLASS: MATERIAL:NOMASS ===========
+
+Material:NoMass,
+ Manf_wall_airgap, !- Name
+ Smooth, !- Roughness
+ 0.12; !- Thermal Resistance {m2-K/W}
+
+Material:NoMass,
+ Bldg_paper_felt, !- Name
+ Smooth, !- Roughness
+ 1.05666113069662E-02; !- Thermal Resistance {m2-K/W}
+
+Material:NoMass,
+ R_high, !- Name
+ MediumRough, !- Roughness
+ 177; !- Thermal Resistance {m2-K/W}
+
+
+!- =========== ALL OBJECTS IN CLASS: MATERIAL:AIRGAP ===========
+
+Material:AirGap,
+ Air_4_in_vert, !- Name
+ 0.158499169604493; !- Thermal Resistance {m2-K/W}
+
+Material:AirGap,
+ 3/4in_air_space, !- Name
+ 0.08513; !- Thermal Resistance {m2-K/W}
+
+Material:AirGap,
+ 3/4in_Reflective_air_space, !- Name
+ 0.246554; !- Thermal Resistance {m2-K/W}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:SIMPLEGLAZINGSYSTEM ===========
+
+WindowMaterial:SimpleGlazingSystem,
+ Glass, !- Name
+ 1.70358, !- U-Factor {W/m2-K}
+ 0.3344, !- Solar Heat Gain Coefficient
+ 0.88; !- Visible Transmittance
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING ===========
+
+WindowMaterial:Glazing,
+ Clear Acrylic Plastic, !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.003, !- Thickness {m}
+ 0.92, !- Solar Transmittance at Normal Incidence
+ 0.05, !- Front Side Solar Reflectance at Normal Incidence
+ 0.05, !- Back Side Solar Reflectance at Normal Incidence
+ 0.92, !- Visible Transmittance at Normal Incidence
+ 0.05, !- Front Side Visible Reflectance at Normal Incidence
+ 0.05, !- Back Side Visible Reflectance at Normal Incidence
+ 0.00, !- Infrared Transmittance at Normal Incidence
+ 0.90, !- Front Side Infrared Hemispherical Emissivity
+ 0.90, !- Back Side Infrared Hemispherical Emissivity
+ 0.90; !- Conductivity {W/m-K}
+
+WindowMaterial:Glazing,
+ Diffusing Acrylic Plastic, !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.0022, !- Thickness {m}
+ 0.90, !- Solar Transmittance at Normal Incidence
+ 0.08, !- Front Side Solar Reflectance at Normal Incidence
+ 0.08, !- Back Side Solar Reflectance at Normal Incidence
+ 0.90, !- Visible Transmittance at Normal Incidence
+ 0.08, !- Front Side Visible Reflectance at Normal Incidence
+ 0.08, !- Back Side Visible Reflectance at Normal Incidence
+ 0.00, !- Infrared Transmittance at Normal Incidence
+ 0.90, !- Front Side Infrared Hemispherical Emissivity
+ 0.90, !- Back Side Infrared Hemispherical Emissivity
+ 0.90; !- Conductivity {W/m-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:BLIND ===========
+
+WindowMaterial:Blind,
+ int_blind, !- Name
+ Horizontal, !- Slat Orientation
+ 0.025, !- Slat Width {m}
+ 0.01875, !- Slat Separation {m}
+ 0.001, !- Slat Thickness {m}
+ 45.0, !- Slat Angle {deg}
+ 221, !- Slat Conductivity {W/m-K}
+ 0.0, !- Slat Beam Solar Transmittance
+ 0.5, !- Front Side Slat Beam Solar Reflectance
+ 0.5, !- Back Side Slat Beam Solar Reflectance
+ 0.0, !- Slat Diffuse Solar Transmittance
+ 0.5, !- Front Side Slat Diffuse Solar Reflectance
+ 0.5, !- Back Side Slat Diffuse Solar Reflectance
+ 0.0, !- Slat Beam Visible Transmittance
+ 0.5, !- Front Side Slat Beam Visible Reflectance
+ 0.5, !- Back Side Slat Beam Visible Reflectance
+ 0.0, !- Slat Diffuse Visible Transmittance
+ 0.5, !- Front Side Slat Diffuse Visible Reflectance
+ 0.5, !- Back Side Slat Diffuse Visible Reflectance
+ 0.0, !- Slat Infrared Hemispherical Transmittance
+ 0.9, !- Front Side Slat Infrared Hemispherical Emissivity
+ 0.9, !- Back Side Slat Infrared Hemispherical Emissivity
+ 0.050, !- Blind to Glass Distance {m}
+ 0.5, !- Blind Top Opening Multiplier
+ 0.5, !- Blind Bottom Opening Multiplier
+ 0.5, !- Blind Left Side Opening Multiplier
+ 0.5, !- Blind Right Side Opening Multiplier
+ , !- Minimum Slat Angle {deg}
+ ; !- Maximum Slat Angle {deg}
+
+
+!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION ===========
+
+Construction,
+ Exterior Wall, !- Name
+ syn_stucco, !- Outside Layer
+ sheathing_consol_layer, !- Layer 2
+ OSB_7/16in, !- Layer 3
+ wall_consol_layer, !- Layer 4
+ Drywall_1/2in; !- Layer 5
+
+Construction,
+ InteriorFurnishings, !- Name
+ Std Wood 6inch; !- Outside Layer
+
+Construction,
+ ceiling-floor-layer, !- Name
+ Lumber_2x4; !- Outside Layer
+
+Construction,
+ Exterior Floor, !- Name
+ floor_consol_layer, !- Outside Layer
+ Plywood_3/4in, !- Layer 2
+ Carpet_n_pad; !- Layer 3
+
+Construction,
+ Interior Floor, !- Name
+ Plywood_3/4in, !- Outside Layer
+ Carpet_n_pad; !- Layer 2
+
+Construction,
+ Interior Ceiling, !- Name
+ ceil_consol_layer, !- Outside Layer
+ Drywall_1/2in; !- Layer 2
+
+Construction,
+ attic floor, !- Name
+ Drywall_1/2in, !- Outside Layer
+ ceil_consol_layer; !- Layer 2
+
+Construction,
+ fndn_roof, !- Name
+ Carpet_n_pad, !- Outside Layer
+ Plywood_3/4in, !- Layer 2
+ ceil_consol_layer; !- Layer 3
+
+Construction,
+ interiorwall, !- Name
+ Drywall_1/2in, !- Outside Layer
+ OSB_5/8in, !- Layer 2
+ Drywall_1/2in; !- Layer 3
+
+Construction,
+ Interior Wall, !- Name
+ Drywall_1/2in, !- Outside Layer
+ Air_4_in_vert, !- Layer 2
+ Drywall_1/2in; !- Layer 3
+
+Construction,
+ Exterior Roof, !- Name
+ Asphalt_shingle, !- Outside Layer
+ OSB_1/2in; !- Layer 2
+
+Construction,
+ Exterior Window, !- Name
+ Glass; !- Outside Layer
+
+Construction,
+ Interior Window, !- Name
+ Glass; !- Outside Layer
+
+Construction,
+ Exterior Door, !- Name
+ door_const; !- Outside Layer
+
+Construction,
+ Interior Door, !- Name
+ door_const; !- Outside Layer
+
+Construction,
+ Gable_end, !- Name
+ cement_stucco, !- Outside Layer
+ Bldg_paper_felt, !- Layer 2
+ OSB_5/8in, !- Layer 3
+ Air_4_in_vert, !- Layer 4
+ Drywall_1/2in; !- Layer 5
+
+Construction,
+ crawl_floor, !- Name
+ R_high, !- Outside Layer
+ soil_12in; !- Layer 2
+
+Construction,
+ window_w_blinds, !- Name
+ Glass, !- Outside Layer
+ int_blind; !- Layer 2
+
+Construction,
+ Insulated Pipe, !- Name
+ Pipe Insulation, !- Outside Layer
+ CopperPipe; !- Layer 2
+
+Construction,
+ Plain Pipe, !- Name
+ CopperPipe; !- Outside Layer
+
+Construction,
+ TDD Pipe, !- Name
+ Very High Reflectivity Surface; !- Outside Layer
+
+Construction,
+ TDD Dome, !- Name
+ Clear Acrylic Plastic; !- Outside Layer
+
+Construction,
+ TDD Diffuser, !- Name
+ Diffusing Acrylic Plastic; !- Outside Layer
+
+
+!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES ===========
+
+GlobalGeometryRules,
+ LowerLeftCorner, !- Starting Vertex Position
+ Counterclockwise, !- Vertex Entry Direction
+ Relative; !- Coordinate System
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONE ===========
+
+Zone,
+ living_unit1, !- Name
+ 0.0, !- Direction of Relative North {deg}
+ 0.0, 0.0, 0.0, !- X,Y,Z {m}
+ , !- Type
+ 1; !- Multiplier
+
+Zone,
+ attic_unit1, !- Name
+ 0.0, !- Direction of Relative North {deg}
+ 0.0, 0.0, 0.0, !- X,Y,Z {m}
+ , !- Type
+ 1; !- Multiplier
+
+
+!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED ===========
+
+BuildingSurface:Detailed,
+ Inter zone floor 1, !- Name
+ Floor, !- Surface Type
+ Interior Floor, !- Construction Name
+ living_unit1, !- Zone Name
+ Adiabatic, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 2.60156341463415, !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ ceiling_unit1, !- Name
+ Ceiling, !- Surface Type
+ Interior Ceiling, !- Construction Name
+ living_unit1, !- Zone Name
+ Zone, !- Outside Boundary Condition
+ attic_unit1, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 5.19302682926829, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 0, 9.09981820971244, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Roof_front_unit1, !- Name
+ Roof, !- Surface Type
+ Exterior Roof, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 5.19302682926829, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 4.54990910485622, 6.6995631975537,
+ !- X,Y,Z 3 {m}
+ 0, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Roof_back_unit1, !- Name
+ Roof, !- Surface Type
+ Exterior Roof, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 0, 4.54990910485622, 6.6995631975537,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Roof_right_unit1, !- Name
+ Wall, !- Surface Type
+ Gable_end, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 3, !- Number of Vertices
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 1 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 3 {m}
+
+BuildingSurface:Detailed,
+ Roof_left_unit1, !- Name
+ Wall, !- Surface Type
+ Gable_end, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 3, !- Number of Vertices
+ 0, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 1 {m}
+ 0, 0, 5.19302682926829, !- X,Y,Z 2 {m}
+ 0, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 3 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldf_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 0.0101, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 0.0101, !- X,Y,Z 2 {m}
+ 12.1330909462833, 0, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 0, 0, 2.60156341463415; !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdr_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 0, 0.0101, !- X,Y,Z 1 {m}
+ 12.1330909462833, 9.09981820971244, 0.0101,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldb_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 9.09981820971244, 0.0101,
+ !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 0.0101, !- X,Y,Z 2 {m}
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdl_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 9.09981820971244, 0.0101, !- X,Y,Z 1 {m}
+ 0, 0, 0.0101, !- X,Y,Z 2 {m}
+ 0, 0, 2.60156341463415, !- X,Y,Z 3 {m}
+ 0, 9.09981820971244, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldf_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 2.60156341463415, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 0, 0, 5.19302682926829; !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdr_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 0, 2.60156341463415,
+ !- X,Y,Z 1 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldb_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 0, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdl_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 1 {m}
+ 0, 0, 2.60156341463415, !- X,Y,Z 2 {m}
+ 0, 0, 5.19302682926829, !- X,Y,Z 3 {m}
+ 0, 9.09981820971244, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Floor_unit1, !- Name
+ Floor, !- Surface Type
+ Interior Floor, !- Construction Name
+ living_unit1, !- Zone Name
+ GroundSlabPreprocessorAverage, !- Outside Boundary Condition
+ surfPropOthSdCoefSlabAverage, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 0.0101, !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 0.0101, !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 0.0101,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 0.0101; !- X,Y,Z 4 {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOW ===========
+
+Window,
+ Window_ldf_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldf_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_ldb_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldb_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 2.74190122145512, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdr_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdr_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdl_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdl_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_ldf_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldf_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_ldb_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldb_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 2.74190122145512, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdr_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdr_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdl_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdl_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: DOOR ===========
+
+Door,
+ Door_ldb_unit1, !- Name
+ Exterior Door, !- Construction Name
+ Wall_ldb_1.unit1, !- Building Surface Name
+ 1, !- Multiplier
+ 0.5, !- Starting X Coordinate {m}
+ 0, !- Starting Z Coordinate {m}
+ 1.74190122145513, !- Length {m}
+ 2.13414634146341; !- Height {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWSHADINGCONTROL ===========
+
+WindowShadingControl,
+ Shades-living_unit1, !- Name
+ living_unit1, !- Zone Name
+ 1, !- Shading Control Sequence Number
+ InteriorBlind, !- Shading Type
+ window_w_blinds, !- Construction with Shading Name
+ OnIfScheduleAllows, !- Shading Control Type
+ shading_2012iecc, !- Schedule Name
+ , !- Setpoint {W/m2, W or deg C}
+ Yes, !- Shading Control Is Scheduled
+ No, !- Glare Control Is Active
+ , !- Shading Device Material Name
+ , !- Type of Slat Angle Control for Blinds
+ , !- Slat Angle Schedule Name
+ , !- Setpoint 2 {W/m2 or deg C}
+ , !- Daylighting Control Object Name
+ Sequential, !- Multiple Surface Control Type
+ Window_ldf_1.unit1, !- Fenestration Surface 1 Name
+ Window_ldb_1.unit1, !- Fenestration Surface 2 Name
+ Window_sdr_1.unit1, !- Fenestration Surface 3 Name
+ Window_sdl_1.unit1, !- Fenestration Surface 4 Name
+ Window_ldf_2.unit1, !- Fenestration Surface 5 Name
+ Window_ldb_2.unit1, !- Fenestration Surface 6 Name
+ Window_sdr_2.unit1, !- Fenestration Surface 7 Name
+ Window_sdl_2.unit1; !- Fenestration Surface 8 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: INTERNALMASS ===========
+
+InternalMass,
+ Internalmass_unit1, !- Name
+ InteriorFurnishings, !- Construction Name
+ living_unit1, !- Zone or ZoneList Name
+ 9.89591078066915; !- Surface Area {m2}
+
+
+!- =========== ALL OBJECTS IN CLASS: SHADING:OVERHANG ===========
+
+Shading:Overhang,
+ Overhang_sdr_1.unit1, !- Name
+ Window_sdr_1.unit1, !- Window or Door Name
+ 0, !- Height above Window or Door {m}
+ 90, !- Tilt Angle from Window/Door {deg}
+ 0, !- Left extension from Window/Door Width {m}
+ 0, !- Right extension from Window/Door Width {m}
+ 0.0152439024390244; !- Depth {m}
+
+Shading:Overhang,
+ Overhang_sdr_2.unit1, !- Name
+ Window_sdr_2.unit1, !- Window or Door Name
+ 0, !- Height above Window or Door {m}
+ 90, !- Tilt Angle from Window/Door {deg}
+ 0, !- Left extension from Window/Door Width {m}
+ 0, !- Right extension from Window/Door Width {m}
+ 0.0152439024390244; !- Depth {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:CONTROL ===========
+
+GroundHeatTransfer:Control,
+ gtp_control, !- Name
+ no, !- Run Basement Preprocessor
+ yes; !- Run Slab Preprocessor
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:MATERIALS ===========
+
+GroundHeatTransfer:Slab:Materials,
+ 2, !- NMAT: Number of materials
+ 0.16, !- ALBEDO: Surface Albedo: No Snow
+ 0.4, !- ALBEDO: Surface Albedo: Snow
+ 0.9, !- EPSLW: Surface Emissivity: No Snow
+ 0.9, !- EPSLW: Surface Emissivity: Snow
+ 0.75, !- Z0: Surface Roughness: No Snow {cm}
+ 0.05, !- Z0: Surface Roughness: Snow {cm}
+ 6, !- HIN: Indoor HConv: Downward Flow {W/m2-K}
+ 9; !- HIN: Indoor HConv: Upward {W/m2-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:MATLPROPS ===========
+
+GroundHeatTransfer:Slab:MatlProps,
+ 2300, !- RHO: Slab Material density {kg/m3}
+ 1200, !- RHO: Soil Density {kg/m3}
+ 650, !- CP: Slab CP {J/kg-K}
+ 1200, !- CP: Soil CP {J/kg-K}
+ 0.9, !- TCON: Slab k {W/m-K}
+ 1; !- TCON: Soil k {W/m-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:BOUNDCONDS ===========
+
+GroundHeatTransfer:Slab:BoundConds,
+ FALSE, !- EVTR: Is surface evapotranspiration modeled
+ TRUE, !- FIXBC: is the lower boundary at a fixed temperature
+ 10, !- TDEEPin {C}
+ FALSE; !- USRHflag: Is the ground surface h specified by the user?
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:BLDGPROPS ===========
+
+GroundHeatTransfer:Slab:BldgProps,
+ 10, !- IYRS: Number of years to iterate
+ 0, !- Shape: Slab shape
+ 4, !- HBLDG: Building height {m}
+ 22.22, !- TIN1: January Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN2: February Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN3: March Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN4: April Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN5: May Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN6: June Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN7: July Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN8: August Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN9: September Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN10: October Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN11: November Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN12: December Indoor Average Temperature Setpoint {C}
+ 0, !- TINAmp: Daily Indoor sine wave variation amplitude {deltaC}
+ 0.1; !- ConvTol: Convergence Tolerance
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:INSULATION ===========
+
+GroundHeatTransfer:Slab:Insulation,
+ 0, !- RINS: R value of under slab insulation {m2-K/W}
+ 0, !- DINS: Width of strip of under slab insulation {m}
+ 1.76099742894375, !- RVINS: R value of vertical insulation {m2-K/W}
+ 0.6, !- ZVINS: Depth of vertical insulation {m}
+ 1; !- IVINS: Flag: Is there vertical insulation
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:EQUIVALENTSLAB ===========
+
+GroundHeatTransfer:Slab:EquivalentSlab,
+ 2.59994805991784, !- APRatio: The area to perimeter ratio for this slab {m}
+ 0.1, !- SLABDEPTH: Thickness of slab on grade {m}
+ 15, !- CLEARANCE: Distance from edge of slab to domain edge {m}
+ 15; !- ZCLEARANCE: Distance from bottom of slab to domain bottom {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:SIMPARAMETERS ===========
+
+GroundHeatTransfer:Basement:SimParameters,
+ 0.1, !- F: Multiplier for the ADI solution
+ 15; !- IYRS: Maximum number of yearly iterations:
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:MATLPROPS ===========
+
+GroundHeatTransfer:Basement:MatlProps,
+ 6, !- NMAT: Number of materials in this domain
+ 2243, !- Density for Foundation Wall {kg/m3}
+ 2243, !- density for Floor Slab {kg/m3}
+ 311, !- density for Ceiling {kg/m3}
+ 1500, !- density for Soil {kg/m3}
+ 2000, !- density for Gravel {kg/m3}
+ 449, !- density for Wood {kg/m3}
+ 880, !- Specific heat for foundation wall {J/kg-K}
+ 880, !- Specific heat for floor slab {J/kg-K}
+ 1530, !- Specific heat for ceiling {J/kg-K}
+ 840, !- Specific heat for soil {J/kg-K}
+ 720, !- Specific heat for gravel {J/kg-K}
+ 1530, !- Specific heat for wood {J/kg-K}
+ 1.4, !- Thermal conductivity for foundation wall {W/m-K}
+ 1.4, !- Thermal conductivity for floor slab {W/m-K}
+ 0.09, !- Thermal conductivity for ceiling {W/m-K}
+ 1.1, !- thermal conductivity for soil {W/m-K}
+ 1.9, !- thermal conductivity for gravel {W/m-K}
+ 0.12; !- thermal conductivity for wood {W/m-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:INSULATION ===========
+
+GroundHeatTransfer:Basement:Insulation,
+ 1.76099742894375e-05, !- REXT: R Value of any exterior insulation {m2-K/W}
+ True; !- INSFULL: Flag: Is the wall fully insulated?
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:SURFACEPROPS ===========
+
+GroundHeatTransfer:Basement:SurfaceProps,
+ 0.16, !- ALBEDO: Surface albedo for No snow conditions
+ 0.4, !- ALBEDO: Surface albedo for snow conditions
+ 0.94, !- EPSLN: Surface emissivity No Snow
+ 0.86, !- EPSLN: Surface emissivity with Snow
+ 6, !- VEGHT: Surface roughness No snow conditions {cm}
+ 0.25, !- VEGHT: Surface roughness Snow conditions {cm}
+ False; !- PET: Flag, Potential evapotranspiration on?
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:BLDGDATA ===========
+
+GroundHeatTransfer:Basement:BldgData,
+ 0.200000006162114, !- DWALL: Wall thickness {m}
+ 0.243828108701145, !- DSLAB: Floor slab thickness {m}
+ 0.3, !- DGRAVXY: Width of gravel pit beside basement wall {m}
+ 0.2, !- DGRAVZN: Gravel depth extending above the floor slab {m}
+ 0.1; !- DGRAVZP: Gravel depth below the floor slab {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:INTERIOR ===========
+
+GroundHeatTransfer:Basement:Interior,
+ True, !- COND: Flag: Is the basement conditioned?
+ 0.92, !- HIN: Downward convection only heat transfer coefficient {W/m2-K}
+ 4.04, !- HIN: Upward convection only heat transfer coefficient {W/m2-K}
+ 3.08, !- HIN: Horizontal convection only heat transfer coefficient {W/m2-K}
+ 6.13, !- HIN: Downward combined (convection and radiation) heat transfer coefficient {W/m2-K}
+ 9.26, !- HIN: Upward combined (convection and radiation) heat transfer coefficient {W/m2-K}
+ 8.29; !- HIN: Horizontal combined (convection and radiation) heat transfer coefficient {W/m2-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:COMBLDG ===========
+
+GroundHeatTransfer:Basement:ComBldg,
+ 21, !- January average temperature {C}
+ 21, !- February average temperature {C}
+ 21, !- March average temperature {C}
+ 21, !- April average temperature {C}
+ 24, !- May average temperature {C}
+ 24, !- June average temperature {C}
+ 24, !- July average temperature {C}
+ 24, !- August average temperature {C}
+ 24, !- September average temperature {C}
+ 24, !- October average temperature {C}
+ 21, !- November average temperature {C}
+ 21, !- December average temperature {C}
+ 21; !- Daily variation sine wave amplitude {deltaC}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:EQUIVSLAB ===========
+
+GroundHeatTransfer:Basement:EquivSlab,
+ 2.59994805991784, !- APRatio: The area to perimeter ratio for this slab {m}
+ True; !- EquivSizing: Flag
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:EQUIVAUTOGRID ===========
+
+GroundHeatTransfer:Basement:EquivAutoGrid,
+ 15, !- CLEARANCE: Distance from outside of wall to edge of 3-D ground domain {m}
+ 0.1, !- SlabDepth: Thickness of the floor slab {m}
+ 1.21914054350572; !- BaseDepth: Depth of the basement wall below grade {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: PEOPLE ===========
+
+People,
+ people_unit1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ Occupancy, !- Number of People Schedule Name
+ People, !- Number of People Calculation Method
+ 3, !- Number of People
+ , !- People per Zone Floor Area {person/m2}
+ , !- Zone Floor Area per Person {m2/person}
+ 0, !- Fraction Radiant
+ autocalculate, !- Sensible Heat Fraction
+ activity_sch, !- Activity Level Schedule Name
+ , !- Carbon Dioxide Generation Rate {m3/s-W}
+ No, !- Enable ASHRAE 55 Comfort Warnings
+ ZoneAveraged; !- Mean Radiant Temperature Calculation Type
+
+
+!- =========== ALL OBJECTS IN CLASS: LIGHTS ===========
+
+Lights,
+ Living Hardwired Lighting1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ InteriorLightingHE, !- Schedule Name
+ Watts/Area, !- Design Level Calculation Method
+ , !- Lighting Level {W}
+ 1.05216214401829, !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Return Air Fraction
+ 0.6, !- Fraction Radiant
+ 0.2, !- Fraction Visible
+ 0; !- Fraction Replaceable
+
+Lights,
+ Living Plug-in Lighting1,!- Name
+ living_unit1, !- Zone or ZoneList Name
+ InteriorLightingHE, !- Schedule Name
+ Watts/Area, !- Design Level Calculation Method
+ , !- Lighting Level {W}
+ 0.478467682251396, !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Return Air Fraction
+ 0.6, !- Fraction Radiant
+ 0.2, !- Fraction Visible
+ 0; !- Fraction Replaceable
+
+
+!- =========== ALL OBJECTS IN CLASS: ELECTRICEQUIPMENT ===========
+
+ElectricEquipment,
+ dishwasher1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ DishWasher, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 65.698787492023, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.15, !- Fraction Latent
+ 0.6, !- Fraction Radiant
+ 0.25, !- Fraction Lost
+ dishwasher; !- End-Use Subcategory
+
+ElectricEquipment,
+ refrigerator1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ Refrigerator, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 91.0575745202123, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Fraction Latent
+ 1, !- Fraction Radiant
+ 0, !- Fraction Lost
+ refrigerator; !- End-Use Subcategory
+
+ElectricEquipment,
+ clotheswasher1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ ClothesWasher, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 28.4784377542718, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Fraction Latent
+ 0.8, !- Fraction Radiant
+ 0.2, !- Fraction Lost
+ clotheswasher; !- End-Use Subcategory
+
+ElectricEquipment,
+ electric_dryer1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ ClothesDryer, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 213.064557285022, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.05, !- Fraction Latent
+ 0.15, !- Fraction Radiant
+ 0.8, !- Fraction Lost
+ electric_dryer; !- End-Use Subcategory
+
+ElectricEquipment,
+ electric_range1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ CookingRange, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 248.154224774405, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.3, !- Fraction Latent
+ 0.4, !- Fraction Radiant
+ 0.3, !- Fraction Lost
+ electric_range; !- End-Use Subcategory
+
+ElectricEquipment,
+ television1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ InteriorLighting, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 0, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Fraction Latent
+ 1, !- Fraction Radiant
+ 0, !- Fraction Lost
+ television; !- End-Use Subcategory
+
+ElectricEquipment,
+ electric_mels1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ MiscPlugLoad, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 567.464237516869, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.06, !- Fraction Latent
+ 0.69, !- Fraction Radiant
+ 0.25, !- Fraction Lost
+ electric_mels; !- End-Use Subcategory
+
+ElectricEquipment,
+ IECC_Adj1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ MiscPlugLoad, !- Schedule Name
+ Watts/Area, !- Design Level Calculation Method
+ , !- Design Level {W}
+ 1.54356736989469, !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0624390461422629, !- Fraction Latent
+ 0.41190936353998, !- Fraction Radiant
+ 0.251045347957769, !- Fraction Lost
+ IECC_adj; !- End-Use Subcategory
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEVENTILATION:DESIGNFLOWRATE ===========
+
+ZoneVentilation:DesignFlowRate,
+ Ventilation_unit1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ always_avail, !- Schedule Name
+ Flow/Zone, !- Design Flow Rate Calculation Method
+ 0, !- Design Flow Rate {m3/s}
+ , !- Flow Rate per Zone Floor Area {m3/s-m2}
+ , !- Flow Rate per Person {m3/s-person}
+ , !- Air Changes per Hour {1/hr}
+ Exhaust, !- Ventilation Type
+ 0, !- Fan Pressure Rise {Pa}
+ 0.6, !- Fan Total Efficiency
+ 1, !- Constant Term Coefficient
+ 0, !- Temperature Term Coefficient
+ 0, !- Velocity Term Coefficient
+ 0, !- Velocity Squared Term Coefficient
+ -100, !- Minimum Indoor Temperature {C}
+ , !- Minimum Indoor Temperature Schedule Name
+ 100, !- Maximum Indoor Temperature {C}
+ , !- Maximum Indoor Temperature Schedule Name
+ -100, !- Delta Temperature {deltaC}
+ , !- Delta Temperature Schedule Name
+ -100, !- Minimum Outdoor Temperature {C}
+ , !- Minimum Outdoor Temperature Schedule Name
+ 100, !- Maximum Outdoor Temperature {C}
+ , !- Maximum Outdoor Temperature Schedule Name
+ 40; !- Maximum Wind Speed {m/s}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:SIMULATIONCONTROL ===========
+
+AirflowNetwork:SimulationControl,
+ House AirflowNetwork, !- Name
+ MultizoneWithDistribution, !- AirflowNetwork Control
+ SurfaceAverageCalculation, !- Wind Pressure Coefficient Type
+ , !- Height Selection for Local Wind Pressure Calculation
+ LOWRISE, !- Building Type
+ 500, !- Maximum Number of Iterations {dimensionless}
+ , !- Initialization Type
+ 0.001, !- Relative Airflow Convergence Tolerance {dimensionless}
+ 0.00001, !- Absolute Airflow Convergence Tolerance {kg/s}
+ 0, !- Convergence Acceleration Limit {dimensionless}
+ 0, !- Azimuth Angle of Long Axis of Building {deg}
+ 0.75, !- Ratio of Building Width Along Short Axis to Width Along Long Axis
+ ,
+ ,
+ Yes;
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:ZONE ===========
+
+AirflowNetwork:MultiZone:Zone,
+ living_unit1, !- Zone Name
+ NoVent, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ 0, !- Minimum Venting Open Factor {dimensionless}
+ 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+
+AirflowNetwork:MultiZone:Zone,
+ attic_unit1, !- Zone Name
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:SURFACE ===========
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_front_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ 0, !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_back_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_right_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_left_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ ceiling_unit1, !- Surface Name
+ ZoneLeak_Ceiling, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldf_1.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldb_1.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdl_1.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdr_1.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldf_2.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldb_2.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdr_2.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdl_2.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdr_2.unit1, !- Surface Name
+ Zone Exhaust Fan_unit1, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant; !- Ventilation Control Mode
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:SURFACE:EFFECTIVELEAKAGEAREA ===========
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_LongWall, !- Name
+ 0.00340012477060435, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_ShortWall, !- Name
+ 0.00255009357795326, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_Ceiling, !- Name
+ 0.011939399618037, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_Floor, !- Name
+ 0.00001, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ AtticVent, !- Name
+ 0.37, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ CrawlVent, !- Name
+ 0.37, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:COMPONENT:ZONEEXHAUSTFAN ===========
+
+AirflowNetwork:MultiZone:Component:ZoneExhaustFan,
+ Zone Exhaust Fan_unit1, !- Name
+ 0.01, !- Air Mass Flow Coefficient When the Zone Exhaust Fan is Off at Reference Conditions {kg/s}
+ 0.667; !- Air Mass Flow Exponent When the Zone Exhaust Fan is Off {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:NODE ===========
+
+AirflowNetwork:Distribution:Node,
+ EquipmentInletNode_unit1,!- Name
+ Zone Equipment Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ SplitterNode_unit1, !- Name
+ , !- Component Name or Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneSupplyNode_unit1, !- Name
+ , !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneSupplyRegisterNode_unit1 ATInlet, !- Name
+ Zone Inlet Node_unit1 ATInlet, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneSupplyRegisterNode_unit1, !- Name
+ Zone Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneOutletNode_unit1, !- Name
+ Zone Outlet node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneReturnNode_unit1, !- Name
+ , !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ MixerNode_unit1, !- Name
+ , !- Component Name or Node Name
+ AirLoopHVAC:ZoneMixer, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ MainReturnNode_unit1, !- Name
+ Return Air Mixer Outlet_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ MainInletNode_unit1, !- Name
+ Air Loop Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ FanOutletNode_unit1, !- Name
+ Cooling Coil Air Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ HeatingInletNode_unit1, !- Name
+ Heating Coil Air Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ HeatingOutletNode_unit1, !- Name
+ Air Loop Outlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ SuppHeatingInletNode_unit1, !- Name
+ Supp Heating coil air inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:LEAKAGERATIO ===========
+
+AirflowNetwork:Distribution:Component:LeakageRatio,
+ SupplyLeak, !- Name
+ 0.0396, !- Effective Leakage Ratio {dimensionless}
+ 0.56034, !- Maximum Flow Rate {m3/s}
+ 25, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:Distribution:Component:LeakageRatio,
+ ReturnLeak, !- Name
+ 0.0396, !- Effective Leakage Ratio {dimensionless}
+ 0.56034, !- Maximum Flow Rate {m3/s}
+ 25, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:DUCT ===========
+
+AirflowNetwork:Distribution:Component:Duct,
+ MainTrunk_unit1, !- Name
+ 2.0, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 0.01, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneSupply_unit1, !- Name
+ 15, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 10, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneSupplyLink2_unit1 ATInlet Duct, !- Name
+ 0.0001, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 0, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneReturn_unit1, !- Name
+ 8.0, !- Duct Length {m}
+ 0.529430338938287, !- Hydraulic Diameter {m}
+ 0.220172888015717, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 9, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneConnectionDuct_unit1,!- Name
+ 0.1, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0001, !- Surface Roughness {m}
+ 0.00, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ MainReturn_unit1, !- Name
+ 1.0, !- Duct Length {m}
+ 0.529430338938287, !- Hydraulic Diameter {m}
+ 0.220172888015717, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 0.01, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ AirLoopReturn_unit1, !- Name
+ 0.1, !- Duct Length {m}
+ 0.529430338938287, !- Hydraulic Diameter {m}
+ 0.220172888015717, !- Cross Section Area {m2}
+ 0.0001, !- Surface Roughness {m}
+ 0.00, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ AirLoopSupply_unit1, !- Name
+ 0.1, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0001, !- Surface Roughness {m}
+ 0.00, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:FAN ===========
+
+AirflowNetwork:Distribution:Component:Fan,
+ Supply Fan_unit1, !- Fan Name
+ Fan:OnOff; !- Supply Fan Object Type
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:COIL ===========
+
+AirflowNetwork:Distribution:Component:Coil,
+ DX Cooling Coil_unit1, !- Coil Name
+ Coil:Cooling:DX:SingleSpeed, !- Coil Object Type
+ 0.1, !- Air Path Length {m}
+ 1.000; !- Air Path Hydraulic Diameter {m}
+
+AirflowNetwork:Distribution:Component:Coil,
+ Main DX Heating Coil_unit1, !- Coil Name
+ Coil:Heating:DX:Singlespeed, !- Coil Object Type
+ 0.1, !- Air Path Length {m}
+ 1.000; !- Air Path Hydraulic Diameter {m}
+
+AirflowNetwork:Distribution:Component:Coil,
+ Supp Heating Coil_unit1, !- Coil Name
+ Coil:Heating:Electric, !- Coil Object Type
+ 0.1, !- Air Path Length {m}
+ 1.000; !- Air Path Hydraulic Diameter {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:LINKAGE ===========
+
+AirflowNetwork:Distribution:Linkage,
+ MainSupplyLink_unit1, !- Name
+ EquipmentInletNode_unit1,!- Node 1 Name
+ SplitterNode_unit1, !- Node 2 Name
+ MainTrunk_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLink_unit1, !- Name
+ SplitterNode_unit1, !- Node 1 Name
+ ZoneSupplyNode_unit1, !- Node 2 Name
+ ZoneSupply_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLink2_unit1 ATInlet, !- Name
+ ZoneSupplyRegisterNode_unit1 ATInlet, !- Node 1 Name
+ ZoneSupplyRegisterNode_unit1, !- Node 2 Name
+ ZoneSupplyLink2_unit1 ATInlet Duct, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLink2_unit1, !- Name
+ ZoneSupplyNode_unit1, !- Node 1 Name
+ ZoneSupplyRegisterNode_unit1 ATInlet, !- Node 2 Name
+ ZoneSupply_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyConnectionLink_unit1, !- Name
+ ZoneSupplyRegisterNode_unit1, !- Node 1 Name
+ living_unit1, !- Node 2 Name
+ ZoneConnectionDuct_unit1;!- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnConnectionLink_unit1, !- Name
+ living_unit1, !- Node 1 Name
+ ZoneOutletNode_unit1, !- Node 2 Name
+ ZoneConnectionDuct_unit1;!- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnLink1_unit1, !- Name
+ Zoneoutletnode_unit1, !- Node 1 Name
+ ZoneReturnNode_unit1, !- Node 2 Name
+ ZoneReturn_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnLink2_unit1, !- Name
+ ZoneReturnNode_unit1, !- Node 1 Name
+ MixerNode_unit1, !- Node 2 Name
+ ZoneReturn_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ MainReturnLink_unit1, !- Name
+ MixerNode_unit1, !- Node 1 Name
+ MainReturnNode_unit1, !- Node 2 Name
+ MainReturn_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ SystemReturnLink_unit1, !- Name
+ MainReturnNode_unit1, !- Node 1 Name
+ MainInletNode_unit1, !- Node 2 Name
+ AirLoopReturn_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ SupplyFanLink_unit1, !- Name
+ MainInletNode_unit1, !- Node 1 Name
+ FanOutletNode_unit1, !- Node 2 Name
+ Supply Fan_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ CoolingCoilLink_unit1, !- Name
+ FanOutletNode_unit1, !- Node 1 Name
+ HeatingInletNode_unit1, !- Node 2 Name
+ DX Cooling Coil_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ EquipmentAirLoopLink_unit1, !- Name
+ HeatingOutletNode_unit1, !- Node 1 Name
+ EquipmentInletNode_unit1,!- Node 2 Name
+ AirLoopSupply_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ HeatingCoilLink_unit1, !- Name
+ HeatingInletNode_unit1, !- Node 1 Name
+ SuppHeatingInletNode_unit1, !- Node 2 Name
+ Main DX Heating Coil_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ SuppHeatingCoilLink_unit1, !- Name
+ SuppHeatingInletNode_unit1, !- Node 1 Name
+ HeatingOutletNode_unit1, !- Node 2 Name
+ Supp Heating Coil_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLeakLink_unit1,!- Name
+ ZoneSupplyNode_unit1, !- Node 1 Name
+ attic_unit1, !- Node 2 Name
+ SupplyLeak; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnLeakLink_unit1,!- Name
+ attic_unit1, !- Node 1 Name
+ ZoneReturnNode_unit1, !- Node 2 Name
+ ReturnLeak; !- Component Name
+
+
+!- =========== ALL OBJECTS IN CLASS: EXTERIOR:LIGHTS ===========
+
+Exterior:Lights,
+ Exterior-Lights_unit1, !- Name
+ ExteriorLighting, !- Schedule Name
+ 43.2424607481559, !- Design Level {W}
+ , !- Control Option
+ Exterior-Lights; !- End-Use Subcategory
+
+Exterior:Lights,
+ Garage-Lights_unit1, !- Name
+ InteriorLightingHE, !- Schedule Name
+ 7.16294617434682, !- Design Level {W}
+ , !- Control Option
+ Garage-Lights; !- End-Use Subcategory
+
+
+!- =========== ALL OBJECTS IN CLASS: DESIGNSPECIFICATION:OUTDOORAIR ===========
+
+DesignSpecification:OutdoorAir,
+ SZ_DSOA_living_unit1, !- Name
+ Flow/Zone, !- Outdoor Air Method
+ 0, !- Outdoor Air Flow per Person {m3/s-person}
+ , !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}
+ 0.0283168464628752; !- Outdoor Air Flow per Zone {m3/s}
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZING:ZONE ===========
+
+Sizing:Zone,
+ living_unit1, !- Zone or ZoneList Name
+ SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method
+ 12, !- Zone Cooling Design Supply Air Temperature {C}
+ , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}
+ SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method
+ 50, !- Zone Heating Design Supply Air Temperature {C}
+ , !- Zone Heating Design Supply Air Temperature Difference {deltaC}
+ 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ SZ_DSOA_living_unit1, !- Design Specification Outdoor Air Object Name
+ , !- Zone Heating Sizing Factor
+ , !- Zone Cooling Sizing Factor
+ DesignDay, !- Cooling Design Air Flow Method
+ , !- Cooling Design Air Flow Rate {m3/s}
+ 0.000762, !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}
+ , !- Cooling Minimum Air Flow {m3/s}
+ , !- Cooling Minimum Air Flow Fraction
+ DesignDay, !- Heating Design Air Flow Method
+ , !- Heating Design Air Flow Rate {m3/s}
+ 0.002032, !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}
+ 0.1415762, !- Heating Maximum Air Flow {m3/s}
+ 0.3, !- Heating Maximum Air Flow Fraction
+ , !- Design Specification Zone Air Distribution Object Name
+ , !- Account for Dedicated Outdoor Air System
+ , !- Dedicated Outdoor Air System Control Strategy
+ , !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}
+ ; !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZING:SYSTEM ===========
+
+Sizing:System,
+ Central System_unit1, !- AirLoop Name
+ Sensible, !- Type of Load to Size On
+ autosize, !- Design Outdoor Air Flow Rate {m3/s}
+ 1, !- Central Heating Maximum System Air Flow Ratio
+ 7, !- Preheat Design Temperature {C}
+ 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir}
+ 11, !- Precool Design Temperature {C}
+ 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir}
+ 12, !- Central Cooling Design Supply Air Temperature {C}
+ 50, !- Central Heating Design Supply Air Temperature {C}
+ NonCoincident, !- Type of Zone Sum to Use
+ No, !- 100% Outdoor Air in Cooling
+ No, !- 100% Outdoor Air in Heating
+ 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ DesignDay, !- Cooling Supply Air Flow Rate Method
+ , !- Cooling Supply Air Flow Rate {m3/s}
+ , !- Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Cooling Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}
+ DesignDay, !- Heating Supply Air Flow Rate Method
+ , !- Heating Supply Air Flow Rate {m3/s}
+ , !- Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Heating Fraction of Autosized Heating Supply Air Flow Rate
+ , !- Heating Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}
+ , !- System Outdoor Air Method
+ 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless}
+ CoolingDesignCapacity, !- Cooling Design Capacity Method
+ autosize, !- Cooling Design Capacity {W}
+ , !- Cooling Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Cooling Design Capacity
+ HeatingDesignCapacity, !- Heating Design Capacity Method
+ autosize, !- Heating Design Capacity {W}
+ , !- Heating Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Heating Design Capacity
+ OnOff; !- Central Cooling Capacity Control Method
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZING:PLANT ===========
+
+Sizing:Plant,
+ DHW Loop_unit1, !- Plant or Condenser Loop Name
+ Heating, !- Loop Type
+ 48.8888888888889, !- Design Loop Exit Temperature {C}
+ 5.55555555555556; !- Loop Design Temperature Difference {deltaC}
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONECONTROL:THERMOSTAT ===========
+
+ZoneControl:Thermostat,
+ Zone Thermostat_unit1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ zone_control_type, !- Control Type Schedule Name
+ ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type
+ thermostat_living Dual SP Control; !- Control 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: THERMOSTATSETPOINT:DUALSETPOINT ===========
+
+ThermostatSetpoint:DualSetpoint,
+ thermostat_living Dual SP Control, !- Name
+ heating_sch, !- Heating Setpoint Temperature Schedule Name
+ cooling_sch; !- Cooling Setpoint Temperature Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:ENERGYRECOVERYVENTILATOR ===========
+
+ZoneHVAC:EnergyRecoveryVentilator,
+ ERV_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ OA_Heat_Recovery_Unit1, !- Heat Exchanger Name
+ 0.0283168464628752, !- Supply Air Flow Rate {m3/s}
+ 0.0283168464628752, !- Exhaust Air Flow Rate {m3/s}
+ OASupplyFan_unit1, !- Supply Air Fan Name
+ OAExhaustFan_unit1; !- Exhaust Air Fan Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRTERMINAL:SINGLEDUCT:CONSTANTVOLUME:NOREHEAT ===========
+
+AirTerminal:SingleDuct:ConstantVolume:NoReheat,
+ ZoneDirectAir_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ Zone Inlet Node_unit1 ATInlet, !- Air Inlet Node Name
+ Zone Inlet Node_unit1, !- Air Outlet Node Name
+ autosize; !- Maximum Air Flow Rate {m3/s}
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:AIRDISTRIBUTIONUNIT ===========
+
+ZoneHVAC:AirDistributionUnit,
+ ZoneDirectAir_unit1 ADU, !- Name
+ Zone Inlet Node_unit1, !- Air Distribution Unit Outlet Node Name
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type
+ ZoneDirectAir_unit1; !- Air Terminal Name
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:EQUIPMENTLIST ===========
+
+ZoneHVAC:EquipmentList,
+ ZoneEquipment_unit1, !- Name
+ SequentialLoad, !- Load Distribution Scheme
+ ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
+ ZoneDirectAir_unit1 ADU, !- Zone Equipment 1 Name
+ 3, !- Zone Equipment 1 Cooling Sequence
+ 3, !- Zone Equipment 1 Heating or No-Load Sequence
+ , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
+ , !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
+ WaterHeater:HeatPump:WrappedCondenser, !- Zone Equipment 2 Object Type
+ Water Heater_unit1, !- Zone Equipment 2 Name
+ 1, !- Zone Equipment 2 Cooling Sequence
+ 1, !- Zone Equipment 2 Heating or No-Load Sequence
+ , !- Zone Equipment 2 Sequential Cooling Fraction Schedule Name
+ , !- Zone Equipment 2 Sequential Heating Fraction Schedule Name
+ Fan:ZoneExhaust, !- Zone Equipment 3 Object Type
+ Zone Exhaust Fan_unit1, !- Zone Equipment 3 Name
+ 4, !- Zone Equipment 3 Cooling Sequence
+ 4, !- Zone Equipment 3 Heating or No-Load Sequence
+ , !- Zone Equipment 3 Sequential Cooling Fraction Schedule Name
+ , !- Zone Equipment 3 Sequential Heating Fraction Schedule Name
+ ZoneHVAC:EnergyRecoveryVentilator, !- Zone Equipment 4 Object Type
+ ERV_unit1, !- Zone Equipment 4 Name
+ 2, !- Zone Equipment 4 Cooling Sequence
+ 2; !- Zone Equipment 4 Heating or No-Load Sequence
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:EQUIPMENTCONNECTIONS ===========
+
+ZoneHVAC:EquipmentConnections,
+ living_unit1, !- Zone Name
+ ZoneEquipment_unit1, !- Zone Conditioning Equipment List Name
+ zone inlet nodes_unit1, !- Zone Air Inlet Node or NodeList Name
+ Zone Exhaust Node_list_unit1, !- Zone Air Exhaust Node or NodeList Name
+ Zone Node_unit1, !- Zone Air Node Name
+ Zone Outlet Node_unit1; !- Zone Return Air Node or NodeList Name
+
+
+!- =========== ALL OBJECTS IN CLASS: FAN:ONOFF ===========
+
+Fan:OnOff,
+ Supply Fan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.50054, !- Fan Total Efficiency
+ 400, !- Pressure Rise {Pa}
+ autosize, !- Maximum Flow Rate {m3/s}
+ 0.863, !- Motor Efficiency
+ 1, !- Motor In Airstream Fraction
+ air loop inlet node_unit1, !- Air Inlet Node Name
+ cooling coil air inlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ General; !- End-Use Subcategory
+
+Fan:OnOff,
+ OASupplyFan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.6, !- Fan Total Efficiency
+ 454.045717061016, !- Pressure Rise {Pa}
+ 0.0283168464628752, !- Maximum Flow Rate {m3/s}
+ 1, !- Motor Efficiency
+ 0, !- Motor In Airstream Fraction
+ OA fan inlet node_unit1, !- Air Inlet Node Name
+ OA inlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ Ventilation; !- End-Use Subcategory
+
+Fan:OnOff,
+ OAExhaustFan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.6, !- Fan Total Efficiency
+ 454.045717061016, !- Pressure Rise {Pa}
+ 0.0283168464628752, !- Maximum Flow Rate {m3/s}
+ 1, !- Motor Efficiency
+ 0, !- Motor In Airstream Fraction
+ ERVexhaustnode_unit1, !- Air Inlet Node Name
+ exhaust outlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ Ventilation; !- End-Use Subcategory
+
+Fan:OnOff,
+ Heat Pump Water Heater Fan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.7, !- Fan Total Efficiency
+ 100.0, !- Pressure Rise {Pa}
+ autosize, !- Maximum Flow Rate {m3/s}
+ 0.9, !- Motor Efficiency
+ 1.0, !- Motor In Airstream Fraction
+ Heat Pump Water Heater Fan Inlet Node_unit1, !- Air Inlet Node Name
+ HPWH zone inlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ General; !- End-Use Subcategory
+
+
+!- =========== ALL OBJECTS IN CLASS: FAN:ZONEEXHAUST ===========
+
+Fan:ZoneExhaust,
+ Zone Exhaust Fan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.6, !- Fan Total Efficiency
+ 0.00001, !- Pressure Rise {Pa}
+ 0.000001, !- Maximum Flow Rate {m3/s}
+ Zone Exhaust Node_unit1, !- Air Inlet Node Name
+ zone exhaust fan outlet nodes_unit1, !- Air Outlet Node Name
+ Ventilation, !- End-Use Subcategory
+ , !- Flow Fraction Schedule Name
+ Decoupled; !- System Availability Manager Coupling Mode
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:COOLING:DX:SINGLESPEED ===========
+
+Coil:Cooling:DX:SingleSpeed,
+ DX Cooling Coil_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ autosize, !- Gross Rated Total Cooling Capacity {W}
+ autosize, !- Gross Rated Sensible Heat Ratio
+ 4.06853019625951, !- Gross Rated Cooling COP {W/W}
+ autosize, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
+ Cooling Coil Air Inlet Node_unit1, !- Air Inlet Node Name
+ Heating Coil Air Inlet Node_unit1, !- Air Outlet Node Name
+ HPACCoolCapFT, !- Total Cooling Capacity Function of Temperature Curve Name
+ HPACCoolCapFFF, !- Total Cooling Capacity Function of Flow Fraction Curve Name
+ HPACCOOLEIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ HPACCOOLEIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ HPACCOOLPLFFPLR; !- Part Load Fraction Correlation Curve Name
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:HEATING:ELECTRIC ===========
+
+Coil:Heating:Electric,
+ Supp Heating Coil_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 1, !- Efficiency
+ autosize, !- Nominal Capacity {W}
+ Supp Heating Coil Air Inlet Node_unit1, !- Air Inlet Node Name
+ Air Loop Outlet Node_unit1; !- Air Outlet Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:HEATING:DX:SINGLESPEED ===========
+
+Coil:Heating:DX:SingleSpeed,
+ Main DX Heating Coil_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ autosize, !- Gross Rated Heating Capacity {W}
+ 3.69308080013886, !- Gross Rated Heating COP {W/W}
+ autosize, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Supply Fan Power Per Volume Flow Rate {W/(m3/s)}
+ Heating Coil Air Inlet Node_unit1, !- Air Inlet Node Name
+ Supp Heating Coil Air Inlet Node_unit1, !- Air Outlet Node Name
+ HPACHeatCapFT, !- Heating Capacity Function of Temperature Curve Name
+ HPACHeatCapFFF, !- Heating Capacity Function of Flow Fraction Curve Name
+ HPACHeatEIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ HPACHeatEIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name
+ Defrost_EIR_FT, !- Defrost Energy Input Ratio Function of Temperature Curve Name
+ -17.78, !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}
+ , !- Outdoor Dry-Bulb Temperature to Turn On Compressor {C}
+ 5.0, !- Maximum Outdoor Dry-Bulb Temperature for Defrost Operation {C}
+ 200.0, !- Crankcase Heater Capacity {W}
+ 10.0, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation {C}
+ ReverseCycle, !- Defrost Strategy
+ OnDemand; !- Defrost Control
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:WATERHEATING:AIRTOWATERHEATPUMP:WRAPPED ===========
+
+Coil:WaterHeating:AirToWaterHeatPump:Wrapped,
+ Heat Pump Water Heater Evaporator_unit1, !- Name
+ 1500, !- Rated Heating Capacity {W}
+ 3.0, !- Rated COP {W/W}
+ 0.981, !- Rated Sensible Heat Ratio
+ 19.7, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C}
+ 13.5, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C}
+ 48.89, !- Rated Condenser Water Temperature {C}
+ 0.189, !- Rated Evaporator Air Flow Rate {m3/s}
+ yes, !- Evaporator Fan Power Included in Rated COP
+ Zone Exhaust Node1_unit1,!- Evaporator Air Inlet Node Name
+ Heat Pump Water Heater Fan Inlet Node_unit1, !- Evaporator Air Outlet Node Name
+ , !- Crankcase Heater Capacity {W}
+ 10, !- Maximum Ambient Temperature for Crankcase Heater Operation {C}
+ WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects
+ HPWH-Htg-Cap-fT, !- Heating Capacity Function of Temperature Curve Name
+ , !- Heating Capacity Function of Air Flow Fraction Curve Name
+ HPWH-Htg-COP-fT, !- Heating COP Function of Temperature Curve Name
+ , !- Heating COP Function of Air Flow Fraction Curve Name
+ HPWH-COP-fPLR; !- Part Load Fraction Correlation Curve Name
+
+
+!- =========== ALL OBJECTS IN CLASS: HEATEXCHANGER:AIRTOAIR:SENSIBLEANDLATENT ===========
+
+HeatExchanger:AirToAir:SensibleAndLatent,
+ OA_Heat_Recovery_Unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.0283168464628752, !- Nominal Supply Air Flow Rate {m3/s}
+ 0.65, !- Sensible Effectiveness at 100% Heating Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 100% Heating Air Flow {dimensionless}
+ 0.65, !- Sensible Effectiveness at 75% Heating Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 75% Heating Air Flow {dimensionless}
+ 0.65, !- Sensible Effectiveness at 100% Cooling Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 100% Cooling Air Flow {dimensionless}
+ 0.65, !- Sensible Effectiveness at 75% Cooling Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 75% Cooling Air Flow {dimensionless}
+ outdoor air node_unit1, !- Supply Air Inlet Node Name
+ OA fan inlet node_unit1, !- Supply Air Outlet Node Name
+ Zone Exhaust Node_unit1, !- Exhaust Air Inlet Node Name
+ ERVexhaustnode_unit1, !- Exhaust Air Outlet Node Name
+ 0, !- Nominal Electric Power {W}
+ No, !- Supply Air Outlet Temperature Control
+ Plate, !- Heat Exchanger Type
+ None, !- Frost Control Type
+ -16.8333337792644, !- Threshold Temperature {C}
+ 0.083, !- Initial Defrost Time Fraction {dimensionless}
+ 2.15999989700318E-02, !- Rate of Defrost Time Fraction Increase {1/K}
+ No; !- Economizer Lockout
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:UNITARYHEATPUMP:AIRTOAIR ===========
+
+AirLoopHVAC:UnitaryHeatPump:AirToAir,
+ Heat Pump_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ Air Loop Inlet node_unit1, !- Air Inlet Node Name
+ Air Loop Outlet Node_unit1, !- Air Outlet Node Name
+ autosize, !- Cooling Supply Air Flow Rate {m3/s}
+ autosize, !- Heating Supply Air Flow Rate {m3/s}
+ 0.0, !- No Load Supply Air Flow Rate {m3/s}
+ living_unit1, !- Controlling Zone or Thermostat Location
+ Fan:OnOff, !- Supply Air Fan Object Type
+ Supply Fan_unit1, !- Supply Air Fan Name
+ Coil:Heating:DX:SingleSpeed, !- Heating Coil Object Type
+ Main DX Heating Coil_unit1, !- Heating Coil Name
+ Coil:Cooling:DX:SingleSpeed, !- Cooling Coil Object Type
+ DX Cooling Coil_unit1, !- Cooling Coil Name
+ Coil:Heating:Electric, !- Supplemental Heating Coil Object Type
+ Supp Heating Coil_unit1, !- Supplemental Heating Coil Name
+ 50, !- Maximum Supply Air Temperature from Supplemental Heater {C}
+ 10, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C}
+ BlowThrough, !- Fan Placement
+ fan_cycle; !- Supply Air Fan Operating Mode Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC ===========
+
+AirLoopHVAC,
+ Central System_unit1, !- Name
+ , !- Controller List Name
+ availability list, !- Availability Manager List Name
+ autosize, !- Design Supply Air Flow Rate {m3/s}
+ Air Loop Branches_unit1, !- Branch List Name
+ , !- Connector List Name
+ Air Loop Inlet Node_unit1, !- Supply Side Inlet Node Name
+ Return Air Mixer Outlet_unit1, !- Demand Side Outlet Node Name
+ Zone Equipment Inlet Node_unit1, !- Demand Side Inlet Node Names
+ Air Loop Outlet Node_unit1; !- Supply Side Outlet Node Names
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:ZONESPLITTER ===========
+
+AirLoopHVAC:ZoneSplitter,
+ Zone Supply Air Splitter_unit1, !- Name
+ Zone Equipment Inlet Node_unit1, !- Inlet Node Name
+ Zone Inlet Node_unit1 ATInlet; !- Outlet 1 Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:SUPPLYPATH ===========
+
+AirLoopHVAC:SupplyPath,
+ SupplyPath_unit1, !- Name
+ Zone Equipment Inlet Node_unit1, !- Supply Air Path Inlet Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
+ Zone Supply Air Splitter_unit1; !- Component 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:ZONEMIXER ===========
+
+AirLoopHVAC:ZoneMixer,
+ Zone Return Air Mixer_unit1, !- Name
+ Return Air Mixer Outlet_unit1, !- Outlet Node Name
+ Zone Outlet Node_unit1; !- Inlet 1 Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:RETURNPATH ===========
+
+AirLoopHVAC:ReturnPath,
+ ReturnPath_unit1, !- Name
+ Return Air Mixer Outlet_unit1, !- Return Air Path Outlet Node Name
+ AirLoopHVAC:ZoneMixer, !- Component 1 Object Type
+ Zone Return Air Mixer_unit1; !- Component 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: BRANCH ===========
+
+Branch,
+ Air Loop Main Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ AirLoopHVAC:UnitaryHeatPump:AirtoAir, !- Component 1 Object Type
+ Heat Pump_unit1, !- Component 1 Name
+ Air Loop Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Air Loop Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Mains Inlet Branch_unit1,!- Name
+ , !- Pressure Drop Curve Name
+ Pump:VariableSpeed, !- Component 1 Object Type
+ Mains Pressure_unit1, !- Component 1 Name
+ Mains Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Mains Pressure Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ DHW Supply Outlet Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ DHW Supply Outlet Pipe_unit1, !- Component 1 Name
+ DHW Supply Outlet Pipe Inlet Node_unit1, !- Component 1 Inlet Node Name
+ DHW Supply Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ DHW Demand Inlet Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ DHW Demand Inlet Pipe_unit1, !- Component 1 Name
+ DHW Demand Inlet Node_unit1, !- Component 1 Inlet Node Name
+ DHW Demand Inlet Pipe Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Sink Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW Sinks_unit1, !- Component 1 Name
+ Water Sink Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water Sink outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Shower Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW Showers_unit1, !- Component 1 Name
+ Water Shower Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water Shower Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water ClothesWasher Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW ClothesWasher_unit1, !- Component 1 Name
+ Water ClothesWasher Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water ClothesWasher Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Dishwasher Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW DishWasher_unit1, !- Component 1 Name
+ Water DishWasher Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water DishWasher outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Bath Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW Baths_unit1, !- Component 1 Name
+ Water Bath Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water bath Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Mains Makeup Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ Mains Makeup Pipe_unit1, !- Component 1 Name
+ Mains Makeup Pipe Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Mains Makeup Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Heater Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterHeater:HeatPump:WrappedCondenser, !- Component 1 Object Type
+ Water Heater_unit1, !- Component 1 Name
+ Water Heater Use Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water Heater Use Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: BRANCHLIST ===========
+
+BranchList,
+ Air Loop Branches_unit1, !- Name
+ Air Loop Main Branch_unit1; !- Branch 1 Name
+
+BranchList,
+ DHW Supply Branches_unit1, !- Name
+ Mains Inlet Branch_unit1,!- Branch 1 Name
+ Water Heater Branch_unit1, !- Branch 2 Name
+ DHW Supply Outlet Branch_unit1; !- Branch 3 Name
+
+BranchList,
+ DHW Demand Branches_unit1, !- Name
+ DHW Demand Inlet Branch_unit1, !- Branch 1 Name
+ Water Sink Branch_unit1, !- Branch 2 Name
+ Water Shower Branch_unit1, !- Branch 3 Name
+ Water ClothesWasher Branch_unit1, !- Branch 4 Name
+ Water Dishwasher Branch_unit1, !- Branch 5 Name
+ Water Bath Branch_unit1, !- Branch 6 Name
+ Mains Makeup Branch_unit1; !- Branch 7 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CONNECTOR:SPLITTER ===========
+
+Connector:Splitter,
+ DHW Demand Splitter_unit1, !- Name
+ DHW Demand Inlet Branch_unit1, !- Inlet Branch Name
+ Water Sink Branch_unit1, !- Outlet Branch 1 Name
+ Water Shower Branch_unit1, !- Outlet Branch 2 Name
+ Water ClothesWasher Branch_unit1, !- Outlet Branch 3 Name
+ Water Dishwasher Branch_unit1, !- Outlet Branch 4 Name
+ Water Bath Branch_unit1; !- Outlet Branch 5 Name
+
+Connector:Splitter,
+ DHW Supply Splitter_unit1, !- Name
+ Mains Inlet Branch_unit1,!- Inlet Branch Name
+ Water Heater Branch_unit1; !- Outlet Branch 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CONNECTOR:MIXER ===========
+
+Connector:Mixer,
+ DHW Demand Mixer_unit1, !- Name
+ Mains Makeup Branch_unit1, !- Outlet Branch Name
+ Water Sink Branch_unit1, !- Inlet Branch 1 Name
+ Water Shower Branch_unit1, !- Inlet Branch 2 Name
+ Water ClothesWasher Branch_unit1, !- Inlet Branch 3 Name
+ Water Dishwasher Branch_unit1, !- Inlet Branch 4 Name
+ Water Bath Branch_unit1; !- Inlet Branch 5 Name
+
+Connector:Mixer,
+ DHW Supply Mixer_unit1, !- Name
+ DHW Supply Outlet Branch_unit1, !- Outlet Branch Name
+ Water Heater Branch_unit1; !- Inlet Branch 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CONNECTORLIST ===========
+
+ConnectorList,
+ DHW Demand Connectors_unit1, !- Name
+ Connector:Splitter, !- Connector 1 Object Type
+ DHW Demand Splitter_unit1, !- Connector 1 Name
+ Connector:Mixer, !- Connector 2 Object Type
+ DHW Demand Mixer_unit1; !- Connector 2 Name
+
+ConnectorList,
+ DHW Supply Connectors_unit1, !- Name
+ Connector:Splitter, !- Connector 1 Object Type
+ DHW Supply Splitter_unit1, !- Connector 1 Name
+ Connector:Mixer, !- Connector 2 Object Type
+ DHW Supply Mixer_unit1; !- Connector 2 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: NODELIST ===========
+
+NodeList,
+ Zone Inlet Nodes_unit1, !- Name
+ Zone Inlet Node_unit1, !- Node 1 Name
+ HPWH Zone Inlet Node_unit1, !- Node 2 Name
+ OA Inlet Node_unit1; !- Node 3 Name
+
+NodeList,
+ Zone Exhaust Node_list_unit1, !- Name
+ Zone Exhaust Node_unit1, !- Node 1 Name
+ Zone Exhaust Node1_unit1;!- Node 2 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTDOORAIR:NODE ===========
+
+OutdoorAir:Node,
+ outside air inlet node_unit1, !- Name
+ 0.914355407629293; !- Height Above Ground {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTDOORAIR:NODELIST ===========
+
+OutdoorAir:NodeList,
+ outdoor air node_unit1; !- Node or NodeList Name 1
+
+
+!- =========== ALL OBJECTS IN CLASS: PIPE:ADIABATIC ===========
+
+Pipe:Adiabatic,
+ DHW Supply Outlet Pipe_unit1, !- Name
+ DHW Supply Outlet Pipe Inlet Node_unit1, !- Inlet Node Name
+ DHW Supply Outlet Node_unit1; !- Outlet Node Name
+
+Pipe:Adiabatic,
+ Mains Makeup Pipe_unit1, !- Name
+ Mains Makeup Pipe Inlet Node_unit1, !- Inlet Node Name
+ Mains Makeup Node_unit1; !- Outlet Node Name
+
+Pipe:Adiabatic,
+ DHW Demand Inlet Pipe_unit1, !- Name
+ DHW Demand Inlet Node_unit1, !- Inlet Node Name
+ DHW Demand Inlet Pipe Outlet Node_unit1; !- Outlet Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: PUMP:VARIABLESPEED ===========
+
+Pump:VariableSpeed,
+ Mains Pressure_unit1, !- Name
+ Mains Inlet Node_unit1, !- Inlet Node Name
+ Mains Pressure Outlet Node_unit1, !- Outlet Node Name
+ autosize, !- Design Maximum Flow Rate {m3/s}
+ 1, !- Design Pump Head {Pa}
+ 0, !- Design Power Consumption {W}
+ 1, !- Motor Efficiency
+ 0, !- Fraction of Motor Inefficiencies to Fluid Stream
+ 0, !- Coefficient 1 of the Part Load Performance Curve
+ 1, !- Coefficient 2 of the Part Load Performance Curve
+ 0, !- Coefficient 3 of the Part Load Performance Curve
+ 0, !- Coefficient 4 of the Part Load Performance Curve
+ 0, !- Design Minimum Flow Rate {m3/s}
+ Intermittent; !- Pump Control Type
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERHEATER:STRATIFIED ===========
+
+WaterHeater:Stratified,
+ Water Heater_Tank_unit1, !- Name
+ Water Heater, !- End-Use Subcategory
+ 0.196841372, !- Tank Volume {m3}
+ 1.594, !- Tank Height {m}
+ VerticalCylinder, !- Tank Shape
+ , !- Tank Perimeter {m}
+ 51, !- Maximum Temperature Limit {C}
+ MasterSlave, !- Heater Priority Control
+ dhw_setpt_hpwh, !- Heater 1 Setpoint Temperature Schedule Name
+ 2, !- Heater 1 Deadband Temperature Difference {deltaC}
+ autosize, !- Heater 1 Capacity {W}
+ 1.129, !- Heater 1 Height {m}
+ dhw_setpt_hpwh, !- Heater 2 Setpoint Temperature Schedule Name
+ 2, !- Heater 2 Deadband Temperature Difference {deltaC}
+ 0, !- Heater 2 Capacity {W}
+ 0.266, !- Heater 2 Height {m}
+ electricity, !- Heater Fuel Type
+ 1, !- Heater Thermal Efficiency
+ 8.3, !- Off Cycle Parasitic Fuel Consumption Rate {W}
+ Electricity, !- Off Cycle Parasitic Fuel Type
+ 0, !- Off Cycle Parasitic Heat Fraction to Tank
+ 1, !- Off Cycle Parasitic Height {m}
+ 8.3, !- On Cycle Parasitic Fuel Consumption Rate {W}
+ Electricity, !- On Cycle Parasitic Fuel Type
+ 0, !- On Cycle Parasitic Heat Fraction to Tank
+ 1, !- On Cycle Parasitic Height {m}
+ Zone, !- Ambient Temperature Indicator
+ , !- Ambient Temperature Schedule Name
+ living_unit1, !- Ambient Temperature Zone Name
+ , !- Ambient Temperature Outdoor Air Node Name
+ 4.536492, !- Uniform Skin Loss Coefficient per Unit Area to Ambient Temperature {W/m2-K}
+ 1, !- Skin Loss Fraction to Zone
+ , !- Off Cycle Flue Loss Coefficient to Ambient Temperature {W/K}
+ 1, !- Off Cycle Flue Loss Fraction to Zone
+ , !- Peak Use Flow Rate {m3/s}
+ , !- Use Flow Rate Fraction Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ Water Heater use inlet node_unit1, !- Use Side Inlet Node Name
+ Water Heater use outlet node_unit1, !- Use Side Outlet Node Name
+ 1, !- Use Side Effectiveness
+ 0, !- Use Side Inlet Height {m}
+ autocalculate, !- Use Side Outlet Height {m}
+ , !- Source Side Inlet Node Name
+ , !- Source Side Outlet Node Name
+ 1, !- Source Side Effectiveness
+ 0.7, !- Source Side Inlet Height {m}
+ 0, !- Source Side Outlet Height {m}
+ Fixed, !- Inlet Mode
+ autosize, !- Use Side Design Flow Rate {m3/s}
+ autosize, !- Source Side Design Flow Rate {m3/s}
+ 1.5, !- Indirect Water Heating Recovery Time {hr}
+ 1; !- Number of Nodes
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERHEATER:SIZING ===========
+
+WaterHeater:Sizing,
+ Water Heater_Tank_unit1, !- WaterHeater Name
+ ResidentialHUD-FHAMinimum, !- Design Mode
+ , !- Time Storage Can Meet Peak Draw {hr}
+ , !- Time for Tank Recovery {hr}
+ , !- Nominal Tank Volume for Autosizing Plant Connections {m3}
+ 3, !- Number of Bedrooms
+ 3; !- Number of Bathrooms
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERHEATER:HEATPUMP:WRAPPEDCONDENSER ===========
+
+WaterHeater:HeatPump:WrappedCondenser,
+ Water Heater_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ Compressor Setpoint, !- Compressor Setpoint Temperature Schedule Name
+ 5, !- Dead Band Temperature Difference {deltaC}
+ 0.0664166667, !- Condenser Bottom Location {m}
+ 0.8634166667, !- Condenser Top Location {m}
+ autocalculate, !- Evaporator Air Flow Rate {m3/s}
+ ZoneAirOnly, !- Inlet Air Configuration
+ Zone Exhaust Node1_unit1,!- Air Inlet Node Name
+ HPWH Zone Inlet Node_unit1, !- Air Outlet Node Name
+ , !- Outdoor Air Node Name
+ , !- Exhaust Air Node Name
+ , !- Inlet Air Temperature Schedule Name
+ , !- Inlet Air Humidity Schedule Name
+ living_unit1, !- Inlet Air Zone Name
+ WaterHeater:Stratified, !- Tank Object Type
+ Water Heater_Tank_unit1, !- Tank Name
+ Water Heater use inlet node_unit1, !- Tank Use Side Inlet Node Name
+ Water Heater use outlet node_unit1, !- Tank Use Side Outlet Node Name
+ Coil:WaterHeating:AirToWaterHeatPump:Wrapped, !- DX Coil Object Type
+ Heat Pump Water Heater Evaporator_unit1, !- DX Coil Name
+ 10.0, !- Minimum Inlet Air Temperature for Compressor Operation {C}
+ 48.89, !- Maximum Inlet Air Temperature for Compressor Operation {C}
+ Zone, !- Compressor Location
+ , !- Compressor Ambient Temperature Schedule Name
+ Fan:OnOff, !- Fan Object Type
+ Heat Pump Water Heater Fan_unit1, !- Fan Name
+ DrawThrough, !- Fan Placement
+ 0, !- On Cycle Parasitic Electric Load {W}
+ 0, !- Off Cycle Parasitic Electric Load {W}
+ , !- Parasitic Heat Rejection Location
+ , !- Inlet Air Mixer Node Name
+ , !- Outlet Air Splitter Node Name
+ , !- Inlet Air Mixer Schedule Name
+ MutuallyExclusive, !- Tank Element Control Logic
+ 1.262, !- Control Sensor 1 Height In Stratified Tank {m}
+ 0.75, !- Control Sensor 1 Weight {dimensionless}
+ 0.464; !- Control Sensor 2 Height In Stratified Tank {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTLOOP ===========
+
+PlantLoop,
+ DHW Loop_unit1, !- Name
+ Water, !- Fluid Type
+ , !- User Defined Fluid Type
+ DHW Loop Operation_unit1,!- Plant Equipment Operation Scheme Name
+ DHW Supply Outlet Node_unit1, !- Loop Temperature Setpoint Node Name
+ 100, !- Maximum Loop Temperature {C}
+ 0, !- Minimum Loop Temperature {C}
+ autosize, !- Maximum Loop Flow Rate {m3/s}
+ 0, !- Minimum Loop Flow Rate {m3/s}
+ autocalculate, !- Plant Loop Volume {m3}
+ Mains Inlet Node_unit1, !- Plant Side Inlet Node Name
+ DHW Supply Outlet Node_unit1, !- Plant Side Outlet Node Name
+ DHW Supply Branches_unit1, !- Plant Side Branch List Name
+ DHW Supply Connectors_unit1, !- Plant Side Connector List Name
+ DHW Demand Inlet Node_unit1, !- Demand Side Inlet Node Name
+ Mains Makeup Node_unit1, !- Demand Side Outlet Node Name
+ DHW Demand Branches_unit1, !- Demand Side Branch List Name
+ DHW Demand Connectors_unit1, !- Demand Side Connector List Name
+ Optimal; !- Load Distribution Scheme
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTEQUIPMENTLIST ===========
+
+PlantEquipmentList,
+ DHW Plant Equipment_unit1, !- Name
+ WaterHeater:HeatPump:WrappedCondenser, !- Equipment 1 Object Type
+ Water Heater_unit1; !- Equipment 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTEQUIPMENTOPERATION:HEATINGLOAD ===========
+
+PlantEquipmentOperation:HeatingLoad,
+ DHW Control Scheme_unit1,!- Name
+ 0.0, !- Load Range 1 Lower Limit {W}
+ 1000000000000000, !- Load Range 1 Upper Limit {W}
+ DHW Plant Equipment_unit1; !- Range 1 Equipment List Name
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTEQUIPMENTOPERATIONSCHEMES ===========
+
+PlantEquipmentOperationSchemes,
+ DHW Loop Operation_unit1,!- Name
+ PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type
+ DHW Control Scheme_unit1,!- Control Scheme 1 Name
+ always_avail; !- Control Scheme 1 Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AVAILABILITYMANAGER:SCHEDULED ===========
+
+AvailabilityManager:Scheduled,
+ System availability, !- Name
+ always_avail; !- Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AVAILABILITYMANAGERASSIGNMENTLIST ===========
+
+AvailabilityManagerAssignmentList,
+ availability list, !- Name
+ AvailabilityManager:Scheduled, !- Availability Manager 1 Object Type
+ System availability; !- Availability Manager 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: SETPOINTMANAGER:SCHEDULED ===========
+
+SetpointManager:Scheduled,
+ DHW Loop Setpoint Manager_unit1, !- Name
+ Temperature, !- Control Variable
+ DHWSupplySetpoint, !- Schedule Name
+ DHW Supply Outlet Node_unit1; !- Setpoint Node or NodeList Name
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERUSE:EQUIPMENT ===========
+
+WaterUse:Equipment,
+ Clothes Washer_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 1.6219189818e-06, !- Peak Flow Rate {m3/s}
+ ClothesWasher, !- Flow Rate Fraction Schedule Name
+ CWWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Dishwasher_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 6.36685353e-07, !- Peak Flow Rate {m3/s}
+ Dishwasher, !- Flow Rate Fraction Schedule Name
+ DWWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Sinks_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 7.1934e-05, !- Peak Flow Rate {m3/s}
+ BA_sink_sch, !- Flow Rate Fraction Schedule Name
+ SSBWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Showers_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 0.000141975, !- Peak Flow Rate {m3/s}
+ BA_shower_sch, !- Flow Rate Fraction Schedule Name
+ SSBWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Baths_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 0.00027764, !- Peak Flow Rate {m3/s}
+ BA_bath_sch, !- Flow Rate Fraction Schedule Name
+ SSBWaterTempSchedule; !- Target Temperature Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERUSE:CONNECTIONS ===========
+
+WaterUse:Connections,
+ DHW Sinks_unit1, !- Name
+ Water Sink Inlet Node_unit1, !- Inlet Node Name
+ Water Sink Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Sinks_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW Showers_unit1, !- Name
+ Water Shower Inlet Node_unit1, !- Inlet Node Name
+ Water Shower Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Showers_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW ClothesWasher_unit1, !- Name
+ Water ClothesWasher Inlet Node_unit1, !- Inlet Node Name
+ Water ClothesWasher Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Clothes Washer_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW DishWasher_unit1, !- Name
+ Water DishWasher Inlet Node_unit1, !- Inlet Node Name
+ Water DishWasher Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Dishwasher_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW Baths_unit1, !- Name
+ Water Bath Inlet Node_unit1, !- Inlet Node Name
+ Water Bath Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Baths_unit1; !- Water Use Equipment 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CURVE:QUADRATIC ===========
+
+Curve:Quadratic,
+ HPWH-COP-fPLR, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACCoolCapFFF, !- Name
+ 0.8, !- Coefficient1 Constant
+ 0.2, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.5, !- Minimum Value of x
+ 1.5; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACCOOLEIRFFF, !- Name
+ 1.156, !- Coefficient1 Constant
+ -0.1816, !- Coefficient2 x
+ 0.0256, !- Coefficient3 x**2
+ 0.5, !- Minimum Value of x
+ 1.5; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACCOOLPLFFPLR, !- Name
+ 0.85, !- Coefficient1 Constant
+ 0.15, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACHeatEIRFFF, !- Name
+ 1.3824, !- Coefficient1 Constant
+ -0.4336, !- Coefficient2 x
+ 0.0512, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ ACCoolingCAPFFF, !- Name
+ 0.718605468, !- Coefficient1 Constant
+ 0.410099989, !- Coefficient2 x
+ -0.128705457, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACCoolingEIRFFF, !- Name
+ 1.32299905, !- Coefficient1 Constant
+ -0.477711207, !- Coefficient2 x
+ 0.154712157, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACCoolingPLFFPLR, !- Name
+ 0.90, !- Coefficient1 Constant
+ 0.10, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPCoolingCAPFFF, !- Name
+ 0.718664047, !- Coefficient1 Constant
+ 0.41797409, !- Coefficient2 x
+ -0.136638137, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPCoolingEIRFFF, !- Name
+ 1.143487507, !- Coefficient1 Constant
+ -0.13943972, !- Coefficient2 x
+ -0.004047787, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPCOOLPLFFPLR, !- Name
+ 0.90, !- Coefficient1 Constant
+ 0.10, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPHeatingCAPFFF, !- Name
+ 0.694045465, !- Coefficient1 Constant
+ 0.474207981, !- Coefficient2 x
+ -0.168253446, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHeatingEIRFFF, !- Name
+ 2.185418751, !- Coefficient1 Constant
+ -1.942827919, !- Coefficient2 x
+ 0.757409168, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHeatPLFFPLR, !- Name
+ 0.90, !- Coefficient1 Constant
+ 0.10, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPLowStageHeatingCAPFFF, !- Name
+ 0.741466907, !- Coefficient1 Constant
+ 0.378645444, !- Coefficient2 x
+ -0.119754733, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPLowStageHeatingEIRFFF, !- Name
+ 2.153618211, !- Coefficient1 Constant
+ -1.737190609, !- Coefficient2 x
+ 0.584269478, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageHeatingCAPFFF,!- Name
+ 0.76634609, !- Coefficient1 Constant
+ 0.32840943, !- Coefficient2 x
+ -0.094701495, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageHeatingEIRFFF,!- Name
+ 2.001041353, !- Coefficient1 Constant
+ -1.58869128, !- Coefficient2 x
+ 0.587593517, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HP2StageHeatingPLFFPLR, !- Name
+ 0.93, !- Coefficient1 Constant
+ 0.07, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPLowStageCoolingCAPFFF, !- Name
+ 0.655239515, !- Coefficient1 Constant
+ 0.511655216, !- Coefficient2 x
+ -0.166894731, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPLowStageCoolingEIRFFF, !- Name
+ 1.639108268, !- Coefficient1 Constant
+ -0.998953996, !- Coefficient2 x
+ 0.359845728, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageCoolingCAPFFF,!- Name
+ 0.618281092, !- Coefficient1 Constant
+ 0.569060264, !- Coefficient2 x
+ -0.187341356, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageCoolingEIRFFF,!- Name
+ 1.570774717, !- Coefficient1 Constant
+ -0.914152018, !- Coefficient2 x
+ 0.343377302, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HP2StageCoolingPLFFPLR, !- Name
+ 0.93, !- Coefficient1 Constant
+ 0.07, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ ACLowStageCoolingCAPFFF, !- Name
+ 0.65673024, !- Coefficient1 Constant
+ 0.516470835, !- Coefficient2 x
+ -0.172887149, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACLowStageCoolingEIRFFF, !- Name
+ 1.562945114, !- Coefficient1 Constant
+ -0.791859997, !- Coefficient2 x
+ 0.230030877, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACHighStageCoolingCAPFFF,!- Name
+ 0.690334551, !- Coefficient1 Constant
+ 0.464383753, !- Coefficient2 x
+ -0.154507638, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACHighStageCoolingEIRFFF,!- Name
+ 1.31565404, !- Coefficient1 Constant
+ -0.482467162, !- Coefficient2 x
+ 0.166239001, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ AC2StageCoolingPLFFPLR, !- Name
+ 0.93, !- Coefficient1 Constant
+ 0.07, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ Cool-PLF-fPLR, !- Name
+ 0.80141423, !- Coefficient1 Constant
+ 0.23744685, !- Coefficient2 x
+ -0.0393773, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1, !- Maximum Value of x
+ 0.7, !- Minimum Curve Output
+ 1; !- Maximum Curve Output
+
+
+!- =========== ALL OBJECTS IN CLASS: CURVE:CUBIC ===========
+
+Curve:Cubic,
+ HPACHeatCapFT, !- Name
+ 0.758746, !- Coefficient1 Constant
+ 0.027626, !- Coefficient2 x
+ 0.000148716, !- Coefficient3 x**2
+ 0.0000034992, !- Coefficient4 x**3
+ -20.0, !- Minimum Value of x
+ 20.0; !- Maximum Value of x
+
+Curve:Cubic,
+ HPACHeatCapFFF, !- Name
+ 0.84, !- Coefficient1 Constant
+ 0.16, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Coefficient4 x**3
+ 0.5, !- Minimum Value of x
+ 1.5; !- Maximum Value of x
+
+Curve:Cubic,
+ HPACHeatEIRFT, !- Name
+ 1.19248, !- Coefficient1 Constant
+ -0.0300438, !- Coefficient2 x
+ 0.00103745, !- Coefficient3 x**2
+ -0.000023328, !- Coefficient4 x**3
+ -20.0, !- Minimum Value of x
+ 20.0; !- Maximum Value of x
+
+Curve:Cubic,
+ Fan-EIR-fPLR, !- Name
+ 0.00000000, !- Coefficient1 Constant
+ 1.00000000, !- Coefficient2 x
+ 0.00000000, !- Coefficient3 x**2
+ 0.00000000, !- Coefficient4 x**3
+ 0, !- Minimum Value of x
+ 1, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 1; !- Maximum Curve Output
+
+Curve:Cubic,
+ ConstantCubic, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Coefficient4 x**3
+ -100, !- Minimum Value of x
+ 100; !- Maximum Value of x
+
+
+!- =========== ALL OBJECTS IN CLASS: CURVE:BIQUADRATIC ===========
+
+Curve:Biquadratic,
+ HPWH-Htg-Cap-fT, !- Name
+ 0.563, !- Coefficient1 Constant
+ 0.0437, !- Coefficient2 x
+ 0.000039, !- Coefficient3 x**2
+ 0.0055, !- Coefficient4 y
+ -.000148, !- Coefficient5 y**2
+ -.000145, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 100, !- Maximum Value of y
+ 0; !- Minimum Curve Output
+
+Curve:Biquadratic,
+ HPWH-Htg-COP-fT, !- Name
+ 1.1332, !- Coefficient1 Constant
+ 0.063, !- Coefficient2 x
+ -.0000979, !- Coefficient3 x**2
+ -.00972, !- Coefficient4 y
+ -.0000214, !- Coefficient5 y**2
+ -.000686, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+Curve:Biquadratic,
+ HPWHHeatingCapFTemp, !- Name
+ 0.369827, !- Coefficient1 Constant
+ 0.043341, !- Coefficient2 x
+ -0.00023, !- Coefficient3 x**2
+ 0.000466, !- Coefficient4 y
+ 0.000026, !- Coefficient5 y**2
+ -0.00027, !- Coefficient6 x*y
+ 0.0, !- Minimum Value of x
+ 40.0, !- Maximum Value of x
+ 20.0, !- Minimum Value of y
+ 90.0, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPWHHeatingCOPFTemp, !- Name
+ 1.19713, !- Coefficient1 Constant
+ 0.077849, !- Coefficient2 x
+ -0.0000016, !- Coefficient3 x**2
+ -0.02675, !- Coefficient4 y
+ 0.000296, !- Coefficient5 y**2
+ -0.00112, !- Coefficient6 x*y
+ 0.0, !- Minimum Value of x
+ 40.0, !- Maximum Value of x
+ 20.0, !- Minimum Value of y
+ 90.0, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPACCoolCapFT, !- Name
+ 0.766956, !- Coefficient1 Constant
+ 0.0107756, !- Coefficient2 x
+ -0.0000414703, !- Coefficient3 x**2
+ 0.00134961, !- Coefficient4 y
+ -0.000261144, !- Coefficient5 y**2
+ 0.000457488, !- Coefficient6 x*y
+ 12.77778, !- Minimum Value of x
+ 23.88889, !- Maximum Value of x
+ 21.11111, !- Minimum Value of y
+ 46.11111; !- Maximum Value of y
+
+Curve:Biquadratic,
+ HPACCOOLEIRFT, !- Name
+ 0.297145, !- Coefficient1 Constant
+ 0.0430933, !- Coefficient2 x
+ -0.000748766, !- Coefficient3 x**2
+ 0.00597727, !- Coefficient4 y
+ 0.000482112, !- Coefficient5 y**2
+ -0.000956448, !- Coefficient6 x*y
+ 12.77778, !- Minimum Value of x
+ 23.88889, !- Maximum Value of x
+ 21.11111, !- Minimum Value of y
+ 46.11111; !- Maximum Value of y
+
+Curve:Biquadratic,
+ Defrost_EIR_FT, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Coefficient4 y
+ 0, !- Coefficient5 y**2
+ 0, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+Curve:Biquadratic,
+ dummy-waste-heat-curve, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Coefficient4 y
+ 0, !- Coefficient5 y**2
+ 0, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 1, !- Minimum Curve Output
+ 1, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACCoolingCAPFTemp, !- Name
+ 1.5509, !- Coefficient1 Constant
+ -0.07505, !- Coefficient2 x
+ 0.0031, !- Coefficient3 x**2
+ 0.0024, !- Coefficient4 y
+ -0.00005, !- Coefficient5 y**2
+ -0.00043, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACCoolingEIRFTemp, !- Name
+ -0.30428, !- Coefficient1 Constant
+ 0.11805, !- Coefficient2 x
+ -0.00342, !- Coefficient3 x**2
+ -0.00626, !- Coefficient4 y
+ 0.0007, !- Coefficient5 y**2
+ -0.00047, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPCoolingCAPFTemp, !- Name
+ 1.55736, !- Coefficient1 Constant
+ -0.074448, !- Coefficient2 x
+ 0.003099, !- Coefficient3 x**2
+ 0.00146, !- Coefficient4 y
+ -0.000041, !- Coefficient5 y**2
+ -0.000427, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPCoolingEIRFTemp, !- Name
+ -0.350448, !- Coefficient1 Constant
+ 0.11681, !- Coefficient2 x
+ -0.0034, !- Coefficient3 x**2
+ -0.001226, !- Coefficient4 y
+ 0.000601, !- Coefficient5 y**2
+ -0.000467, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHeatingCAPFTemp, !- Name
+ 0.876825, !- Coefficient1 Constant
+ -0.002955, !- Coefficient2 x
+ -0.000058, !- Coefficient3 x**2
+ 0.025335, !- Coefficient4 y
+ 0.000196, !- Coefficient5 y**2
+ -0.000043, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHeatingEIRFTemp, !- Name
+ 0.704658, !- Coefficient1 Constant
+ 0.008767, !- Coefficient2 x
+ 0.000625, !- Coefficient3 x**2
+ -0.009037, !- Coefficient4 y
+ 0.000738, !- Coefficient5 y**2
+ -0.001025, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageHeatingCAPFTemp, !- Name
+ 0.84613, !- Coefficient1 Constant
+ -0.002279, !- Coefficient2 x
+ -0.000047, !- Coefficient3 x**2
+ 0.026703, !- Coefficient4 y
+ 0.000201, !- Coefficient5 y**2
+ -0.000079, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageHeatingEIRFTemp, !- Name
+ 0.551837, !- Coefficient1 Constant
+ 0.02038, !- Coefficient2 x
+ 0.000546, !- Coefficient3 x**2
+ -0.009638, !- Coefficient4 y
+ 0.000785, !- Coefficient5 y**2
+ -0.00125, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageHeatingCAPFTemp, !- Name
+ 0.818223, !- Coefficient1 Constant
+ 0.001981, !- Coefficient2 x
+ -0.000203, !- Coefficient3 x**2
+ 0.028703, !- Coefficient4 y
+ 0.000207, !- Coefficient5 y**2
+ -0.000071, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageHeatingEIRFTemp, !- Name
+ 0.81584, !- Coefficient1 Constant
+ -0.00615, !- Coefficient2 x
+ 0.001021, !- Coefficient3 x**2
+ -0.001301, !- Coefficient4 y
+ 0.001083, !- Coefficient5 y**2
+ -0.001487, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageCoolingCAPFTemp, !- Name
+ 1.658788, !- Coefficient1 Constant
+ -0.083453, !- Coefficient2 x
+ 0.003424, !- Coefficient3 x**2
+ 0.002433, !- Coefficient4 y
+ -0.000045, !- Coefficient5 y**2
+ -0.000534, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageCoolingEIRFTemp, !- Name
+ -0.582916, !- Coefficient1 Constant
+ 0.158101, !- Coefficient2 x
+ -0.004398, !- Coefficient3 x**2
+ -0.020335, !- Coefficient4 y
+ 0.00108, !- Coefficient5 y**2
+ -0.00064, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageCoolingCAPFTemp, !- Name
+ 1.472738, !- Coefficient1 Constant
+ -0.067222, !- Coefficient2 x
+ 0.00292, !- Coefficient3 x**2
+ 0.000052, !- Coefficient4 y
+ -0.00003, !- Coefficient5 y**2
+ -0.000359, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageCoolingEIRFTemp, !- Name
+ -0.488196, !- Coefficient1 Constant
+ 0.099162, !- Coefficient2 x
+ -0.00237, !- Coefficient3 x**2
+ 0.019503, !- Coefficient4 y
+ 0.00043, !- Coefficient5 y**2
+ -0.001097, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACLowStageCoolingCAPFTemp, !- Name
+ 1.66458, !- Coefficient1 Constant
+ -0.08039, !- Coefficient2 x
+ 0.0033, !- Coefficient3 x**2
+ 0.00124, !- Coefficient4 y
+ -0.00003, !- Coefficient5 y**2
+ -0.00052, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACLowStageCoolingEIRFTemp, !- Name
+ -0.42738, !- Coefficient1 Constant
+ 0.14191, !- Coefficient2 x
+ -0.00412, !- Coefficient3 x**2
+ -0.01406, !- Coefficient4 y
+ 0.00083, !- Coefficient5 y**2
+ -0.00043, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACHighStageCoolingCAPFTemp, !- Name
+ 1.36788, !- Coefficient1 Constant
+ -0.06257, !- Coefficient2 x
+ 0.0028, !- Coefficient3 x**2
+ 0.00504, !- Coefficient4 y
+ -0.00007, !- Coefficient5 y**2
+ -0.00045, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACHighStageCoolingEIRFTemp, !- Name
+ 0.04232, !- Coefficient1 Constant
+ 0.07892, !- Coefficient2 x
+ -0.00238, !- Coefficient3 x**2
+ -0.00304, !- Coefficient4 y
+ 0.00053, !- Coefficient5 y**2
+ -0.00032, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ Cool-Cap-fT, !- Name
+ 1.26489391, !- Coefficient1 Constant
+ -0.035054982, !- Coefficient2 x
+ 0.00211086, !- Coefficient3 x**2
+ -0.001526886, !- Coefficient4 y
+ -0.0000070308, !- Coefficient5 y**2
+ -0.0004691844, !- Coefficient6 x*y
+ -100, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ -100, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+Curve:Biquadratic,
+ Cool-EIR-fT, !- Name
+ 0.38402403, !- Coefficient1 Constant
+ 0.029696724, !- Coefficient2 x
+ -0.0011329308, !- Coefficient3 x**2
+ 0.006490674, !- Coefficient4 y
+ 0.0002626992, !- Coefficient5 y**2
+ -0.0001207224, !- Coefficient6 x*y
+ -100, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ -100, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY ===========
+
+Output:VariableDictionary,Regular;
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:CONSTRUCTIONS ===========
+
+Output:Constructions,Constructions,Materials;
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:TABLE:SUMMARYREPORTS ===========
+
+
+Output:Table:SummaryReports,
+ InputVerificationandResultsSummary, !- Report 1 Name
+ EquipmentSummary, !- Report 2 Name
+ ClimaticDataSummary, !- Report 3 Name
+ EnvelopeSummary, !- Report 4 Name
+ AllSummary; !- Report 5 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:TABLE:MONTHLY ===========
+
+Output:Table:Monthly,
+ FanSplit, !- Name
+ 3, !- Digits After Decimal
+ Air System Cooling Coil Total Cooling Energy, !- Variable or Meter 1 Name
+ HoursNonZero, !- Aggregation Type for Variable or Meter 1
+ Air System Fan Electric Energy, !- Variable or Meter 2 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 2
+ Air System Heating Coil Total Heating Energy, !- Variable or Meter 3 Name
+ HoursNonZero, !- Aggregation Type for Variable or Meter 3
+ Air System Fan Electric Energy, !- Variable or Meter 4 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 4
+ Air System Fan Electric Energy, !- Variable or Meter 5 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 5
+
+Output:Table:Monthly,
+ CoilLoads, !- Name
+ 2, !- Digits After Decimal
+ Heating Coil Heating Rate , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Heating Coil Air Heating Rate , !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Cooling Coil Total Cooling Rate , !- Variable or Meter 3 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 3
+
+Output:Table:Monthly,
+ Water Heater: Loads, !- Name
+ 2, !- Digits After Decimal
+ Water Heater Total Demand Rate , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Water Heater Total Demand Energy , !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Water Heater Heating Rate , !- Variable or Meter 3 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 3
+ Water Heater Heating Energy , !- Variable or Meter 4 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 4
+
+Output:Table:Monthly,
+ Heating and Cooling Loads, !- Name
+ 2, !- Digits After Decimal
+ Zone/Sys Sensible Cooling Energy , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Zone/Sys Sensible Heating Energy , !- Variable or Meter 2 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 2
+
+Output:Table:Monthly,
+ Lighting Loads, !- Name
+ 2, !- Digits After Decimal
+ Zone Lights Electric Consumption , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Exterior Lights Electric Consumption , !- Variable or Meter 2 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 2
+
+Output:Table:Monthly,
+ InternalGains, !- Name
+ 2, !- Digits After Decimal
+ Zone People Total Heat Gain, !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Zone Lights Total Heat Gain, !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Zone Electric Equipment Total Heat Gain, !- Variable or Meter 3 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 3
+ Zone Gas Equipment Total Heat Gain, !- Variable or Meter 4 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 4
+ Zone Other Equipment Total Heat Gain, !- Variable or Meter 5 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 5
+ Zone Total Internal Total Heat Gain, !- Variable or Meter 6 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 6
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUTCONTROL:TABLE:STYLE ===========
+
+OutputControl:Table:Style,
+ CommaAndHTML, !- Column Separator
+ InchPound; !- Unit Conversion
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE ===========
+
+Output:Variable,*,Cooling Coil Sensible Cooling Rate,Hourly;
+Output:Variable,*,Cooling Coil Latent Cooling Rate,Hourly;
+Output:Variable,*,Cooling Coil Total Cooling Rate,Hourly;
+Output:Variable,*,Heating Coil Heating Rate,Hourly;
diff --git a/testfiles/SingleFamilyHouse_HP_Slab_Dehumidification.idf b/testfiles/SingleFamilyHouse_HP_Slab_Dehumidification.idf
new file mode 100644
index 00000000000..12b81e00cd9
--- /dev/null
+++ b/testfiles/SingleFamilyHouse_HP_Slab_Dehumidification.idf
@@ -0,0 +1,5513 @@
+!-Generator IDFEditor 1.51
+!-Option SortedOrder UseSpecialFormat
+
+!-NOTE: All comments with '!-' are ignored by the IDFEditor and are generated automatically.
+!- Use '!' comments if they need to be retained when using the IDFEditor.
+
+
+!- =========== ALL OBJECTS IN CLASS: VERSION ===========
+
+Version,9.5;
+
+!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL ===========
+
+
+SimulationControl,
+ Yes, !- Do Zone Sizing Calculation
+ Yes, !- Do System Sizing Calculation
+ No, !- Do Plant Sizing Calculation
+ Yes, !- Run Simulation for Sizing Periods
+ Yes, !- Run Simulation for Weather File Run Periods
+ , !- Do HVAC Sizing Simulation for Sizing Periods
+ ; !- Maximum Number of HVAC Sizing Simulation Passes
+
+
+!- =========== ALL OBJECTS IN CLASS: BUILDING ===========
+
+Building,
+ SF_CZ8_HP_SLAB_DEH, !- Name
+ 0, !- North Axis {deg}
+ Suburbs, !- Terrain
+ 0.04, !- Loads Convergence Tolerance Value {W}
+ 0.4, !- Temperature Convergence Tolerance Value {deltaC}
+ FullExterior, !- Solar Distribution
+ 25, !- Maximum Number of Warmup Days
+ 6; !- Minimum Number of Warmup Days
+
+
+!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE ===========
+
+SurfaceConvectionAlgorithm:Inside,TARP;
+
+!- =========== ALL OBJECTS IN CLASS: TIMESTEP ===========
+
+Timestep,6;
+
+!- =========== ALL OBJECTS IN CLASS: SITE:LOCATION ===========
+
+
+Site:Location,
+ Fairbanks Intl Arpt_AK_USA Design_Conditions, !- Name
+ 64.82, !- Latitude {deg}
+ -147.85, !- Longitude {deg}
+ -9.00, !- Time Zone {hr}
+ 133.00; !- Elevation {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY ===========
+
+SizingPeriod:DesignDay,
+ Fairbanks Intl Arpt Ann Htg 99.6% Condns DB, !- Name
+ 1, !- Month
+ 21, !- Day of Month
+ WinterDesignDay, !- Day Type
+ -41.9, !- Maximum Dry-Bulb Temperature {C}
+ 0.0, !- Daily Dry-Bulb Temperature Range {deltaC}
+ DefaultMultipliers, !- Dry-Bulb Temperature Range Modifier Type
+ , !- Dry-Bulb Temperature Range Modifier Day Schedule Name
+ Wetbulb, !- Humidity Condition Type
+ -41.9, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}
+ , !- Humidity Condition Day Schedule Name
+ , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
+ , !- Enthalpy at Maximum Dry-Bulb {J/kg}
+ , !- Daily Wet-Bulb Temperature Range {deltaC}
+ 99737., !- Barometric Pressure {Pa}
+ 0.3, !- Wind Speed {m/s}
+ 20, !- Wind Direction {deg}
+ No, !- Rain Indicator
+ No, !- Snow Indicator
+ No, !- Daylight Saving Time Indicator
+ ASHRAEClearSky, !- Solar Model Indicator
+ , !- Beam Solar Day Schedule Name
+ , !- Diffuse Solar Day Schedule Name
+ , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}
+ , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}
+ 0.00; !- Sky Clearness
+
+SizingPeriod:DesignDay,
+ Fairbanks Intl Arpt Ann Clg .4% Condns DB=>MWB, !- Name
+ 7, !- Month
+ 21, !- Day of Month
+ SummerDesignDay, !- Day Type
+ 27.4, !- Maximum Dry-Bulb Temperature {C}
+ 10.2, !- Daily Dry-Bulb Temperature Range {deltaC}
+ DefaultMultipliers, !- Dry-Bulb Temperature Range Modifier Type
+ , !- Dry-Bulb Temperature Range Modifier Day Schedule Name
+ Wetbulb, !- Humidity Condition Type
+ 16.1, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C}
+ , !- Humidity Condition Day Schedule Name
+ , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
+ , !- Enthalpy at Maximum Dry-Bulb {J/kg}
+ , !- Daily Wet-Bulb Temperature Range {deltaC}
+ 99737., !- Barometric Pressure {Pa}
+ 3.1, !- Wind Speed {m/s}
+ 180, !- Wind Direction {deg}
+ No, !- Rain Indicator
+ No, !- Snow Indicator
+ No, !- Daylight Saving Time Indicator
+ ASHRAETau, !- Solar Model Indicator
+ , !- Beam Solar Day Schedule Name
+ , !- Diffuse Solar Day Schedule Name
+ 0.387, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless}
+ 2.212; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: RUNPERIOD ===========
+
+RunPeriod,
+ annual, !- Name
+ 1, !- Begin Month
+ 1, !- Begin Day of Month
+ , !- Begin Year
+ 12, !- End Month
+ 31, !- End Day of Month
+ , !- End Year
+ Sunday, !- Day of Week for Start Day
+ Yes, !- Use Weather File Holidays and Special Days
+ Yes, !- Use Weather File Daylight Saving Period
+ No, !- Apply Weekend Holiday Rule
+ Yes, !- Use Weather File Rain Indicators
+ Yes; !- Use Weather File Snow Indicators
+
+
+!- =========== ALL OBJECTS IN CLASS: SITE:WATERMAINSTEMPERATURE ===========
+
+Site:WaterMainsTemperature,
+ Correlation, !- Calculation Method
+ , !- Temperature Schedule Name
+ -1.525, !- Annual Average Outdoor Air Temperature {C}
+ 36.2; !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC}
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS ===========
+
+ScheduleTypeLimits,
+ any number; !- Name
+
+ScheduleTypeLimits,
+ On/Off, !- Name
+ 0, !- Lower Limit Value
+ 1, !- Upper Limit Value
+ Discrete; !- Numeric Type
+
+ScheduleTypeLimits,
+ control_type, !- Name
+ 0, !- Lower Limit Value
+ 4, !- Upper Limit Value
+ Discrete; !- Numeric Type
+
+ScheduleTypeLimits,
+ fraction, !- Name
+ 0, !- Lower Limit Value
+ 1, !- Upper Limit Value
+ Continuous; !- Numeric Type
+
+ScheduleTypeLimits,
+ Temperature, !- Name
+ -60, !- Lower Limit Value
+ 200, !- Upper Limit Value
+ Continuous; !- Numeric Type
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY ===========
+
+Schedule:Day:Hourly,
+ OccupancyDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 1.00000, !- Hour 1
+ 1.00000, !- Hour 2
+ 1.00000, !- Hour 3
+ 1.00000, !- Hour 4
+ 1.00000, !- Hour 5
+ 1.00000, !- Hour 6
+ 1.00000, !- Hour 7
+ 0.88310, !- Hour 8
+ 0.40861, !- Hour 9
+ 0.24189, !- Hour 10
+ 0.24189, !- Hour 11
+ 0.24189, !- Hour 12
+ 0.24189, !- Hour 13
+ 0.24189, !- Hour 14
+ 0.24189, !- Hour 15
+ 0.24189, !- Hour 16
+ 0.29498, !- Hour 17
+ 0.55310, !- Hour 18
+ 0.89693, !- Hour 19
+ 0.89693, !- Hour 20
+ 0.89693, !- Hour 21
+ 1.00000, !- Hour 22
+ 1.00000, !- Hour 23
+ 1.00000; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0625, !- Hour 1
+ 0.0625, !- Hour 2
+ 0.0625, !- Hour 3
+ 0.0625, !- Hour 4
+ 0.1875, !- Hour 5
+ 0.390625, !- Hour 6
+ 0.4375, !- Hour 7
+ 0.390625, !- Hour 8
+ 0.171875, !- Hour 9
+ 0.1171875, !- Hour 10
+ 0.1171875, !- Hour 11
+ 0.1171875, !- Hour 12
+ 0.1171875, !- Hour 13
+ 0.1171875, !- Hour 14
+ 0.1171875, !- Hour 15
+ 0.203125, !- Hour 16
+ 0.4375, !- Hour 17
+ 0.609375, !- Hour 18
+ 0.8203125, !- Hour 19
+ 0.984375, !- Hour 20
+ 1, !- Hour 21
+ 0.6875, !- Hour 22
+ 0.3828125, !- Hour 23
+ 0.15625; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay_EELighting_OccSensors, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.065170403, !- Hour 1
+ 0.065170403, !- Hour 2
+ 0.065170403, !- Hour 3
+ 0.065170403, !- Hour 4
+ 0.195511208, !- Hour 5
+ 0.407315016, !- Hour 6
+ 0.456192818, !- Hour 7
+ 0.407315016, !- Hour 8
+ 0.179218607, !- Hour 9
+ 0.122194505, !- Hour 10
+ 0.122194505, !- Hour 11
+ 0.122194505, !- Hour 12
+ 0.122194505, !- Hour 13
+ 0.122194505, !- Hour 14
+ 0.122194505, !- Hour 15
+ 0.211803808, !- Hour 16
+ 0.456192818, !- Hour 17
+ 0.635411425, !- Hour 18
+ 0.855361533, !- Hour 19
+ 0.947933128, !- Hour 20
+ 0.947933128, !- Hour 21
+ 0.716874428, !- Hour 22
+ 0.399168715, !- Hour 23
+ 0.162926006; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay_EELighting_Garage_OccSensors, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.048125, !- Hour 1
+ 0.048125, !- Hour 2
+ 0.048125, !- Hour 3
+ 0.048125, !- Hour 4
+ 0.144375, !- Hour 5
+ 0.30078125, !- Hour 6
+ 0.336875, !- Hour 7
+ 0.30078125, !- Hour 8
+ 0.13234375, !- Hour 9
+ 0.090234375, !- Hour 10
+ 0.090234375, !- Hour 11
+ 0.090234375, !- Hour 12
+ 0.090234375, !- Hour 13
+ 0.090234375, !- Hour 14
+ 0.090234375, !- Hour 15
+ 0.15640625, !- Hour 16
+ 0.336875, !- Hour 17
+ 0.46921875, !- Hour 18
+ 0.631640625, !- Hour 19
+ 0.7, !- Hour 20
+ 0.7, !- Hour 21
+ 0.529375, !- Hour 22
+ 0.294765625, !- Hour 23
+ 0.1203125; !- Hour 24
+
+Schedule:Day:Hourly,
+ ExteriorLightingDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 1, !- Hour 1
+ 1, !- Hour 2
+ 1, !- Hour 3
+ 1, !- Hour 4
+ 1, !- Hour 5
+ 1, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 1, !- Hour 19
+ 1, !- Hour 20
+ 1, !- Hour 21
+ 1, !- Hour 22
+ 1, !- Hour 23
+ 1; !- Hour 24
+
+Schedule:Day:Hourly,
+ LightingDay_EELighting, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.06875, !- Hour 1
+ 0.06875, !- Hour 2
+ 0.06875, !- Hour 3
+ 0.06875, !- Hour 4
+ 0.20625, !- Hour 5
+ 0.4296875, !- Hour 6
+ 0.48125, !- Hour 7
+ 0.4296875, !- Hour 8
+ 0.1890625, !- Hour 9
+ 0.12890625, !- Hour 10
+ 0.12890625, !- Hour 11
+ 0.12890625, !- Hour 12
+ 0.12890625, !- Hour 13
+ 0.12890625, !- Hour 14
+ 0.12890625, !- Hour 15
+ 0.2234375, !- Hour 16
+ 0.48125, !- Hour 17
+ 0.6703125, !- Hour 18
+ 0.90234375, !- Hour 19
+ 1, !- Hour 20
+ 1, !- Hour 21
+ 0.75625, !- Hour 22
+ 0.42109375, !- Hour 23
+ 0.171875; !- Hour 24
+
+Schedule:Day:Hourly,
+ RefrigeratorDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.8, !- Hour 1
+ 0.782696177062374, !- Hour 2
+ 0.765593561368209, !- Hour 3
+ 0.742857142857143, !- Hour 4
+ 0.731388329979879, !- Hour 5
+ 0.731388329979879, !- Hour 6
+ 0.759959758551308, !- Hour 7
+ 0.8, !- Hour 8
+ 0.817102615694165, !- Hour 9
+ 0.828571428571429, !- Hour 10
+ 0.8, !- Hour 11
+ 0.8, !- Hour 12
+ 0.839839034205231, !- Hour 13
+ 0.839839034205231, !- Hour 14
+ 0.828571428571429, !- Hour 15
+ 0.839839034205231, !- Hour 16
+ 0.885714285714286, !- Hour 17
+ 0.971428571428572, !- Hour 18
+ 1, !- Hour 19
+ 0.971428571428572, !- Hour 20
+ 0.942857142857143, !- Hour 21
+ 0.925553319919517, !- Hour 22
+ 0.885714285714286, !- Hour 23
+ 0.828571428571429; !- Hour 24
+
+Schedule:Day:Hourly,
+ MiscPlugLoadDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.607490272373541, !- Hour 1
+ 0.559338521400778, !- Hour 2
+ 0.552853437094682, !- Hour 3
+ 0.545071335927367, !- Hour 4
+ 0.524481193255512, !- Hour 5
+ 0.585278858625162, !- Hour 6
+ 0.676232166018158, !- Hour 7
+ 0.718547341115435, !- Hour 8
+ 0.607490272373541, !- Hour 9
+ 0.517023346303502, !- Hour 10
+ 0.529182879377432, !- Hour 11
+ 0.529345006485084, !- Hour 12
+ 0.520428015564202, !- Hour 13
+ 0.538424124513619, !- Hour 14
+ 0.568741893644617, !- Hour 15
+ 0.600356679636835, !- Hour 16
+ 0.71011673151751, !- Hour 17
+ 0.862678339818418, !- Hour 18
+ 0.936608300907912, !- Hour 19
+ 0.966763942931258, !- Hour 20
+ 1, !- Hour 21
+ 0.976653696498055, !- Hour 22
+ 0.845168612191959, !- Hour 23
+ 0.73443579766537; !- Hour 24
+
+Schedule:Day:Hourly,
+ CookingRangeDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.04715848452508, !- Hour 1
+ 0.04715848452508, !- Hour 2
+ 0.0235458911419424, !- Hour 3
+ 0.0235458911419424, !- Hour 4
+ 0.04715848452508, !- Hour 5
+ 0.0707043756670224, !- Hour 6
+ 0.165088046958378, !- Hour 7
+ 0.283017609391676, !- Hour 8
+ 0.306563500533618, !- Hour 9
+ 0.320771077908218, !- Hour 10
+ 0.283017609391676, !- Hour 11
+ 0.330176093916756, !- Hour 12
+ 0.377334578441836, !- Hour 13
+ 0.306563500533618, !- Hour 14
+ 0.292422625400213, !- Hour 15
+ 0.377334578441836, !- Hour 16
+ 0.613193703308431, !- Hour 17
+ 1, !- Hour 18
+ 0.778348452508004, !- Hour 19
+ 0.400947171824973, !- Hour 20
+ 0.235859124866596, !- Hour 21
+ 0.165088046958378, !- Hour 22
+ 0.103721985058698, !- Hour 23
+ 0.0707043756670224; !- Hour 24
+
+Schedule:Day:Hourly,
+ DishwasherWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.115858456545258, !- Hour 1
+ 0.0514758745041469, !- Hour 2
+ 0.0385691669671833, !- Hour 3
+ 0.0257379372520738, !- Hour 4
+ 0.0257379372520738, !- Hour 5
+ 0.0772138117562207, !- Hour 6
+ 0.154503101334295, !- Hour 7
+ 0.23179239091237, !- Hour 8
+ 0.437922322394519, !- Hour 9
+ 0.489398196898665, !- Hour 10
+ 0.425015614857555, !- Hour 11
+ 0.360633032816445, !- Hour 12
+ 0.309081680490443, !- Hour 13
+ 0.347726325279481, !- Hour 14
+ 0.28334374323837, !- Hour 15
+ 0.270437035701407, !- Hour 16
+ 0.28334374323837, !- Hour 17
+ 0.373464262531554, !- Hour 18
+ 0.656883483591778, !- Hour 19
+ 0.837199999999997, !- Hour 20
+ 0.682621420843852, !- Hour 21
+ 0.502304904435629, !- Hour 22
+ 0.334819617742518, !- Hour 23
+ 0.23179239091237; !- Hour 24
+
+Schedule:Day:Hourly,
+ DishwasherWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.124134060584205, !- Hour 1
+ 0.0551527226830148, !- Hour 2
+ 0.0413241074648395, !- Hour 3
+ 0.0275763613415074, !- Hour 4
+ 0.0275763613415074, !- Hour 5
+ 0.0827290840245222, !- Hour 6
+ 0.165539037143888, !- Hour 7
+ 0.248348990263252, !- Hour 8
+ 0.469202488279841, !- Hour 9
+ 0.524355210962856, !- Hour 10
+ 0.455373873061666, !- Hour 11
+ 0.386392535160476, !- Hour 12
+ 0.331158943382618, !- Hour 13
+ 0.3725639199423, !- Hour 14
+ 0.303582582041111, !- Hour 15
+ 0.289753966822935, !- Hour 16
+ 0.303582582041111, !- Hour 17
+ 0.400140281283808, !- Hour 18
+ 0.703803732419762, !- Hour 19
+ 0.897, !- Hour 20
+ 0.731380093761269, !- Hour 21
+ 0.538183826181031, !- Hour 22
+ 0.358735304724125, !- Hour 23
+ 0.248348990263252; !- Hour 24
+
+Schedule:Day:Hourly,
+ DishwasherVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesWasherWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0796474528960224, !- Hour 1
+ 0.0637009071877185, !- Hour 2
+ 0.0318078157711097, !- Hour 3
+ 0.0318078157711097, !- Hour 4
+ 0.0637009071877185, !- Hour 5
+ 0.0955939986043261, !- Hour 6
+ 0.191187997208654, !- Hour 7
+ 0.414354361479414, !- Hour 8
+ 0.62157418004187, !- Hour 9
+ 0.7332, !- Hour 10
+ 0.717253454291697, !- Hour 11
+ 0.637520725750175, !- Hour 12
+ 0.573734542916957, !- Hour 13
+ 0.510033635729239, !- Hour 14
+ 0.446247452896022, !- Hour 15
+ 0.414354361479414, !- Hour 16
+ 0.430300907187718, !- Hour 17
+ 0.414354361479414, !- Hour 18
+ 0.414354361479414, !- Hour 19
+ 0.414354361479414, !- Hour 20
+ 0.414354361479414, !- Hour 21
+ 0.398407815771109, !- Hour 22
+ 0.270920725750174, !- Hour 23
+ 0.143433635729239; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesWasherWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0974410327983253, !- Hour 1
+ 0.0779319609211445, !- Hour 2
+ 0.038913817166783, !- Hour 3
+ 0.038913817166783, !- Hour 4
+ 0.0779319609211445, !- Hour 5
+ 0.116950104675506, !- Hour 6
+ 0.233900209351012, !- Hour 7
+ 0.506922889043964, !- Hour 8
+ 0.760436496859734, !- Hour 9
+ 0.897, !- Hour 10
+ 0.877490928122819, !- Hour 11
+ 0.779945568736915, !- Hour 12
+ 0.701909281228193, !- Hour 13
+ 0.623977320307048, !- Hour 14
+ 0.545941032798325, !- Hour 15
+ 0.506922889043964, !- Hour 16
+ 0.526431960921144, !- Hour 17
+ 0.506922889043964, !- Hour 18
+ 0.506922889043964, !- Hour 19
+ 0.506922889043964, !- Hour 20
+ 0.506922889043964, !- Hour 21
+ 0.487413817166783, !- Hour 22
+ 0.331445568736915, !- Hour 23
+ 0.175477320307048; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesWasherVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ dhw_profile_day, !- Name
+ fraction, !- Schedule Type Limits Name
+ 0.006, !- Hour 1
+ 0.003, !- Hour 2
+ 0.001, !- Hour 3
+ 0.001, !- Hour 4
+ 0.003, !- Hour 5
+ 0.021, !- Hour 6
+ 0.075, !- Hour 7
+ 0.079, !- Hour 8
+ 0.076, !- Hour 9
+ 0.067, !- Hour 10
+ 0.061, !- Hour 11
+ 0.05, !- Hour 12
+ 0.042, !- Hour 13
+ 0.038, !- Hour 14
+ 0.033, !- Hour 15
+ 0.038, !- Hour 16
+ 0.043, !- Hour 17
+ 0.058, !- Hour 18
+ 0.068, !- Hour 19
+ 0.065, !- Hour 20
+ 0.06, !- Hour 21
+ 0.047, !- Hour 22
+ 0.041, !- Hour 23
+ 0.024; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesDryerWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0996818663838815, !- Hour 1
+ 0.0598091198303289, !- Hour 2
+ 0.0398727465535526, !- Hour 3
+ 0.0199363732767763, !- Hour 4
+ 0.0398727465535526, !- Hour 5
+ 0.0598091198303289, !- Hour 6
+ 0.15949098621421, !- Hour 7
+ 0.31898197242842, !- Hour 8
+ 0.486427370202556, !- Hour 9
+ 0.685791102970318, !- Hour 10
+ 0.785472969354199, !- Hour 11
+ 0.817391304347826, !- Hour 12
+ 0.745600222800647, !- Hour 13
+ 0.677836691410393, !- Hour 14
+ 0.610073160020138, !- Hour 15
+ 0.578154825026511, !- Hour 16
+ 0.558218451749735, !- Hour 17
+ 0.546236490032885, !- Hour 18
+ 0.518345705196183, !- Hour 19
+ 0.510391293636256, !- Hour 20
+ 0.526300116756109, !- Hour 21
+ 0.546236490032885, !- Hour 22
+ 0.438600212089077, !- Hour 23
+ 0.239236479321316; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesDryerWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.121951219512195, !- Hour 1
+ 0.0731707317073171, !- Hour 2
+ 0.0487804878048781, !- Hour 3
+ 0.024390243902439, !- Hour 4
+ 0.0487804878048781, !- Hour 5
+ 0.0731707317073171, !- Hour 6
+ 0.195121951219512, !- Hour 7
+ 0.390243902439024, !- Hour 8
+ 0.59509731460951, !- Hour 9
+ 0.8389997536339, !- Hour 10
+ 0.960950973146095, !- Hour 11
+ 1, !- Hour 12
+ 0.912170485341217, !- Hour 13
+ 0.829268292682927, !- Hour 14
+ 0.746366100024637, !- Hour 15
+ 0.707317073170732, !- Hour 16
+ 0.682926829268293, !- Hour 17
+ 0.668268046316827, !- Hour 18
+ 0.634146341463415, !- Hour 19
+ 0.624414880512441, !- Hour 20
+ 0.643877802414388, !- Hour 21
+ 0.668268046316827, !- Hour 22
+ 0.536585365853659, !- Hour 23
+ 0.292682926829268; !- Hour 24
+
+Schedule:Day:Hourly,
+ ClothesDryerVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ SinksWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.160052687884461, !- Hour 1
+ 0.0767484287242575, !- Hour 2
+ 0.0575330636533838, !- Hour 3
+ 0.0575330636533838, !- Hour 4
+ 0.0767484287242575, !- Hour 5
+ 0.204926216902916, !- Hour 6
+ 0.480271095212623, !- Hour 7
+ 0.704412677186414, !- Hour 8
+ 0.742843407328163, !- Hour 9
+ 0.697969878309708, !- Hour 10
+ 0.614778650708746, !- Hour 11
+ 0.563462322813587, !- Hour 12
+ 0.550689756619418, !- Hour 13
+ 0.512259026477668, !- Hour 14
+ 0.467385497459214, !- Hour 15
+ 0.486600862530089, !- Hour 16
+ 0.544246957742712, !- Hour 17
+ 0.736400608451458, !- Hour 18
+ 0.84525, !- Hour 19
+ 0.781274137469912, !- Hour 20
+ 0.640323783097085, !- Hour 21
+ 0.544246957742712, !- Hour 22
+ 0.44828316394758, !- Hour 23
+ 0.307332809574753; !- Hour 24
+
+Schedule:Day:Hourly,
+ SinksWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.169851832040653, !- Hour 1
+ 0.0814473121155389, !- Hour 2
+ 0.0610554961219577, !- Hour 3
+ 0.0610554961219577, !- Hour 4
+ 0.0814473121155389, !- Hour 5
+ 0.217472719978604, !- Hour 6
+ 0.509675447980744, !- Hour 7
+ 0.747539983952929, !- Hour 8
+ 0.788323615940091, !- Hour 9
+ 0.74070272800214, !- Hour 10
+ 0.652418159935812, !- Hour 11
+ 0.597960016047071, !- Hour 12
+ 0.58440545600428, !- Hour 13
+ 0.543621824017117, !- Hour 14
+ 0.496000936079166, !- Hour 15
+ 0.516392752072746, !- Hour 16
+ 0.57756820005349, !- Hour 17
+ 0.781486359989302, !- Hour 18
+ 0.897, !- Hour 19
+ 0.829107247927254, !- Hour 20
+ 0.679527280021396, !- Hour 21
+ 0.57756820005349, !- Hour 22
+ 0.47572907194437, !- Hour 23
+ 0.326149104038513; !- Hour 24
+
+Schedule:Day:Hourly,
+ SinksVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ ShowersWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.076044361285933, !- Hour 1
+ 0.0345332539547544, !- Hour 2
+ 0.0242088790610646, !- Hour 3
+ 0.0345332539547544, !- Hour 4
+ 0.0968355162442594, !- Hour 5
+ 0.366693315189659, !- Hour 6
+ 0.837199999999997, !- Hour 7
+ 0.830293349209049, !- Hour 8
+ 0.674644497363497, !- Hour 9
+ 0.529320020411635, !- Hour 10
+ 0.425506650790951, !- Hour 11
+ 0.335577785337642, !- Hour 12
+ 0.242159993196122, !- Hour 13
+ 0.207555536655894, !- Hour 14
+ 0.179857730906617, !- Hour 15
+ 0.186764381697567, !- Hour 16
+ 0.214462187446844, !- Hour 17
+ 0.27676444973635, !- Hour 18
+ 0.300973328797414, !- Hour 19
+ 0.300973328797414, !- Hour 20
+ 0.297484402109202, !- Hour 21
+ 0.290577751318252, !- Hour 22
+ 0.207555536655894, !- Hour 23
+ 0.148742201054601; !- Hour 24
+
+Schedule:Day:Hourly,
+ ShowersWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0814761013777853, !- Hour 1
+ 0.0369999149515223, !- Hour 2
+ 0.0259380847082837, !- Hour 3
+ 0.0369999149515223, !- Hour 4
+ 0.103752338833135, !- Hour 5
+ 0.392885694846062, !- Hour 6
+ 0.897, !- Hour 7
+ 0.889600017009696, !- Hour 8
+ 0.722833390032318, !- Hour 9
+ 0.56712859329818, !- Hour 10
+ 0.455899982990304, !- Hour 11
+ 0.359547627147474, !- Hour 12
+ 0.259457135567274, !- Hour 13
+ 0.222380932131315, !- Hour 14
+ 0.19270471168566, !- Hour 15
+ 0.200104694675966, !- Hour 16
+ 0.229780915121619, !- Hour 17
+ 0.296533339003232, !- Hour 18
+ 0.322471423711515, !- Hour 19
+ 0.322471423711515, !- Hour 20
+ 0.318733287974145, !- Hour 21
+ 0.311333304983841, !- Hour 22
+ 0.222380932131315, !- Hour 23
+ 0.159366643987073; !- Hour 24
+
+Schedule:Day:Hourly,
+ ShowersVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ BathsWeekday, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0492758944582015, !- Hour 1
+ 0.0246379472291013, !- Hour 2
+ 0.0246379472291013, !- Hour 3
+ 0.0246379472291013, !- Hour 4
+ 0.0492758944582015, !- Hour 5
+ 0.123189736145504, !- Hour 6
+ 0.295719195628041, !- Hour 7
+ 0.369633037315344, !- Hour 8
+ 0.418908931773546, !- Hour 9
+ 0.369633037315344, !- Hour 10
+ 0.295719195628041, !- Hour 11
+ 0.221741525061908, !- Hour 12
+ 0.197103577832807, !- Hour 13
+ 0.147827683374605, !- Hour 14
+ 0.147827683374605, !- Hour 15
+ 0.147827683374605, !- Hour 16
+ 0.24644330116984, !- Hour 17
+ 0.295719195628041, !- Hour 18
+ 0.492886602339681, !- Hour 19
+ 0.640714285714285, !- Hour 20
+ 0.640714285714285, !- Hour 21
+ 0.492886602339681, !- Hour 22
+ 0.418908931773546, !- Hour 23
+ 0.24644330116984; !- Hour 24
+
+Schedule:Day:Hourly,
+ BathsWeekend, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.0689862522414824, !- Hour 1
+ 0.0344931261207412, !- Hour 2
+ 0.0344931261207412, !- Hour 3
+ 0.0344931261207412, !- Hour 4
+ 0.0689862522414824, !- Hour 5
+ 0.172465630603706, !- Hour 6
+ 0.414006873879259, !- Hour 7
+ 0.517486252241482, !- Hour 8
+ 0.586472504482965, !- Hour 9
+ 0.517486252241482, !- Hour 10
+ 0.414006873879259, !- Hour 11
+ 0.310438135086671, !- Hour 12
+ 0.27594500896593, !- Hour 13
+ 0.206958756724447, !- Hour 14
+ 0.206958756724447, !- Hour 15
+ 0.206958756724447, !- Hour 16
+ 0.345020621637776, !- Hour 17
+ 0.414006873879259, !- Hour 18
+ 0.690041243275553, !- Hour 19
+ 0.897, !- Hour 20
+ 0.897, !- Hour 21
+ 0.690041243275553, !- Hour 22
+ 0.586472504482965, !- Hour 23
+ 0.345020621637776; !- Hour 24
+
+Schedule:Day:Hourly,
+ BathsVacation, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ DHWDistDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0.142553149370226, !- Hour 1
+ 0.0764866759550322, !- Hour 2
+ 0.0516611840277747, !- Hour 3
+ 0.0584039294664903, !- Hour 4
+ 0.121469841058603, !- Hour 5
+ 0.366180268451559, !- Hour 6
+ 0.833258955739606, !- Hour 7
+ 0.999999987228391, !- Hour 8
+ 0.995483090581232, !- Hour 9
+ 0.916474762598139, !- Hour 10
+ 0.800898393293271, !- Hour 11
+ 0.682564390940485, !- Hour 12
+ 0.590066600109555, !- Hour 13
+ 0.522371887032053, !- Hour 14
+ 0.466005974303267, !- Hour 15
+ 0.46573704253214, !- Hour 16
+ 0.527514234916123, !- Hour 17
+ 0.637905701335668, !- Hour 18
+ 0.727588642310272, !- Hour 19
+ 0.732551127624518, !- Hour 20
+ 0.681468471942116, !- Hour 21
+ 0.610804704600985, !- Hour 22
+ 0.464292318119835, !- Hour 23
+ 0.299867724445383; !- Hour 24
+
+Schedule:Day:Hourly,
+ WinterLoadDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 0, !- Hour 1
+ 0, !- Hour 2
+ 0, !- Hour 3
+ 0, !- Hour 4
+ 0, !- Hour 5
+ 0, !- Hour 6
+ 0, !- Hour 7
+ 0, !- Hour 8
+ 0, !- Hour 9
+ 0, !- Hour 10
+ 0, !- Hour 11
+ 0, !- Hour 12
+ 0, !- Hour 13
+ 0, !- Hour 14
+ 0, !- Hour 15
+ 0, !- Hour 16
+ 0, !- Hour 17
+ 0, !- Hour 18
+ 0, !- Hour 19
+ 0, !- Hour 20
+ 0, !- Hour 21
+ 0, !- Hour 22
+ 0, !- Hour 23
+ 0; !- Hour 24
+
+Schedule:Day:Hourly,
+ SummerLoadDay, !- Name
+ Fraction, !- Schedule Type Limits Name
+ 1, !- Hour 1
+ 1, !- Hour 2
+ 1, !- Hour 3
+ 1, !- Hour 4
+ 1, !- Hour 5
+ 1, !- Hour 6
+ 1, !- Hour 7
+ 1, !- Hour 8
+ 1, !- Hour 9
+ 1, !- Hour 10
+ 1, !- Hour 11
+ 1, !- Hour 12
+ 1, !- Hour 13
+ 1, !- Hour 14
+ 1, !- Hour 15
+ 1, !- Hour 16
+ 1, !- Hour 17
+ 1, !- Hour 18
+ 1, !- Hour 19
+ 1, !- Hour 20
+ 1, !- Hour 21
+ 1, !- Hour 22
+ 1, !- Hour 23
+ 1; !- Hour 24
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:COMPACT ===========
+
+Schedule:Week:Compact,
+ RefrigeratorWeek, !- Name
+ For: AllDays, !- DayType List 1
+ RefrigeratorDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ MiscPlugLoadWeek, !- Name
+ For: AllDays, !- DayType List 1
+ MiscPlugLoadDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ CookingRangeWeek, !- Name
+ For: AllDays, !- DayType List 1
+ CookingRangeDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ DishwasherWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ DishwasherWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ DishwasherVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ DishwasherWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ ClothesWasherWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ ClothesWasherWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ ClothesWasherVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ ClothesWasherWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ dhw_profile_week, !- Name
+ AllDays, !- DayType List 1
+ dhw_profile_day; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ ClothesDryerWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ ClothesDryerWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ ClothesDryerVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ ClothesDryerWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ SinksWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ SinksWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ SinksVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ SinksWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ ShowersWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ ShowersWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ ShowersVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ ShowersWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ BathsWeek, !- Name
+ For: Weekdays, !- DayType List 1
+ BathsWeekday, !- Schedule:Day Name 1
+ For: CustomDay1, !- DayType List 2
+ BathsVacation, !- Schedule:Day Name 2
+ For: AllOtherDays, !- DayType List 3
+ BathsWeekend; !- Schedule:Day Name 3
+
+Schedule:Week:Compact,
+ DHWDistWeek, !- Name
+ For: AllDays, !- DayType List 1
+ DHWDistDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ OccupancyWeek, !- Name
+ AllDays, !- DayType List 1
+ OccupancyDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek_EELighting, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay_EELighting; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek_EELighting_interior_controls, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay_EELighting_OccSensors; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ LightingProfileWeek_EELighting_garage_controls, !- Name
+ For: AllDays, !- DayType List 1
+ LightingDay_EELighting_Garage_OccSensors; !- Schedule:Day Name 1
+
+Schedule:Week:Compact,
+ ExteriorLightingProfileWeek, !- Name
+ For: AllDays, !- DayType List 1
+ ExteriorLightingDay; !- Schedule:Day Name 1
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR ===========
+
+Schedule:Year,
+ Occupancy, !- Name
+ Fraction, !- Schedule Type Limits Name
+ OccupancyWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLighting, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLightingHE, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek_EELighting, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLightingHE_OS, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek_EELighting_interior_controls, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ InteriorLightingHE_VS, !- Name
+ Fraction, !- Schedule Type Limits Name
+ LightingProfileWeek_EELighting_garage_controls, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ ExteriorLighting, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ExteriorLightingProfileWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Refrigerator, !- Name
+ Fraction, !- Schedule Type Limits Name
+ RefrigeratorWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ MiscPlugLoad, !- Name
+ Fraction, !- Schedule Type Limits Name
+ MiscPlugLoadWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ CookingRange, !- Name
+ Fraction, !- Schedule Type Limits Name
+ CookingRangeWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ dhw_sch, !- Name
+ fraction, !- Schedule Type Limits Name
+ dhw_profile_week, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Dishwasher, !- Name
+ Fraction, !- Schedule Type Limits Name
+ DishwasherWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ ClothesWasher, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ClothesWasherWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ ClothesDryer, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ClothesDryerWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Sinks, !- Name
+ Fraction, !- Schedule Type Limits Name
+ SinksWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Showers, !- Name
+ Fraction, !- Schedule Type Limits Name
+ ShowersWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ Baths, !- Name
+ Fraction, !- Schedule Type Limits Name
+ BathsWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+Schedule:Year,
+ DHWDist, !- Name
+ Fraction, !- Schedule Type Limits Name
+ DHWDistWeek, !- Schedule:Week Name 1
+ 1, !- Start Month 1
+ 1, !- Start Day 1
+ 12, !- End Month 1
+ 31; !- End Day 1
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT ===========
+
+Schedule:Compact,
+ BA_shower_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 1:00, 0.00174682444444444,
+ !- Field 4
+ Until: 2:00, 0.000794011111111111,
+ !- Field 6
+ Until: 3:00, 0.000476406666666667,
+ !- Field 8
+ Until: 4:00, 0.000794011111111111,
+ !- Field 10
+ Until: 5:00, 0.00222323111111111,
+ !- Field 12
+ Until: 6:00, 0.00825771555555556,
+ !- Field 14
+ Until: 7:00, 0.0187386622222222,
+ !- Field 16
+ Until: 8:00, 0.01857986, !- Field 18
+ Until: 9:00, 0.0150862111111111,
+ !- Field 20
+ Until: 10:00, 0.0117513644444444,
+ !- Field 22
+ Until: 11:00, 0.00952813333333333,
+ !- Field 24
+ Until: 12:00, 0.00746370444444444,
+ !- Field 26
+ Until: 13:00, 0.00539927555555556,
+ !- Field 28
+ Until: 14:00, 0.00460526444444444,
+ !- Field 30
+ Until: 15:00, 0.00412885777777778,
+ !- Field 32
+ Until: 16:00, 0.00397005555555556,
+ !- Field 34
+ Until: 17:00, 0.00476406666666667,
+ !- Field 36
+ Until: 18:00, 0.00619328666666667,
+ !- Field 38
+ Until: 19:00, 0.00666969333333333,
+ !- Field 40
+ Until: 20:00, 0.00666969333333333,
+ !- Field 42
+ Until: 21:00, 0.00666969333333333,
+ !- Field 44
+ Until: 22:00, 0.00651089111111111,
+ !- Field 46
+ Until: 23:00, 0.00460526444444444,
+ !- Field 48
+ Until: 24:00, 0.00333484666666667;
+ !- Field 50
+
+Schedule:Compact,
+ BA_bath_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 1:00, 0.000163090909090909,
+ !- Field 4
+ Until: 2:00, 8.15454545454545e-05,
+ !- Field 6
+ Until: 3:00, 8.15454545454545e-05,
+ !- Field 8
+ Until: 4:00, 8.15454545454545e-05,
+ !- Field 10
+ Until: 5:00, 0.000163090909090909,
+ !- Field 12
+ Until: 6:00, 0.000387340909090909,
+ !- Field 14
+ Until: 7:00, 0.000937772727272727,
+ !- Field 16
+ Until: 8:00, 0.00118240909090909,
+ !- Field 18
+ Until: 9:00, 0.0013455, !- Field 20
+ Until: 10:00, 0.00118240909090909,
+ !- Field 22
+ Until: 11:00, 0.000937772727272727,
+ !- Field 24
+ Until: 12:00, 0.000713522727272727,
+ !- Field 26
+ Until: 13:00, 0.000631977272727273,
+ !- Field 28
+ Until: 14:00, 0.000468886363636364,
+ !- Field 30
+ Until: 15:00, 0.000468886363636364,
+ !- Field 32
+ Until: 16:00, 0.000468886363636364,
+ !- Field 34
+ Until: 17:00, 0.000795068181818182,
+ !- Field 36
+ Until: 18:00, 0.000937772727272727,
+ !- Field 38
+ Until: 19:00, 0.00156975,!- Field 40
+ Until: 20:00, 0.00203863636363636,
+ !- Field 42
+ Until: 21:00, 0.00203863636363636,
+ !- Field 44
+ Until: 22:00, 0.00156975,!- Field 46
+ Until: 23:00, 0.0013455, !- Field 48
+ Until: 24:00, 0.000795068181818182;
+ !- Field 50
+
+Schedule:Compact,
+ BA_sink_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 1:00, 0.00387388596491228,
+ !- Field 4
+ Until: 2:00, 0.00193694298245614,
+ !- Field 6
+ Until: 3:00, 0.00138353070175439,
+ !- Field 8
+ Until: 4:00, 0.00138353070175439,
+ !- Field 10
+ Until: 5:00, 0.00193694298245614,
+ !- Field 12
+ Until: 6:00, 0.00498071052631579,
+ !- Field 14
+ Until: 7:00, 0.0116216578947368,
+ !- Field 16
+ Until: 8:00, 0.0171557807017544,
+ !- Field 18
+ Until: 9:00, 0.0182626052631579,
+ !- Field 20
+ Until: 10:00, 0.0171557807017544,
+ !- Field 22
+ Until: 11:00, 0.0149421315789474,
+ !- Field 24
+ Until: 12:00, 0.0138353070175439,
+ !- Field 26
+ Until: 13:00, 0.013558600877193,
+ !- Field 28
+ Until: 14:00, 0.0124517763157895,
+ !- Field 30
+ Until: 15:00, 0.0118983640350877,
+ !- Field 32
+ Until: 16:00, 0.011344951754386,
+ !- Field 34
+ Until: 17:00, 0.0132818947368421,
+ !- Field 36
+ Until: 18:00, 0.017985899122807,
+ !- Field 38
+ Until: 19:00, 0.0207529605263158,
+ !- Field 40
+ Until: 20:00, 0.0190927236842105,
+ !- Field 42
+ Until: 21:00, 0.01577225,!- Field 44
+ Until: 22:00, 0.0132818947368421,
+ !- Field 46
+ Until: 23:00, 0.0110682456140351,
+ !- Field 48
+ Until: 24:00, 0.00747106578947368;
+ !- Field 50
+
+Schedule:Compact,
+ activity_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 117.28; !- Field 4
+
+Schedule:Compact,
+ inf_sch, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 1; !- Field 4
+
+Schedule:Compact,
+ zone_control_type, !- Name
+ control_type, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 4; !- Field 4
+
+Schedule:Compact,
+ shading_2012iecc, !- Name
+ fraction, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 0; !- Field 4
+
+Schedule:Compact,
+ shading_2009iecc, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 5/30, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 0.85, !- Field 4
+ Through: 8/31, !- Field 5
+ For: AllDays, !- Field 6
+ Until 24:00, !- Field 7
+ 0.7, !- Field 8
+ Through: 12/31, !- Field 9
+ For: AllDays, !- Field 10
+ Until: 24:00, 0.85; !- Field 12
+
+Schedule:Compact,
+ dhw_setpt, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 48; !- Field 4
+
+Schedule:Compact,
+ dhw_setpt_hpwh, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until 24:00, !- Field 3
+ 44; !- Field 4
+
+Schedule:Compact,
+ Supply-Air-Temp-Sch, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 12; !- Field 4
+
+Schedule:Compact,
+ always_avail, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 1; !- Field 4
+
+Schedule:Compact,
+ always_off, !- Name
+ On/Off, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 0; !- Field 4
+
+Schedule:Compact,
+ heating_sch_HRef, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 20; !- Field 4
+
+Schedule:Compact,
+ cooling_sch_HRef, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 25.55; !- Field 4
+
+Schedule:Compact,
+ heating_sch, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 22.2222222222223;
+ !- Field 4
+
+Schedule:Compact,
+ cooling_sch, !- Name
+ Temperature, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 23.888888888889;
+ !- Field 4
+
+Schedule:Compact,
+ fan_cycle, !- Name
+ any number, !- Schedule Type Limits Name
+ Through: 12/31, !- Field 1
+ For: AllDays, !- Field 2
+ Until: 24:00, 0; !- Field 4
+
+
+!- =========== ALL OBJECTS IN CLASS: SCHEDULE:CONSTANT ===========
+
+Schedule:Constant,DWWaterTempSchedule,Temperature,48.8888888888889;
+Schedule:Constant,CWWaterTempSchedule,Temperature,48.8888888888889;
+Schedule:Constant,SinkSensSchedule,Fraction,0.687777777777778;
+Schedule:Constant,SinkLatSchedule,Fraction,0.312222222222222;
+Schedule:Constant,ShowerSensSchedule,Fraction,0.51280276816609;
+Schedule:Constant,ShowerLatSchedule,Fraction,0.48719723183391;
+Schedule:Constant,BathSensSchedule,Fraction,1;
+Schedule:Constant,BathLatSchedule,Fraction,0;
+Schedule:Constant,SSBWaterTempSchedule,Temperature,40.5555555555556;
+Schedule:Constant,WaterHeaterSP1Schedule,Temperature,48.8888888888889;
+Schedule:Constant,WaterHeaterSP2Schedule,Temperature,40.5555555555556;
+Schedule:Constant,DHWSupplySetpoint,Temperature,48.8888888888889;
+Schedule:Constant,boiler_setpt,Temperature,80;
+Schedule:Constant,Compressor Setpoint,Temperature,50;
+Schedule:Constant,DOAShightemp,Temperature,200;
+Schedule:Constant,DOASlowtemp,Temperature,-60;
+
+!- =========== ALL OBJECTS IN CLASS: MATERIAL ===========
+
+
+Material,
+ sheathing_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.031115, !- Thickness {m}
+ 0.035329, !- Conductivity {W/m-K}
+ 20.1, !- Density {kg/m3}
+ 1465.415; !- Specific Heat {J/kg-K}
+
+Material,
+ ceil_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.444461299067702, !- Thickness {m}
+ 0.0617176, !- Conductivity {W/m-K}
+ 41.9286, !- Density {kg/m3}
+ 776.25126; !- Specific Heat {J/kg-K}
+
+Material,
+ floor_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.000254, !- Thickness {m}
+ 12.989536, !- Conductivity {W/m-K}
+ 55.074, !- Density {kg/m3}
+ 916.9311; !- Specific Heat {J/kg-K}
+
+Material,
+ bsmtwall_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.000254, !- Thickness {m}
+ 10.84384, !- Conductivity {W/m-K}
+ 120.801, !- Density {kg/m3}
+ 1036.25775; !- Specific Heat {J/kg-K}
+
+Material,
+ crawlwall_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.000254, !- Thickness {m}
+ 10.84384, !- Conductivity {W/m-K}
+ 120.801, !- Density {kg/m3}
+ 1036.25775; !- Specific Heat {J/kg-K}
+
+Material,
+ wall_consol_layer, !- Name
+ Rough, !- Roughness
+ 0.1397, !- Thickness {m}
+ 0.057165, !- Conductivity {W/m-K}
+ 120.801, !- Density {kg/m3}
+ 1036.25775; !- Specific Heat {J/kg-K}
+
+Material,
+ Very High Reflectivity Surface, !- Name
+ Smooth, !- Roughness
+ 0.0005, !- Thickness {m}
+ 237, !- Conductivity {W/m-K}
+ 2702, !- Density {kg/m3}
+ 903, !- Specific Heat {J/kg-K}
+ 0.90, !- Thermal Absorptance
+ 0.05, !- Solar Absorptance
+ 0.05; !- Visible Absorptance
+
+Material,
+ GypsumBoard-5/16in, !- Name
+ Rough, !- Roughness
+ 7.93953E-03, !- Thickness {m}
+ 0.1586200, !- Conductivity {W/m-K}
+ 640, !- Density {kg/m3}
+ 1129.6, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.4, !- Solar Absorptance
+ 0.1; !- Visible Absorptance
+
+Material,
+ CopperPipe, !- Name
+ MediumRough, !- Roughness
+ 1.90500386169072E-02, !- Thickness {m}
+ 401, !- Conductivity {W/m-K}
+ 2243.000, !- Density {kg/m3}
+ 837.0000, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.6500000, !- Solar Absorptance
+ 0.6500000; !- Visible Absorptance
+
+Material,
+ F08 Metal surface, !- Name
+ Smooth, !- Roughness
+ 0.0008, !- Thickness {m}
+ 45.28, !- Conductivity {W/m-K}
+ 7824, !- Density {kg/m3}
+ 500; !- Specific Heat {J/kg-K}
+
+Material,
+ Concrete_4in, !- Name
+ Rough, !- Roughness
+ 0.1014984, !- Thickness {m}
+ 1.312098, !- Conductivity {W/m-K}
+ 2242.8, !- Density {kg/m3}
+ 465.2; !- Specific Heat {J/kg-K}
+
+Material,
+ Asphalt_shingle, !- Name
+ MediumRough, !- Roughness
+ 6.33985285170672E-03, !- Thickness {m}
+ 0.08186, !- Conductivity {W/m-K}
+ 1121.2917044623, !- Density {kg/m3}
+ 1255.20000949809, !- Specific Heat {J/kg-K}
+ , !- Thermal Absorptance
+ 0.75; !- Solar Absorptance
+
+Material,
+ Wood_shingle, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 0.11388, !- Conductivity {W/m-K}
+ 426.090847695673, !- Density {kg/m3}
+ 1631.76001234752; !- Specific Heat {J/kg-K}
+
+Material,
+ Slate_shingle, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 1.44219, !- Conductivity {W/m-K}
+ 1601.845292089, !- Density {kg/m3}
+ 1255.20000949809; !- Specific Heat {J/kg-K}
+
+Material,
+ cement_stucco, !- Name
+ MediumSmooth, !- Roughness
+ 1.905E-02, !- Thickness {m}
+ 0.721, !- Conductivity {W/m-K}
+ 1865.58, !- Density {kg/m3}
+ 878.640006648665; !- Specific Heat {J/kg-K}
+
+Material,
+ syn_stucco, !- Name
+ MediumSmooth, !- Roughness
+ 0.3048E-02, !- Thickness {m}
+ 8.65E-02, !- Conductivity {W/m-K}
+ 400, !- Density {kg/m3}
+ 878.640006648665; !- Specific Heat {J/kg-K}
+
+Material,
+ Drywall_1/2in, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 0.16009, !- Conductivity {W/m-K}
+ 800.922646044499, !- Density {kg/m3}
+ 1087.84000823168; !- Specific Heat {J/kg-K}
+
+Material,
+ OSB_5/8in, !- Name
+ MediumSmooth, !- Roughness
+ 0.015875032180756, !- Thickness {m}
+ 0.1163, !- Conductivity {W/m-K}
+ 544.627399310259, !- Density {kg/m3}
+ 1213.36000918149; !- Specific Heat {J/kg-K}
+
+Material,
+ OSB_7/16in, !- Name
+ MediumSmooth, !- Roughness
+ 0.0111125, !- Thickness {m}
+ 0.1163, !- Conductivity {W/m-K}
+ 544.627399310259, !- Density {kg/m3}
+ 1213.36000918149; !- Specific Heat {J/kg-K}
+
+Material,
+ Blown_R30, !- Name
+ MediumRough, !- Roughness
+ 0.212598430964684, !- Thickness {m}
+ 0.04119, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062; !- Specific Heat {J/kg-K}
+
+Material,
+ Blown_R30_top, !- Name
+ MediumRough, !- Roughness
+ 0.117348237880148, !- Thickness {m}
+ 0.04119, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Plywood_3/4in, !- Name
+ Rough, !- Roughness
+ 0.01905, !- Thickness {m}
+ 0.1154577, !- Conductivity {W/m-K}
+ 544.68, !- Density {kg/m3}
+ 674.54, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Batt_R19, !- Name
+ MediumRough, !- Roughness
+ 2.54000514892096E-02, !- Thickness {m}
+ 3.47522010738099E-03, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Lumber_2x4, !- Name
+ Rough , !- Roughness
+ 0.0890016, !- Thickness {m}
+ 0.1154577, !- Conductivity {W/m-K}
+ 512.64, !- Density {kg/m3}
+ 767.58, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Carpet_n_pad, !- Name
+ MediumSmooth, !- Roughness
+ 2.54000514892096E-02, !- Thickness {m}
+ 6.01314018580031E-02, !- Conductivity {W/m-K}
+ 32.03690584178, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ Batt_R13, !- Name
+ MediumRough, !- Roughness
+ 0.0889, !- Thickness {m}
+ 0.03876, !- Conductivity {W/m-K}
+ 9.61107175253399, !- Density {kg/m3}
+ 836.800006332062, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ OSB_1/2in, !- Name
+ MediumSmooth, !- Roughness
+ 1.27000257446048E-02, !- Thickness {m}
+ 0.1163, !- Conductivity {W/m-K}
+ 544.627399310259, !- Density {kg/m3}
+ 1213.36000918149, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ soil_12in, !- Name
+ Rough, !- Roughness
+ 0.3048, !- Thickness {m}
+ 1.731, !- Conductivity {W/m-K}
+ 1842.3, !- Density {kg/m3}
+ 232.6, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.7, !- Solar Absorptance
+ 0.7; !- Visible Absorptance
+
+Material,
+ door_const, !- Name
+ Smooth, !- Roughness
+ 0.0422695734864227, !- Thickness {m}
+ 0.0720096, !- Conductivity {W/m-K}
+ 512.64, !- Density {kg/m3}
+ 767.58; !- Specific Heat {J/kg-K}
+
+Material,
+ Gyp_board_1/2in, !- Name
+ Rough, !- Roughness
+ 0.01271016, !- Thickness {m}
+ 0.1586200, !- Conductivity {W/m-K}
+ 640, !- Density {kg/m3}
+ 1129.6, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.4, !- Solar Absorptance
+ 0.1; !- Visible Absorptance
+
+Material,
+ Std Wood 6inch, !- Name
+ MediumSmooth, !- Roughness
+ 0.15, !- Thickness {m}
+ 0.12, !- Conductivity {W/m-K}
+ 540.0000, !- Density {kg/m3}
+ 1210, !- Specific Heat {J/kg-K}
+ 0.9000000, !- Thermal Absorptance
+ 0.7000000, !- Solar Absorptance
+ 0.7000000; !- Visible Absorptance
+
+Material,
+ Pipe Insulation, !- Name
+ VeryRough, !- Roughness
+ 0.0127032520325203, !- Thickness {m}
+ 0.03317175, !- Conductivity {W/m-K}
+ 91.0, !- Density {kg/m3}
+ 836.0, !- Specific Heat {J/kg-K}
+ 0.9, !- Thermal Absorptance
+ 0.5, !- Solar Absorptance
+ 0.5; !- Visible Absorptance
+
+
+!- =========== ALL OBJECTS IN CLASS: MATERIAL:NOMASS ===========
+
+Material:NoMass,
+ Manf_wall_airgap, !- Name
+ Smooth, !- Roughness
+ 0.12; !- Thermal Resistance {m2-K/W}
+
+Material:NoMass,
+ Bldg_paper_felt, !- Name
+ Smooth, !- Roughness
+ 1.05666113069662E-02; !- Thermal Resistance {m2-K/W}
+
+Material:NoMass,
+ R_high, !- Name
+ MediumRough, !- Roughness
+ 177; !- Thermal Resistance {m2-K/W}
+
+
+!- =========== ALL OBJECTS IN CLASS: MATERIAL:AIRGAP ===========
+
+Material:AirGap,
+ Air_4_in_vert, !- Name
+ 0.158499169604493; !- Thermal Resistance {m2-K/W}
+
+Material:AirGap,
+ 3/4in_air_space, !- Name
+ 0.08513; !- Thermal Resistance {m2-K/W}
+
+Material:AirGap,
+ 3/4in_Reflective_air_space, !- Name
+ 0.246554; !- Thermal Resistance {m2-K/W}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:SIMPLEGLAZINGSYSTEM ===========
+
+WindowMaterial:SimpleGlazingSystem,
+ Glass, !- Name
+ 1.70358, !- U-Factor {W/m2-K}
+ 0.3344, !- Solar Heat Gain Coefficient
+ 0.88; !- Visible Transmittance
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING ===========
+
+WindowMaterial:Glazing,
+ Clear Acrylic Plastic, !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.003, !- Thickness {m}
+ 0.92, !- Solar Transmittance at Normal Incidence
+ 0.05, !- Front Side Solar Reflectance at Normal Incidence
+ 0.05, !- Back Side Solar Reflectance at Normal Incidence
+ 0.92, !- Visible Transmittance at Normal Incidence
+ 0.05, !- Front Side Visible Reflectance at Normal Incidence
+ 0.05, !- Back Side Visible Reflectance at Normal Incidence
+ 0.00, !- Infrared Transmittance at Normal Incidence
+ 0.90, !- Front Side Infrared Hemispherical Emissivity
+ 0.90, !- Back Side Infrared Hemispherical Emissivity
+ 0.90; !- Conductivity {W/m-K}
+
+WindowMaterial:Glazing,
+ Diffusing Acrylic Plastic, !- Name
+ SpectralAverage, !- Optical Data Type
+ , !- Window Glass Spectral Data Set Name
+ 0.0022, !- Thickness {m}
+ 0.90, !- Solar Transmittance at Normal Incidence
+ 0.08, !- Front Side Solar Reflectance at Normal Incidence
+ 0.08, !- Back Side Solar Reflectance at Normal Incidence
+ 0.90, !- Visible Transmittance at Normal Incidence
+ 0.08, !- Front Side Visible Reflectance at Normal Incidence
+ 0.08, !- Back Side Visible Reflectance at Normal Incidence
+ 0.00, !- Infrared Transmittance at Normal Incidence
+ 0.90, !- Front Side Infrared Hemispherical Emissivity
+ 0.90, !- Back Side Infrared Hemispherical Emissivity
+ 0.90; !- Conductivity {W/m-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:BLIND ===========
+
+WindowMaterial:Blind,
+ int_blind, !- Name
+ Horizontal, !- Slat Orientation
+ 0.025, !- Slat Width {m}
+ 0.01875, !- Slat Separation {m}
+ 0.001, !- Slat Thickness {m}
+ 45.0, !- Slat Angle {deg}
+ 221, !- Slat Conductivity {W/m-K}
+ 0.0, !- Slat Beam Solar Transmittance
+ 0.5, !- Front Side Slat Beam Solar Reflectance
+ 0.5, !- Back Side Slat Beam Solar Reflectance
+ 0.0, !- Slat Diffuse Solar Transmittance
+ 0.5, !- Front Side Slat Diffuse Solar Reflectance
+ 0.5, !- Back Side Slat Diffuse Solar Reflectance
+ 0.0, !- Slat Beam Visible Transmittance
+ 0.5, !- Front Side Slat Beam Visible Reflectance
+ 0.5, !- Back Side Slat Beam Visible Reflectance
+ 0.0, !- Slat Diffuse Visible Transmittance
+ 0.5, !- Front Side Slat Diffuse Visible Reflectance
+ 0.5, !- Back Side Slat Diffuse Visible Reflectance
+ 0.0, !- Slat Infrared Hemispherical Transmittance
+ 0.9, !- Front Side Slat Infrared Hemispherical Emissivity
+ 0.9, !- Back Side Slat Infrared Hemispherical Emissivity
+ 0.050, !- Blind to Glass Distance {m}
+ 0.5, !- Blind Top Opening Multiplier
+ 0.5, !- Blind Bottom Opening Multiplier
+ 0.5, !- Blind Left Side Opening Multiplier
+ 0.5, !- Blind Right Side Opening Multiplier
+ , !- Minimum Slat Angle {deg}
+ ; !- Maximum Slat Angle {deg}
+
+
+!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION ===========
+
+Construction,
+ Exterior Wall, !- Name
+ syn_stucco, !- Outside Layer
+ sheathing_consol_layer, !- Layer 2
+ OSB_7/16in, !- Layer 3
+ wall_consol_layer, !- Layer 4
+ Drywall_1/2in; !- Layer 5
+
+Construction,
+ InteriorFurnishings, !- Name
+ Std Wood 6inch; !- Outside Layer
+
+Construction,
+ ceiling-floor-layer, !- Name
+ Lumber_2x4; !- Outside Layer
+
+Construction,
+ Exterior Floor, !- Name
+ floor_consol_layer, !- Outside Layer
+ Plywood_3/4in, !- Layer 2
+ Carpet_n_pad; !- Layer 3
+
+Construction,
+ Interior Floor, !- Name
+ Plywood_3/4in, !- Outside Layer
+ Carpet_n_pad; !- Layer 2
+
+Construction,
+ Interior Ceiling, !- Name
+ ceil_consol_layer, !- Outside Layer
+ Drywall_1/2in; !- Layer 2
+
+Construction,
+ attic floor, !- Name
+ Drywall_1/2in, !- Outside Layer
+ ceil_consol_layer; !- Layer 2
+
+Construction,
+ fndn_roof, !- Name
+ Carpet_n_pad, !- Outside Layer
+ Plywood_3/4in, !- Layer 2
+ ceil_consol_layer; !- Layer 3
+
+Construction,
+ interiorwall, !- Name
+ Drywall_1/2in, !- Outside Layer
+ OSB_5/8in, !- Layer 2
+ Drywall_1/2in; !- Layer 3
+
+Construction,
+ Interior Wall, !- Name
+ Drywall_1/2in, !- Outside Layer
+ Air_4_in_vert, !- Layer 2
+ Drywall_1/2in; !- Layer 3
+
+Construction,
+ Exterior Roof, !- Name
+ Asphalt_shingle, !- Outside Layer
+ OSB_1/2in; !- Layer 2
+
+Construction,
+ Exterior Window, !- Name
+ Glass; !- Outside Layer
+
+Construction,
+ Interior Window, !- Name
+ Glass; !- Outside Layer
+
+Construction,
+ Exterior Door, !- Name
+ door_const; !- Outside Layer
+
+Construction,
+ Interior Door, !- Name
+ door_const; !- Outside Layer
+
+Construction,
+ Gable_end, !- Name
+ cement_stucco, !- Outside Layer
+ Bldg_paper_felt, !- Layer 2
+ OSB_5/8in, !- Layer 3
+ Air_4_in_vert, !- Layer 4
+ Drywall_1/2in; !- Layer 5
+
+Construction,
+ crawl_floor, !- Name
+ R_high, !- Outside Layer
+ soil_12in; !- Layer 2
+
+Construction,
+ window_w_blinds, !- Name
+ Glass, !- Outside Layer
+ int_blind; !- Layer 2
+
+Construction,
+ Insulated Pipe, !- Name
+ Pipe Insulation, !- Outside Layer
+ CopperPipe; !- Layer 2
+
+Construction,
+ Plain Pipe, !- Name
+ CopperPipe; !- Outside Layer
+
+Construction,
+ TDD Pipe, !- Name
+ Very High Reflectivity Surface; !- Outside Layer
+
+Construction,
+ TDD Dome, !- Name
+ Clear Acrylic Plastic; !- Outside Layer
+
+Construction,
+ TDD Diffuser, !- Name
+ Diffusing Acrylic Plastic; !- Outside Layer
+
+
+!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES ===========
+
+GlobalGeometryRules,
+ LowerLeftCorner, !- Starting Vertex Position
+ Counterclockwise, !- Vertex Entry Direction
+ Relative; !- Coordinate System
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONE ===========
+
+Zone,
+ living_unit1, !- Name
+ 0.0, !- Direction of Relative North {deg}
+ 0.0, 0.0, 0.0, !- X,Y,Z {m}
+ , !- Type
+ 1; !- Multiplier
+
+Zone,
+ attic_unit1, !- Name
+ 0.0, !- Direction of Relative North {deg}
+ 0.0, 0.0, 0.0, !- X,Y,Z {m}
+ , !- Type
+ 1; !- Multiplier
+
+
+!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED ===========
+
+BuildingSurface:Detailed,
+ Inter zone floor 1, !- Name
+ Floor, !- Surface Type
+ Interior Floor, !- Construction Name
+ living_unit1, !- Zone Name
+ Adiabatic, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 2.60156341463415, !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ ceiling_unit1, !- Name
+ Ceiling, !- Surface Type
+ Interior Ceiling, !- Construction Name
+ living_unit1, !- Zone Name
+ Zone, !- Outside Boundary Condition
+ attic_unit1, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 5.19302682926829, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 0, 9.09981820971244, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Roof_front_unit1, !- Name
+ Roof, !- Surface Type
+ Exterior Roof, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 5.19302682926829, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 4.54990910485622, 6.6995631975537,
+ !- X,Y,Z 3 {m}
+ 0, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Roof_back_unit1, !- Name
+ Roof, !- Surface Type
+ Exterior Roof, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 0, 4.54990910485622, 6.6995631975537,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Roof_right_unit1, !- Name
+ Wall, !- Surface Type
+ Gable_end, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 3, !- Number of Vertices
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 1 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 3 {m}
+
+BuildingSurface:Detailed,
+ Roof_left_unit1, !- Name
+ Wall, !- Surface Type
+ Gable_end, !- Construction Name
+ attic_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 3, !- Number of Vertices
+ 0, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 1 {m}
+ 0, 0, 5.19302682926829, !- X,Y,Z 2 {m}
+ 0, 4.54990910485622, 6.6995631975537;
+ !- X,Y,Z 3 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldf_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 0.0101, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 0.0101, !- X,Y,Z 2 {m}
+ 12.1330909462833, 0, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 0, 0, 2.60156341463415; !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdr_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 0, 0.0101, !- X,Y,Z 1 {m}
+ 12.1330909462833, 9.09981820971244, 0.0101,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldb_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 9.09981820971244, 0.0101,
+ !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 0.0101, !- X,Y,Z 2 {m}
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdl_1.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 9.09981820971244, 0.0101, !- X,Y,Z 1 {m}
+ 0, 0, 0.0101, !- X,Y,Z 2 {m}
+ 0, 0, 2.60156341463415, !- X,Y,Z 3 {m}
+ 0, 9.09981820971244, 2.60156341463415;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldf_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 2.60156341463415, !- X,Y,Z 1 {m}
+ 12.1330909462833, 0, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 0, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 0, 0, 5.19302682926829; !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdr_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 0, 2.60156341463415,
+ !- X,Y,Z 1 {m}
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_ldb_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 12.1330909462833, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 2 {m}
+ 0, 9.09981820971244, 5.19302682926829,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 9.09981820971244, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Wall_sdl_2.unit1, !- Name
+ Wall, !- Surface Type
+ Exterior Wall, !- Construction Name
+ living_unit1, !- Zone Name
+ Outdoors, !- Outside Boundary Condition
+ , !- Outside Boundary Condition Object
+ SunExposed, !- Sun Exposure
+ WindExposed, !- Wind Exposure
+ , !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 9.09981820971244, 2.60156341463415,
+ !- X,Y,Z 1 {m}
+ 0, 0, 2.60156341463415, !- X,Y,Z 2 {m}
+ 0, 0, 5.19302682926829, !- X,Y,Z 3 {m}
+ 0, 9.09981820971244, 5.19302682926829;
+ !- X,Y,Z 4 {m}
+
+BuildingSurface:Detailed,
+ Floor_unit1, !- Name
+ Floor, !- Surface Type
+ Interior Floor, !- Construction Name
+ living_unit1, !- Zone Name
+ GroundSlabPreprocessorAverage, !- Outside Boundary Condition
+ surfPropOthSdCoefSlabAverage, !- Outside Boundary Condition Object
+ NoSun, !- Sun Exposure
+ NoWind, !- Wind Exposure
+ 0.0, !- View Factor to Ground
+ 4, !- Number of Vertices
+ 0, 0, 0.0101, !- X,Y,Z 1 {m}
+ 0, 9.09981820971244, 0.0101, !- X,Y,Z 2 {m}
+ 12.1330909462833, 9.09981820971244, 0.0101,
+ !- X,Y,Z 3 {m}
+ 12.1330909462833, 0, 0.0101; !- X,Y,Z 4 {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOW ===========
+
+Window,
+ Window_ldf_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldf_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_ldb_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldb_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 2.74190122145512, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdr_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdr_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdl_1.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdl_1.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_ldf_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldf_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_ldb_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_ldb_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 2.74190122145512, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdr_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdr_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+Window,
+ Window_sdl_2.unit1, !- Name
+ Exterior Window, !- Construction Name
+ Wall_sdl_2.unit1, !- Building Surface Name
+ , !- Frame and Divider Name
+ 1, !- Multiplier
+ 1, !- Starting X Coordinate {m}
+ 0.914634146341463, !- Starting Z Coordinate {m}
+ 2.70719591738945, !- Length {m}
+ 1.52439024390244; !- Height {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: DOOR ===========
+
+Door,
+ Door_ldb_unit1, !- Name
+ Exterior Door, !- Construction Name
+ Wall_ldb_1.unit1, !- Building Surface Name
+ 1, !- Multiplier
+ 0.5, !- Starting X Coordinate {m}
+ 0, !- Starting Z Coordinate {m}
+ 1.74190122145513, !- Length {m}
+ 2.13414634146341; !- Height {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: WINDOWSHADINGCONTROL ===========
+
+WindowShadingControl,
+ Shades-living_unit1, !- Name
+ living_unit1, !- Zone Name
+ 1, !- Shading Control Sequence Number
+ InteriorBlind, !- Shading Type
+ window_w_blinds, !- Construction with Shading Name
+ OnIfScheduleAllows, !- Shading Control Type
+ shading_2012iecc, !- Schedule Name
+ , !- Setpoint {W/m2, W or deg C}
+ Yes, !- Shading Control Is Scheduled
+ No, !- Glare Control Is Active
+ , !- Shading Device Material Name
+ , !- Type of Slat Angle Control for Blinds
+ , !- Slat Angle Schedule Name
+ , !- Setpoint 2 {W/m2 or deg C}
+ , !- Daylighting Control Object Name
+ Sequential, !- Multiple Surface Control Type
+ Window_ldf_1.unit1, !- Fenestration Surface 1 Name
+ Window_ldb_1.unit1, !- Fenestration Surface 2 Name
+ Window_sdr_1.unit1, !- Fenestration Surface 3 Name
+ Window_sdl_1.unit1, !- Fenestration Surface 4 Name
+ Window_ldf_2.unit1, !- Fenestration Surface 5 Name
+ Window_ldb_2.unit1, !- Fenestration Surface 6 Name
+ Window_sdr_2.unit1, !- Fenestration Surface 7 Name
+ Window_sdl_2.unit1; !- Fenestration Surface 8 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: INTERNALMASS ===========
+
+InternalMass,
+ Internalmass_unit1, !- Name
+ InteriorFurnishings, !- Construction Name
+ living_unit1, !- Zone or ZoneList Name
+ 9.89591078066915; !- Surface Area {m2}
+
+
+!- =========== ALL OBJECTS IN CLASS: SHADING:OVERHANG ===========
+
+Shading:Overhang,
+ Overhang_sdr_1.unit1, !- Name
+ Window_sdr_1.unit1, !- Window or Door Name
+ 0, !- Height above Window or Door {m}
+ 90, !- Tilt Angle from Window/Door {deg}
+ 0, !- Left extension from Window/Door Width {m}
+ 0, !- Right extension from Window/Door Width {m}
+ 0.0152439024390244; !- Depth {m}
+
+Shading:Overhang,
+ Overhang_sdr_2.unit1, !- Name
+ Window_sdr_2.unit1, !- Window or Door Name
+ 0, !- Height above Window or Door {m}
+ 90, !- Tilt Angle from Window/Door {deg}
+ 0, !- Left extension from Window/Door Width {m}
+ 0, !- Right extension from Window/Door Width {m}
+ 0.0152439024390244; !- Depth {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:CONTROL ===========
+
+GroundHeatTransfer:Control,
+ gtp_control, !- Name
+ no, !- Run Basement Preprocessor
+ yes; !- Run Slab Preprocessor
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:MATERIALS ===========
+
+GroundHeatTransfer:Slab:Materials,
+ 2, !- NMAT: Number of materials
+ 0.16, !- ALBEDO: Surface Albedo: No Snow
+ 0.4, !- ALBEDO: Surface Albedo: Snow
+ 0.9, !- EPSLW: Surface Emissivity: No Snow
+ 0.9, !- EPSLW: Surface Emissivity: Snow
+ 0.75, !- Z0: Surface Roughness: No Snow {cm}
+ 0.05, !- Z0: Surface Roughness: Snow {cm}
+ 6, !- HIN: Indoor HConv: Downward Flow {W/m2-K}
+ 9; !- HIN: Indoor HConv: Upward {W/m2-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:MATLPROPS ===========
+
+GroundHeatTransfer:Slab:MatlProps,
+ 2300, !- RHO: Slab Material density {kg/m3}
+ 1200, !- RHO: Soil Density {kg/m3}
+ 650, !- CP: Slab CP {J/kg-K}
+ 1200, !- CP: Soil CP {J/kg-K}
+ 0.9, !- TCON: Slab k {W/m-K}
+ 1; !- TCON: Soil k {W/m-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:BOUNDCONDS ===========
+
+GroundHeatTransfer:Slab:BoundConds,
+ FALSE, !- EVTR: Is surface evapotranspiration modeled
+ TRUE, !- FIXBC: is the lower boundary at a fixed temperature
+ 10, !- TDEEPin {C}
+ FALSE; !- USRHflag: Is the ground surface h specified by the user?
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:BLDGPROPS ===========
+
+GroundHeatTransfer:Slab:BldgProps,
+ 10, !- IYRS: Number of years to iterate
+ 0, !- Shape: Slab shape
+ 4, !- HBLDG: Building height {m}
+ 22.22, !- TIN1: January Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN2: February Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN3: March Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN4: April Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN5: May Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN6: June Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN7: July Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN8: August Indoor Average Temperature Setpoint {C}
+ 23.88, !- TIN9: September Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN10: October Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN11: November Indoor Average Temperature Setpoint {C}
+ 22.22, !- TIN12: December Indoor Average Temperature Setpoint {C}
+ 0, !- TINAmp: Daily Indoor sine wave variation amplitude {deltaC}
+ 0.1; !- ConvTol: Convergence Tolerance
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:INSULATION ===========
+
+GroundHeatTransfer:Slab:Insulation,
+ 0, !- RINS: R value of under slab insulation {m2-K/W}
+ 0, !- DINS: Width of strip of under slab insulation {m}
+ 1.76099742894375, !- RVINS: R value of vertical insulation {m2-K/W}
+ 0.6, !- ZVINS: Depth of vertical insulation {m}
+ 1; !- IVINS: Flag: Is there vertical insulation
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:SLAB:EQUIVALENTSLAB ===========
+
+GroundHeatTransfer:Slab:EquivalentSlab,
+ 2.59994805991784, !- APRatio: The area to perimeter ratio for this slab {m}
+ 0.1, !- SLABDEPTH: Thickness of slab on grade {m}
+ 15, !- CLEARANCE: Distance from edge of slab to domain edge {m}
+ 15; !- ZCLEARANCE: Distance from bottom of slab to domain bottom {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:SIMPARAMETERS ===========
+
+GroundHeatTransfer:Basement:SimParameters,
+ 0.1, !- F: Multiplier for the ADI solution
+ 15; !- IYRS: Maximum number of yearly iterations:
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:MATLPROPS ===========
+
+GroundHeatTransfer:Basement:MatlProps,
+ 6, !- NMAT: Number of materials in this domain
+ 2243, !- Density for Foundation Wall {kg/m3}
+ 2243, !- density for Floor Slab {kg/m3}
+ 311, !- density for Ceiling {kg/m3}
+ 1500, !- density for Soil {kg/m3}
+ 2000, !- density for Gravel {kg/m3}
+ 449, !- density for Wood {kg/m3}
+ 880, !- Specific heat for foundation wall {J/kg-K}
+ 880, !- Specific heat for floor slab {J/kg-K}
+ 1530, !- Specific heat for ceiling {J/kg-K}
+ 840, !- Specific heat for soil {J/kg-K}
+ 720, !- Specific heat for gravel {J/kg-K}
+ 1530, !- Specific heat for wood {J/kg-K}
+ 1.4, !- Thermal conductivity for foundation wall {W/m-K}
+ 1.4, !- Thermal conductivity for floor slab {W/m-K}
+ 0.09, !- Thermal conductivity for ceiling {W/m-K}
+ 1.1, !- thermal conductivity for soil {W/m-K}
+ 1.9, !- thermal conductivity for gravel {W/m-K}
+ 0.12; !- thermal conductivity for wood {W/m-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:INSULATION ===========
+
+GroundHeatTransfer:Basement:Insulation,
+ 1.76099742894375e-05, !- REXT: R Value of any exterior insulation {m2-K/W}
+ True; !- INSFULL: Flag: Is the wall fully insulated?
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:SURFACEPROPS ===========
+
+GroundHeatTransfer:Basement:SurfaceProps,
+ 0.16, !- ALBEDO: Surface albedo for No snow conditions
+ 0.4, !- ALBEDO: Surface albedo for snow conditions
+ 0.94, !- EPSLN: Surface emissivity No Snow
+ 0.86, !- EPSLN: Surface emissivity with Snow
+ 6, !- VEGHT: Surface roughness No snow conditions {cm}
+ 0.25, !- VEGHT: Surface roughness Snow conditions {cm}
+ False; !- PET: Flag, Potential evapotranspiration on?
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:BLDGDATA ===========
+
+GroundHeatTransfer:Basement:BldgData,
+ 0.200000006162114, !- DWALL: Wall thickness {m}
+ 0.243828108701145, !- DSLAB: Floor slab thickness {m}
+ 0.3, !- DGRAVXY: Width of gravel pit beside basement wall {m}
+ 0.2, !- DGRAVZN: Gravel depth extending above the floor slab {m}
+ 0.1; !- DGRAVZP: Gravel depth below the floor slab {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:INTERIOR ===========
+
+GroundHeatTransfer:Basement:Interior,
+ True, !- COND: Flag: Is the basement conditioned?
+ 0.92, !- HIN: Downward convection only heat transfer coefficient {W/m2-K}
+ 4.04, !- HIN: Upward convection only heat transfer coefficient {W/m2-K}
+ 3.08, !- HIN: Horizontal convection only heat transfer coefficient {W/m2-K}
+ 6.13, !- HIN: Downward combined (convection and radiation) heat transfer coefficient {W/m2-K}
+ 9.26, !- HIN: Upward combined (convection and radiation) heat transfer coefficient {W/m2-K}
+ 8.29; !- HIN: Horizontal combined (convection and radiation) heat transfer coefficient {W/m2-K}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:COMBLDG ===========
+
+GroundHeatTransfer:Basement:ComBldg,
+ 21, !- January average temperature {C}
+ 21, !- February average temperature {C}
+ 21, !- March average temperature {C}
+ 21, !- April average temperature {C}
+ 24, !- May average temperature {C}
+ 24, !- June average temperature {C}
+ 24, !- July average temperature {C}
+ 24, !- August average temperature {C}
+ 24, !- September average temperature {C}
+ 24, !- October average temperature {C}
+ 21, !- November average temperature {C}
+ 21, !- December average temperature {C}
+ 21; !- Daily variation sine wave amplitude {deltaC}
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:EQUIVSLAB ===========
+
+GroundHeatTransfer:Basement:EquivSlab,
+ 2.59994805991784, !- APRatio: The area to perimeter ratio for this slab {m}
+ True; !- EquivSizing: Flag
+
+
+!- =========== ALL OBJECTS IN CLASS: GROUNDHEATTRANSFER:BASEMENT:EQUIVAUTOGRID ===========
+
+GroundHeatTransfer:Basement:EquivAutoGrid,
+ 15, !- CLEARANCE: Distance from outside of wall to edge of 3-D ground domain {m}
+ 0.1, !- SlabDepth: Thickness of the floor slab {m}
+ 1.21914054350572; !- BaseDepth: Depth of the basement wall below grade {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: PEOPLE ===========
+
+People,
+ people_unit1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ Occupancy, !- Number of People Schedule Name
+ People, !- Number of People Calculation Method
+ 3, !- Number of People
+ , !- People per Zone Floor Area {person/m2}
+ , !- Zone Floor Area per Person {m2/person}
+ 0, !- Fraction Radiant
+ autocalculate, !- Sensible Heat Fraction
+ activity_sch, !- Activity Level Schedule Name
+ , !- Carbon Dioxide Generation Rate {m3/s-W}
+ No, !- Enable ASHRAE 55 Comfort Warnings
+ ZoneAveraged; !- Mean Radiant Temperature Calculation Type
+
+
+!- =========== ALL OBJECTS IN CLASS: LIGHTS ===========
+
+Lights,
+ Living Hardwired Lighting1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ InteriorLightingHE, !- Schedule Name
+ Watts/Area, !- Design Level Calculation Method
+ , !- Lighting Level {W}
+ 1.05216214401829, !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Return Air Fraction
+ 0.6, !- Fraction Radiant
+ 0.2, !- Fraction Visible
+ 0; !- Fraction Replaceable
+
+Lights,
+ Living Plug-in Lighting1,!- Name
+ living_unit1, !- Zone or ZoneList Name
+ InteriorLightingHE, !- Schedule Name
+ Watts/Area, !- Design Level Calculation Method
+ , !- Lighting Level {W}
+ 0.478467682251396, !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Return Air Fraction
+ 0.6, !- Fraction Radiant
+ 0.2, !- Fraction Visible
+ 0; !- Fraction Replaceable
+
+
+!- =========== ALL OBJECTS IN CLASS: ELECTRICEQUIPMENT ===========
+
+ElectricEquipment,
+ dishwasher1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ DishWasher, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 65.698787492023, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.15, !- Fraction Latent
+ 0.6, !- Fraction Radiant
+ 0.25, !- Fraction Lost
+ dishwasher; !- End-Use Subcategory
+
+ElectricEquipment,
+ refrigerator1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ Refrigerator, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 91.0575745202123, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Fraction Latent
+ 1, !- Fraction Radiant
+ 0, !- Fraction Lost
+ refrigerator; !- End-Use Subcategory
+
+ElectricEquipment,
+ clotheswasher1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ ClothesWasher, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 28.4784377542718, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Fraction Latent
+ 0.8, !- Fraction Radiant
+ 0.2, !- Fraction Lost
+ clotheswasher; !- End-Use Subcategory
+
+ElectricEquipment,
+ electric_dryer1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ ClothesDryer, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 213.064557285022, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.05, !- Fraction Latent
+ 0.15, !- Fraction Radiant
+ 0.8, !- Fraction Lost
+ electric_dryer; !- End-Use Subcategory
+
+ElectricEquipment,
+ electric_range1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ CookingRange, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 248.154224774405, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.3, !- Fraction Latent
+ 0.4, !- Fraction Radiant
+ 0.3, !- Fraction Lost
+ electric_range; !- End-Use Subcategory
+
+ElectricEquipment,
+ television1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ InteriorLighting, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 0, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0, !- Fraction Latent
+ 1, !- Fraction Radiant
+ 0, !- Fraction Lost
+ television; !- End-Use Subcategory
+
+ElectricEquipment,
+ electric_mels1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ MiscPlugLoad, !- Schedule Name
+ EquipmentLevel, !- Design Level Calculation Method
+ 567.464237516869, !- Design Level {W}
+ , !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.06, !- Fraction Latent
+ 0.69, !- Fraction Radiant
+ 0.25, !- Fraction Lost
+ electric_mels; !- End-Use Subcategory
+
+ElectricEquipment,
+ IECC_Adj1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ MiscPlugLoad, !- Schedule Name
+ Watts/Area, !- Design Level Calculation Method
+ , !- Design Level {W}
+ 1.54356736989469, !- Watts per Zone Floor Area {W/m2}
+ , !- Watts per Person {W/person}
+ 0.0624390461422629, !- Fraction Latent
+ 0.41190936353998, !- Fraction Radiant
+ 0.251045347957769, !- Fraction Lost
+ IECC_adj; !- End-Use Subcategory
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEVENTILATION:DESIGNFLOWRATE ===========
+
+ZoneVentilation:DesignFlowRate,
+ Ventilation_unit1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ always_avail, !- Schedule Name
+ Flow/Zone, !- Design Flow Rate Calculation Method
+ 0, !- Design Flow Rate {m3/s}
+ , !- Flow Rate per Zone Floor Area {m3/s-m2}
+ , !- Flow Rate per Person {m3/s-person}
+ , !- Air Changes per Hour {1/hr}
+ Exhaust, !- Ventilation Type
+ 0, !- Fan Pressure Rise {Pa}
+ 0.6, !- Fan Total Efficiency
+ 1, !- Constant Term Coefficient
+ 0, !- Temperature Term Coefficient
+ 0, !- Velocity Term Coefficient
+ 0, !- Velocity Squared Term Coefficient
+ -100, !- Minimum Indoor Temperature {C}
+ , !- Minimum Indoor Temperature Schedule Name
+ 100, !- Maximum Indoor Temperature {C}
+ , !- Maximum Indoor Temperature Schedule Name
+ -100, !- Delta Temperature {deltaC}
+ , !- Delta Temperature Schedule Name
+ -100, !- Minimum Outdoor Temperature {C}
+ , !- Minimum Outdoor Temperature Schedule Name
+ 100, !- Maximum Outdoor Temperature {C}
+ , !- Maximum Outdoor Temperature Schedule Name
+ 40; !- Maximum Wind Speed {m/s}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:SIMULATIONCONTROL ===========
+
+AirflowNetwork:SimulationControl,
+ House AirflowNetwork, !- Name
+ MultizoneWithDistribution, !- AirflowNetwork Control
+ SurfaceAverageCalculation, !- Wind Pressure Coefficient Type
+ , !- Height Selection for Local Wind Pressure Calculation
+ LOWRISE, !- Building Type
+ 500, !- Maximum Number of Iterations {dimensionless}
+ , !- Initialization Type
+ 0.001, !- Relative Airflow Convergence Tolerance {dimensionless}
+ 0.00001, !- Absolute Airflow Convergence Tolerance {kg/s}
+ 0, !- Convergence Acceleration Limit {dimensionless}
+ 0, !- Azimuth Angle of Long Axis of Building {deg}
+ 0.75, !- Ratio of Building Width Along Short Axis to Width Along Long Axis
+ ,
+ ,
+ Yes;
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:ZONE ===========
+
+AirflowNetwork:MultiZone:Zone,
+ living_unit1, !- Zone Name
+ NoVent, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ 0, !- Minimum Venting Open Factor {dimensionless}
+ 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+
+AirflowNetwork:MultiZone:Zone,
+ attic_unit1, !- Zone Name
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:SURFACE ===========
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_front_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ 0, !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_back_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_right_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ Roof_left_unit1, !- Surface Name
+ AtticVent, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant, !- Ventilation Control Mode
+ , !- Ventilation Control Zone Temperature Setpoint Schedule Name
+ , !- Minimum Venting Open Factor {dimensionless}
+ , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC}
+ 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC}
+ , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg}
+ 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg}
+ inf_sch; !- Venting Availability Schedule Name
+
+AirflowNetwork:MultiZone:Surface,
+ ceiling_unit1, !- Surface Name
+ ZoneLeak_Ceiling, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldf_1.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldb_1.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdl_1.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdr_1.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldf_2.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1.0, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_ldb_2.unit1, !- Surface Name
+ ZoneLeak_LongWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdr_2.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdl_2.unit1, !- Surface Name
+ ZoneLeak_ShortWall, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ NoVent; !- Ventilation Control Mode
+
+AirflowNetwork:MultiZone:Surface,
+ Wall_sdr_2.unit1, !- Surface Name
+ Zone Exhaust Fan_unit1, !- Leakage Component Name
+ , !- External Node Name
+ 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless}
+ Constant; !- Ventilation Control Mode
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:SURFACE:EFFECTIVELEAKAGEAREA ===========
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_LongWall, !- Name
+ 0.00340012477060435, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_ShortWall, !- Name
+ 0.00255009357795326, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_Ceiling, !- Name
+ 0.011939399618037, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ ZoneLeak_Floor, !- Name
+ 0.00001, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ AtticVent, !- Name
+ 0.37, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea,
+ CrawlVent, !- Name
+ 0.37, !- Effective Leakage Area {m2}
+ 1.15, !- Discharge Coefficient {dimensionless}
+ 4, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:COMPONENT:ZONEEXHAUSTFAN ===========
+
+AirflowNetwork:MultiZone:Component:ZoneExhaustFan,
+ Zone Exhaust Fan_unit1, !- Name
+ 0.01, !- Air Mass Flow Coefficient When the Zone Exhaust Fan is Off at Reference Conditions {kg/s}
+ 0.667; !- Air Mass Flow Exponent When the Zone Exhaust Fan is Off {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:NODE ===========
+
+AirflowNetwork:Distribution:Node,
+ EquipmentInletNode_unit1,!- Name
+ Zone Equipment Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ SplitterNode_unit1, !- Name
+ , !- Component Name or Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneSupplyNode_unit1, !- Name
+ , !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneSupplyRegisterNode_unit1 ATInlet, !- Name
+ Zone Inlet Node_unit1 ATInlet, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneSupplyRegisterNode_unit1, !- Name
+ Zone Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneOutletNode_unit1, !- Name
+ Zone Outlet node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ ZoneReturnNode_unit1, !- Name
+ , !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ MixerNode_unit1, !- Name
+ , !- Component Name or Node Name
+ AirLoopHVAC:ZoneMixer, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ MainReturnNode_unit1, !- Name
+ Return Air Mixer Outlet_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ MainInletNode_unit1, !- Name
+ Air Loop Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ FanOutletNode_unit1, !- Name
+ Cooling Coil Air Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ HeatingInletNode_unit1, !- Name
+ Heating Coil Air Inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ HeatingOutletNode_unit1, !- Name
+ Air Loop Outlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+AirflowNetwork:Distribution:Node,
+ SuppHeatingInletNode_unit1, !- Name
+ Supp Heating coil air inlet Node_unit1, !- Component Name or Node Name
+ Other, !- Component Object Type or Node Type
+ 3.0; !- Node Height {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:LEAKAGERATIO ===========
+
+AirflowNetwork:Distribution:Component:LeakageRatio,
+ SupplyLeak, !- Name
+ 0.0396, !- Effective Leakage Ratio {dimensionless}
+ 0.56034, !- Maximum Flow Rate {m3/s}
+ 25, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+AirflowNetwork:Distribution:Component:LeakageRatio,
+ ReturnLeak, !- Name
+ 0.0396, !- Effective Leakage Ratio {dimensionless}
+ 0.56034, !- Maximum Flow Rate {m3/s}
+ 25, !- Reference Pressure Difference {Pa}
+ 0.65; !- Air Mass Flow Exponent {dimensionless}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:DUCT ===========
+
+AirflowNetwork:Distribution:Component:Duct,
+ MainTrunk_unit1, !- Name
+ 2.0, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 0.01, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneSupply_unit1, !- Name
+ 15, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 10, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneSupplyLink2_unit1 ATInlet Duct, !- Name
+ 0.0001, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 0, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneReturn_unit1, !- Name
+ 8.0, !- Duct Length {m}
+ 0.529430338938287, !- Hydraulic Diameter {m}
+ 0.220172888015717, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 9, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ ZoneConnectionDuct_unit1,!- Name
+ 0.1, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0001, !- Surface Roughness {m}
+ 0.00, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ MainReturn_unit1, !- Name
+ 1.0, !- Duct Length {m}
+ 0.529430338938287, !- Hydraulic Diameter {m}
+ 0.220172888015717, !- Cross Section Area {m2}
+ 0.0009, !- Surface Roughness {m}
+ 0.01, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ AirLoopReturn_unit1, !- Name
+ 0.1, !- Duct Length {m}
+ 0.529430338938287, !- Hydraulic Diameter {m}
+ 0.220172888015717, !- Cross Section Area {m2}
+ 0.0001, !- Surface Roughness {m}
+ 0.00, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+AirflowNetwork:Distribution:Component:Duct,
+ AirLoopSupply_unit1, !- Name
+ 0.1, !- Duct Length {m}
+ 0.591921113608382, !- Hydraulic Diameter {m}
+ 0.275216110019646, !- Cross Section Area {m2}
+ 0.0001, !- Surface Roughness {m}
+ 0.00, !- Coefficient for Local Dynamic Loss Due to Fitting {dimensionless}
+ 0.709825, !- Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction {W/m2-K}
+ 0.0000001; !- Overall Moisture Transmittance Coefficient from Air to Air {kg/m2}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:FAN ===========
+
+AirflowNetwork:Distribution:Component:Fan,
+ Supply Fan_unit1, !- Fan Name
+ Fan:OnOff; !- Supply Fan Object Type
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:COMPONENT:COIL ===========
+
+AirflowNetwork:Distribution:Component:Coil,
+ DX Cooling Coil_unit1, !- Coil Name
+ Coil:Cooling:DX:SingleSpeed, !- Coil Object Type
+ 0.1, !- Air Path Length {m}
+ 1.000; !- Air Path Hydraulic Diameter {m}
+
+AirflowNetwork:Distribution:Component:Coil,
+ Main DX Heating Coil_unit1, !- Coil Name
+ Coil:Heating:DX:Singlespeed, !- Coil Object Type
+ 0.1, !- Air Path Length {m}
+ 1.000; !- Air Path Hydraulic Diameter {m}
+
+AirflowNetwork:Distribution:Component:Coil,
+ Supp Heating Coil_unit1, !- Coil Name
+ Coil:Heating:Electric, !- Coil Object Type
+ 0.1, !- Air Path Length {m}
+ 1.000; !- Air Path Hydraulic Diameter {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:DISTRIBUTION:LINKAGE ===========
+
+AirflowNetwork:Distribution:Linkage,
+ MainSupplyLink_unit1, !- Name
+ EquipmentInletNode_unit1,!- Node 1 Name
+ SplitterNode_unit1, !- Node 2 Name
+ MainTrunk_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLink_unit1, !- Name
+ SplitterNode_unit1, !- Node 1 Name
+ ZoneSupplyNode_unit1, !- Node 2 Name
+ ZoneSupply_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLink2_unit1 ATInlet, !- Name
+ ZoneSupplyRegisterNode_unit1 ATInlet, !- Node 1 Name
+ ZoneSupplyRegisterNode_unit1, !- Node 2 Name
+ ZoneSupplyLink2_unit1 ATInlet Duct, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLink2_unit1, !- Name
+ ZoneSupplyNode_unit1, !- Node 1 Name
+ ZoneSupplyRegisterNode_unit1 ATInlet, !- Node 2 Name
+ ZoneSupply_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyConnectionLink_unit1, !- Name
+ ZoneSupplyRegisterNode_unit1, !- Node 1 Name
+ living_unit1, !- Node 2 Name
+ ZoneConnectionDuct_unit1;!- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnConnectionLink_unit1, !- Name
+ living_unit1, !- Node 1 Name
+ ZoneOutletNode_unit1, !- Node 2 Name
+ ZoneConnectionDuct_unit1;!- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnLink1_unit1, !- Name
+ Zoneoutletnode_unit1, !- Node 1 Name
+ ZoneReturnNode_unit1, !- Node 2 Name
+ ZoneReturn_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnLink2_unit1, !- Name
+ ZoneReturnNode_unit1, !- Node 1 Name
+ MixerNode_unit1, !- Node 2 Name
+ ZoneReturn_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ MainReturnLink_unit1, !- Name
+ MixerNode_unit1, !- Node 1 Name
+ MainReturnNode_unit1, !- Node 2 Name
+ MainReturn_unit1, !- Component Name
+ attic_unit1; !- Thermal Zone Name
+
+AirflowNetwork:Distribution:Linkage,
+ SystemReturnLink_unit1, !- Name
+ MainReturnNode_unit1, !- Node 1 Name
+ MainInletNode_unit1, !- Node 2 Name
+ AirLoopReturn_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ SupplyFanLink_unit1, !- Name
+ MainInletNode_unit1, !- Node 1 Name
+ FanOutletNode_unit1, !- Node 2 Name
+ Supply Fan_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ CoolingCoilLink_unit1, !- Name
+ FanOutletNode_unit1, !- Node 1 Name
+ HeatingInletNode_unit1, !- Node 2 Name
+ DX Cooling Coil_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ EquipmentAirLoopLink_unit1, !- Name
+ HeatingOutletNode_unit1, !- Node 1 Name
+ EquipmentInletNode_unit1,!- Node 2 Name
+ AirLoopSupply_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ HeatingCoilLink_unit1, !- Name
+ HeatingInletNode_unit1, !- Node 1 Name
+ SuppHeatingInletNode_unit1, !- Node 2 Name
+ Main DX Heating Coil_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ SuppHeatingCoilLink_unit1, !- Name
+ SuppHeatingInletNode_unit1, !- Node 1 Name
+ HeatingOutletNode_unit1, !- Node 2 Name
+ Supp Heating Coil_unit1; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneSupplyLeakLink_unit1,!- Name
+ ZoneSupplyNode_unit1, !- Node 1 Name
+ attic_unit1, !- Node 2 Name
+ SupplyLeak; !- Component Name
+
+AirflowNetwork:Distribution:Linkage,
+ ZoneReturnLeakLink_unit1,!- Name
+ attic_unit1, !- Node 1 Name
+ ZoneReturnNode_unit1, !- Node 2 Name
+ ReturnLeak; !- Component Name
+
+
+!- =========== ALL OBJECTS IN CLASS: EXTERIOR:LIGHTS ===========
+
+Exterior:Lights,
+ Exterior-Lights_unit1, !- Name
+ ExteriorLighting, !- Schedule Name
+ 43.2424607481559, !- Design Level {W}
+ , !- Control Option
+ Exterior-Lights; !- End-Use Subcategory
+
+Exterior:Lights,
+ Garage-Lights_unit1, !- Name
+ InteriorLightingHE, !- Schedule Name
+ 7.16294617434682, !- Design Level {W}
+ , !- Control Option
+ Garage-Lights; !- End-Use Subcategory
+
+
+!- =========== ALL OBJECTS IN CLASS: DESIGNSPECIFICATION:OUTDOORAIR ===========
+
+DesignSpecification:OutdoorAir,
+ SZ_DSOA_living_unit1, !- Name
+ Flow/Zone, !- Outdoor Air Method
+ 0, !- Outdoor Air Flow per Person {m3/s-person}
+ , !- Outdoor Air Flow per Zone Floor Area {m3/s-m2}
+ 0.0283168464628752; !- Outdoor Air Flow per Zone {m3/s}
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZING:ZONE ===========
+
+Sizing:Zone,
+ living_unit1, !- Zone or ZoneList Name
+ SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method
+ 12, !- Zone Cooling Design Supply Air Temperature {C}
+ , !- Zone Cooling Design Supply Air Temperature Difference {deltaC}
+ SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method
+ 50, !- Zone Heating Design Supply Air Temperature {C}
+ , !- Zone Heating Design Supply Air Temperature Difference {deltaC}
+ 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ SZ_DSOA_living_unit1, !- Design Specification Outdoor Air Object Name
+ , !- Zone Heating Sizing Factor
+ , !- Zone Cooling Sizing Factor
+ DesignDay, !- Cooling Design Air Flow Method
+ , !- Cooling Design Air Flow Rate {m3/s}
+ 0.000762, !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2}
+ , !- Cooling Minimum Air Flow {m3/s}
+ , !- Cooling Minimum Air Flow Fraction
+ DesignDay, !- Heating Design Air Flow Method
+ , !- Heating Design Air Flow Rate {m3/s}
+ 0.002032, !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2}
+ 0.1415762, !- Heating Maximum Air Flow {m3/s}
+ 0.3, !- Heating Maximum Air Flow Fraction
+ , !- Design Specification Zone Air Distribution Object Name
+ , !- Account for Dedicated Outdoor Air System
+ , !- Dedicated Outdoor Air System Control Strategy
+ , !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C}
+ ; !- Dedicated Outdoor Air High Setpoint Temperature for Design {C}
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZING:SYSTEM ===========
+
+Sizing:System,
+ Central System_unit1, !- AirLoop Name
+ Sensible, !- Type of Load to Size On
+ autosize, !- Design Outdoor Air Flow Rate {m3/s}
+ 1, !- Central Heating Maximum System Air Flow Ratio
+ 7, !- Preheat Design Temperature {C}
+ 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir}
+ 11, !- Precool Design Temperature {C}
+ 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir}
+ 12, !- Central Cooling Design Supply Air Temperature {C}
+ 50, !- Central Heating Design Supply Air Temperature {C}
+ NonCoincident, !- Type of Zone Sum to Use
+ No, !- 100% Outdoor Air in Cooling
+ No, !- 100% Outdoor Air in Heating
+ 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir}
+ DesignDay, !- Cooling Supply Air Flow Rate Method
+ , !- Cooling Supply Air Flow Rate {m3/s}
+ , !- Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Cooling Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}
+ DesignDay, !- Heating Supply Air Flow Rate Method
+ , !- Heating Supply Air Flow Rate {m3/s}
+ , !- Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}
+ , !- Heating Fraction of Autosized Heating Supply Air Flow Rate
+ , !- Heating Fraction of Autosized Cooling Supply Air Flow Rate
+ , !- Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}
+ , !- System Outdoor Air Method
+ 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless}
+ CoolingDesignCapacity, !- Cooling Design Capacity Method
+ autosize, !- Cooling Design Capacity {W}
+ , !- Cooling Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Cooling Design Capacity
+ HeatingDesignCapacity, !- Heating Design Capacity Method
+ autosize, !- Heating Design Capacity {W}
+ , !- Heating Design Capacity Per Floor Area {W/m2}
+ , !- Fraction of Autosized Heating Design Capacity
+ OnOff; !- Central Cooling Capacity Control Method
+
+
+!- =========== ALL OBJECTS IN CLASS: SIZING:PLANT ===========
+
+Sizing:Plant,
+ DHW Loop_unit1, !- Plant or Condenser Loop Name
+ Heating, !- Loop Type
+ 48.8888888888889, !- Design Loop Exit Temperature {C}
+ 5.55555555555556; !- Loop Design Temperature Difference {deltaC}
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONECONTROL:THERMOSTAT ===========
+
+ZoneControl:Thermostat,
+ Zone Thermostat_unit1, !- Name
+ living_unit1, !- Zone or ZoneList Name
+ zone_control_type, !- Control Type Schedule Name
+ ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type
+ thermostat_living Dual SP Control; !- Control 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: THERMOSTATSETPOINT:DUALSETPOINT ===========
+
+ThermostatSetpoint:DualSetpoint,
+ thermostat_living Dual SP Control, !- Name
+ heating_sch, !- Heating Setpoint Temperature Schedule Name
+ cooling_sch; !- Cooling Setpoint Temperature Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:DEHUMIDIFIER:DX ===========
+
+ZoneHVAC:Dehumidifier:DX,
+ North Zone Dehumidifier, !- Name
+ always_avail, !- Availability Schedule Name
+ Zone3DehumidifierInlet, !- Air Inlet Node Name
+ Dehumidifier Outlet Node,!- Air Outlet Node Name
+ 50.16, !- Rated Water Removal {L/day}
+ 3.412, !- Rated Energy Factor {L/kWh}
+ 0.12036, !- Rated Air Flow Rate {m3/s}
+ ZoneDehumidWaterRemoval, !- Water Removal Curve Name
+ ZoneDehumidEnergyFactor, !- Energy Factor Curve Name
+ ZoneDehumidPLFFPLR, !- Part Load Fraction Correlation Curve Name
+ 10.0, !- Minimum Dry-Bulb Temperature for Dehumidifier Operation {C}
+ 32.0, !- Maximum Dry-Bulb Temperature for Dehumidifier Operation {C}
+ 0.0; !- Off-Cycle Parasitic Electric Load {W}
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:ENERGYRECOVERYVENTILATOR ===========
+
+ZoneHVAC:EnergyRecoveryVentilator,
+ ERV_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ OA_Heat_Recovery_Unit1, !- Heat Exchanger Name
+ 0.0283168464628752, !- Supply Air Flow Rate {m3/s}
+ 0.0283168464628752, !- Exhaust Air Flow Rate {m3/s}
+ OASupplyFan_unit1, !- Supply Air Fan Name
+ OAExhaustFan_unit1; !- Exhaust Air Fan Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRTERMINAL:SINGLEDUCT:CONSTANTVOLUME:NOREHEAT ===========
+
+AirTerminal:SingleDuct:ConstantVolume:NoReheat,
+ ZoneDirectAir_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ Zone Inlet Node_unit1 ATInlet, !- Air Inlet Node Name
+ Zone Inlet Node_unit1, !- Air Outlet Node Name
+ autosize; !- Maximum Air Flow Rate {m3/s}
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:AIRDISTRIBUTIONUNIT ===========
+
+ZoneHVAC:AirDistributionUnit,
+ ZoneDirectAir_unit1 ADU, !- Name
+ Zone Inlet Node_unit1, !- Air Distribution Unit Outlet Node Name
+ AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type
+ ZoneDirectAir_unit1; !- Air Terminal Name
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:EQUIPMENTLIST ===========
+
+ZoneHVAC:EquipmentList,
+ ZoneEquipment_unit1, !- Name
+ SequentialLoad, !- Load Distribution Scheme
+ ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
+ ZoneDirectAir_unit1 ADU, !- Zone Equipment 1 Name
+ 4, !- Zone Equipment 1 Cooling Sequence
+ 4, !- Zone Equipment 1 Heating or No-Load Sequence
+ , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
+ , !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
+ WaterHeater:HeatPump:WrappedCondenser, !- Zone Equipment 2 Object Type
+ Water Heater_unit1, !- Zone Equipment 2 Name
+ 1, !- Zone Equipment 2 Cooling Sequence
+ 1, !- Zone Equipment 2 Heating or No-Load Sequence
+ , !- Zone Equipment 2 Sequential Cooling Fraction Schedule Name
+ , !- Zone Equipment 2 Sequential Heating Fraction Schedule Name
+ Fan:ZoneExhaust, !- Zone Equipment 3 Object Type
+ Zone Exhaust Fan_unit1, !- Zone Equipment 3 Name
+ 5, !- Zone Equipment 3 Cooling Sequence
+ 5, !- Zone Equipment 3 Heating or No-Load Sequence
+ , !- Zone Equipment 3 Sequential Cooling Fraction Schedule Name
+ , !- Zone Equipment 3 Sequential Heating Fraction Schedule Name
+ ZoneHVAC:EnergyRecoveryVentilator, !- Zone Equipment 4 Object Type
+ ERV_unit1, !- Zone Equipment 4 Name
+ 2, !- Zone Equipment 4 Cooling Sequence
+ 2, !- Zone Equipment 4 Heating or No-Load Sequence
+ , !- Zone Equipment 4 Sequential Cooling Fraction Schedule Name
+ , !- Zone Equipment 4 Sequential Heating Fraction Schedule Name
+ ZoneHVAC:Dehumidifier:DX,!- Zone Equipment 5 Object Type
+ North Zone Dehumidifier, !- Zone Equipment 5 Name
+ 3, !- Zone Equipment 5 Cooling Sequence
+ 3; !- Zone Equipment 5 Heating or No-Load Sequence
+
+
+!- =========== ALL OBJECTS IN CLASS: ZONEHVAC:EQUIPMENTCONNECTIONS ===========
+
+ZoneHVAC:EquipmentConnections,
+ living_unit1, !- Zone Name
+ ZoneEquipment_unit1, !- Zone Conditioning Equipment List Name
+ zone inlet nodes_unit1, !- Zone Air Inlet Node or NodeList Name
+ Zone Exhaust Node_list_unit1, !- Zone Air Exhaust Node or NodeList Name
+ Zone Node_unit1, !- Zone Air Node Name
+ Zone Outlet Node_unit1; !- Zone Return Air Node or NodeList Name
+
+
+!- =========== ALL OBJECTS IN CLASS: FAN:ONOFF ===========
+
+Fan:OnOff,
+ Supply Fan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.50054, !- Fan Total Efficiency
+ 400, !- Pressure Rise {Pa}
+ autosize, !- Maximum Flow Rate {m3/s}
+ 0.863, !- Motor Efficiency
+ 1, !- Motor In Airstream Fraction
+ air loop inlet node_unit1, !- Air Inlet Node Name
+ cooling coil air inlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ General; !- End-Use Subcategory
+
+Fan:OnOff,
+ OASupplyFan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.6, !- Fan Total Efficiency
+ 454.045717061016, !- Pressure Rise {Pa}
+ 0.0283168464628752, !- Maximum Flow Rate {m3/s}
+ 1, !- Motor Efficiency
+ 0, !- Motor In Airstream Fraction
+ OA fan inlet node_unit1, !- Air Inlet Node Name
+ OA inlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ Ventilation; !- End-Use Subcategory
+
+Fan:OnOff,
+ OAExhaustFan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.6, !- Fan Total Efficiency
+ 454.045717061016, !- Pressure Rise {Pa}
+ 0.0283168464628752, !- Maximum Flow Rate {m3/s}
+ 1, !- Motor Efficiency
+ 0, !- Motor In Airstream Fraction
+ ERVexhaustnode_unit1, !- Air Inlet Node Name
+ exhaust outlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ Ventilation; !- End-Use Subcategory
+
+Fan:OnOff,
+ Heat Pump Water Heater Fan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.7, !- Fan Total Efficiency
+ 100.0, !- Pressure Rise {Pa}
+ autosize, !- Maximum Flow Rate {m3/s}
+ 0.9, !- Motor Efficiency
+ 1.0, !- Motor In Airstream Fraction
+ Heat Pump Water Heater Fan Inlet Node_unit1, !- Air Inlet Node Name
+ HPWH zone inlet node_unit1, !- Air Outlet Node Name
+ , !- Fan Power Ratio Function of Speed Ratio Curve Name
+ , !- Fan Efficiency Ratio Function of Speed Ratio Curve Name
+ General; !- End-Use Subcategory
+
+
+!- =========== ALL OBJECTS IN CLASS: FAN:ZONEEXHAUST ===========
+
+Fan:ZoneExhaust,
+ Zone Exhaust Fan_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.6, !- Fan Total Efficiency
+ 0.00001, !- Pressure Rise {Pa}
+ 0.000001, !- Maximum Flow Rate {m3/s}
+ Zone Exhaust Node_unit1, !- Air Inlet Node Name
+ zone exhaust fan outlet nodes_unit1, !- Air Outlet Node Name
+ Ventilation, !- End-Use Subcategory
+ , !- Flow Fraction Schedule Name
+ Decoupled; !- System Availability Manager Coupling Mode
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:COOLING:DX:SINGLESPEED ===========
+
+Coil:Cooling:DX:SingleSpeed,
+ DX Cooling Coil_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ autosize, !- Gross Rated Total Cooling Capacity {W}
+ autosize, !- Gross Rated Sensible Heat Ratio
+ 4.06853019625951, !- Gross Rated Cooling COP {W/W}
+ autosize, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
+ Cooling Coil Air Inlet Node_unit1, !- Air Inlet Node Name
+ Heating Coil Air Inlet Node_unit1, !- Air Outlet Node Name
+ HPACCoolCapFT, !- Total Cooling Capacity Function of Temperature Curve Name
+ HPACCoolCapFFF, !- Total Cooling Capacity Function of Flow Fraction Curve Name
+ HPACCOOLEIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ HPACCOOLEIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ HPACCOOLPLFFPLR; !- Part Load Fraction Correlation Curve Name
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:HEATING:ELECTRIC ===========
+
+Coil:Heating:Electric,
+ Supp Heating Coil_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 1, !- Efficiency
+ autosize, !- Nominal Capacity {W}
+ Supp Heating Coil Air Inlet Node_unit1, !- Air Inlet Node Name
+ Air Loop Outlet Node_unit1; !- Air Outlet Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:HEATING:DX:SINGLESPEED ===========
+
+Coil:Heating:DX:SingleSpeed,
+ Main DX Heating Coil_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ autosize, !- Gross Rated Heating Capacity {W}
+ 3.69308080013886, !- Gross Rated Heating COP {W/W}
+ autosize, !- Rated Air Flow Rate {m3/s}
+ , !- Rated Supply Fan Power Per Volume Flow Rate {W/(m3/s)}
+ Heating Coil Air Inlet Node_unit1, !- Air Inlet Node Name
+ Supp Heating Coil Air Inlet Node_unit1, !- Air Outlet Node Name
+ HPACHeatCapFT, !- Heating Capacity Function of Temperature Curve Name
+ HPACHeatCapFFF, !- Heating Capacity Function of Flow Fraction Curve Name
+ HPACHeatEIRFT, !- Energy Input Ratio Function of Temperature Curve Name
+ HPACHeatEIRFFF, !- Energy Input Ratio Function of Flow Fraction Curve Name
+ HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name
+ Defrost_EIR_FT, !- Defrost Energy Input Ratio Function of Temperature Curve Name
+ -17.78, !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}
+ , !- Outdoor Dry-Bulb Temperature to Turn On Compressor {C}
+ 5.0, !- Maximum Outdoor Dry-Bulb Temperature for Defrost Operation {C}
+ 200.0, !- Crankcase Heater Capacity {W}
+ 10.0, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation {C}
+ ReverseCycle, !- Defrost Strategy
+ OnDemand; !- Defrost Control
+
+
+!- =========== ALL OBJECTS IN CLASS: COIL:WATERHEATING:AIRTOWATERHEATPUMP:WRAPPED ===========
+
+Coil:WaterHeating:AirToWaterHeatPump:Wrapped,
+ Heat Pump Water Heater Evaporator_unit1, !- Name
+ 1500, !- Rated Heating Capacity {W}
+ 3.0, !- Rated COP {W/W}
+ 0.981, !- Rated Sensible Heat Ratio
+ 19.7, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C}
+ 13.5, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C}
+ 48.89, !- Rated Condenser Water Temperature {C}
+ 0.189, !- Rated Evaporator Air Flow Rate {m3/s}
+ yes, !- Evaporator Fan Power Included in Rated COP
+ Zone Exhaust Node1_unit1,!- Evaporator Air Inlet Node Name
+ Heat Pump Water Heater Fan Inlet Node_unit1, !- Evaporator Air Outlet Node Name
+ , !- Crankcase Heater Capacity {W}
+ 10, !- Maximum Ambient Temperature for Crankcase Heater Operation {C}
+ WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects
+ HPWH-Htg-Cap-fT, !- Heating Capacity Function of Temperature Curve Name
+ , !- Heating Capacity Function of Air Flow Fraction Curve Name
+ HPWH-Htg-COP-fT, !- Heating COP Function of Temperature Curve Name
+ , !- Heating COP Function of Air Flow Fraction Curve Name
+ HPWH-COP-fPLR; !- Part Load Fraction Correlation Curve Name
+
+
+!- =========== ALL OBJECTS IN CLASS: HEATEXCHANGER:AIRTOAIR:SENSIBLEANDLATENT ===========
+
+HeatExchanger:AirToAir:SensibleAndLatent,
+ OA_Heat_Recovery_Unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ 0.0283168464628752, !- Nominal Supply Air Flow Rate {m3/s}
+ 0.65, !- Sensible Effectiveness at 100% Heating Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 100% Heating Air Flow {dimensionless}
+ 0.65, !- Sensible Effectiveness at 75% Heating Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 75% Heating Air Flow {dimensionless}
+ 0.65, !- Sensible Effectiveness at 100% Cooling Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 100% Cooling Air Flow {dimensionless}
+ 0.65, !- Sensible Effectiveness at 75% Cooling Air Flow {dimensionless}
+ 0, !- Latent Effectiveness at 75% Cooling Air Flow {dimensionless}
+ outdoor air node_unit1, !- Supply Air Inlet Node Name
+ OA fan inlet node_unit1, !- Supply Air Outlet Node Name
+ Zone Exhaust Node_unit1, !- Exhaust Air Inlet Node Name
+ ERVexhaustnode_unit1, !- Exhaust Air Outlet Node Name
+ 0, !- Nominal Electric Power {W}
+ No, !- Supply Air Outlet Temperature Control
+ Plate, !- Heat Exchanger Type
+ None, !- Frost Control Type
+ -16.8333337792644, !- Threshold Temperature {C}
+ 0.083, !- Initial Defrost Time Fraction {dimensionless}
+ 2.15999989700318E-02, !- Rate of Defrost Time Fraction Increase {1/K}
+ No; !- Economizer Lockout
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:UNITARYHEATPUMP:AIRTOAIR ===========
+
+AirLoopHVAC:UnitaryHeatPump:AirToAir,
+ Heat Pump_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ Air Loop Inlet node_unit1, !- Air Inlet Node Name
+ Air Loop Outlet Node_unit1, !- Air Outlet Node Name
+ autosize, !- Cooling Supply Air Flow Rate {m3/s}
+ autosize, !- Heating Supply Air Flow Rate {m3/s}
+ 0.0, !- No Load Supply Air Flow Rate {m3/s}
+ living_unit1, !- Controlling Zone or Thermostat Location
+ Fan:OnOff, !- Supply Air Fan Object Type
+ Supply Fan_unit1, !- Supply Air Fan Name
+ Coil:Heating:DX:SingleSpeed, !- Heating Coil Object Type
+ Main DX Heating Coil_unit1, !- Heating Coil Name
+ Coil:Cooling:DX:SingleSpeed, !- Cooling Coil Object Type
+ DX Cooling Coil_unit1, !- Cooling Coil Name
+ Coil:Heating:Electric, !- Supplemental Heating Coil Object Type
+ Supp Heating Coil_unit1, !- Supplemental Heating Coil Name
+ 50, !- Maximum Supply Air Temperature from Supplemental Heater {C}
+ 10, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C}
+ BlowThrough, !- Fan Placement
+ fan_cycle; !- Supply Air Fan Operating Mode Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC ===========
+
+AirLoopHVAC,
+ Central System_unit1, !- Name
+ , !- Controller List Name
+ availability list, !- Availability Manager List Name
+ autosize, !- Design Supply Air Flow Rate {m3/s}
+ Air Loop Branches_unit1, !- Branch List Name
+ , !- Connector List Name
+ Air Loop Inlet Node_unit1, !- Supply Side Inlet Node Name
+ Return Air Mixer Outlet_unit1, !- Demand Side Outlet Node Name
+ Zone Equipment Inlet Node_unit1, !- Demand Side Inlet Node Names
+ Air Loop Outlet Node_unit1; !- Supply Side Outlet Node Names
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:ZONESPLITTER ===========
+
+AirLoopHVAC:ZoneSplitter,
+ Zone Supply Air Splitter_unit1, !- Name
+ Zone Equipment Inlet Node_unit1, !- Inlet Node Name
+ Zone Inlet Node_unit1 ATInlet; !- Outlet 1 Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:SUPPLYPATH ===========
+
+AirLoopHVAC:SupplyPath,
+ SupplyPath_unit1, !- Name
+ Zone Equipment Inlet Node_unit1, !- Supply Air Path Inlet Node Name
+ AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
+ Zone Supply Air Splitter_unit1; !- Component 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:ZONEMIXER ===========
+
+AirLoopHVAC:ZoneMixer,
+ Zone Return Air Mixer_unit1, !- Name
+ Return Air Mixer Outlet_unit1, !- Outlet Node Name
+ Zone Outlet Node_unit1; !- Inlet 1 Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AIRLOOPHVAC:RETURNPATH ===========
+
+AirLoopHVAC:ReturnPath,
+ ReturnPath_unit1, !- Name
+ Return Air Mixer Outlet_unit1, !- Return Air Path Outlet Node Name
+ AirLoopHVAC:ZoneMixer, !- Component 1 Object Type
+ Zone Return Air Mixer_unit1; !- Component 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: BRANCH ===========
+
+Branch,
+ Air Loop Main Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ AirLoopHVAC:UnitaryHeatPump:AirtoAir, !- Component 1 Object Type
+ Heat Pump_unit1, !- Component 1 Name
+ Air Loop Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Air Loop Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Mains Inlet Branch_unit1,!- Name
+ , !- Pressure Drop Curve Name
+ Pump:VariableSpeed, !- Component 1 Object Type
+ Mains Pressure_unit1, !- Component 1 Name
+ Mains Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Mains Pressure Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ DHW Supply Outlet Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ DHW Supply Outlet Pipe_unit1, !- Component 1 Name
+ DHW Supply Outlet Pipe Inlet Node_unit1, !- Component 1 Inlet Node Name
+ DHW Supply Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ DHW Demand Inlet Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ DHW Demand Inlet Pipe_unit1, !- Component 1 Name
+ DHW Demand Inlet Node_unit1, !- Component 1 Inlet Node Name
+ DHW Demand Inlet Pipe Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Sink Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW Sinks_unit1, !- Component 1 Name
+ Water Sink Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water Sink outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Shower Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW Showers_unit1, !- Component 1 Name
+ Water Shower Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water Shower Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water ClothesWasher Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW ClothesWasher_unit1, !- Component 1 Name
+ Water ClothesWasher Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water ClothesWasher Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Dishwasher Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW DishWasher_unit1, !- Component 1 Name
+ Water DishWasher Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water DishWasher outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Bath Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterUse:Connections, !- Component 1 Object Type
+ DHW Baths_unit1, !- Component 1 Name
+ Water Bath Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water bath Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Mains Makeup Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ Pipe:Adiabatic, !- Component 1 Object Type
+ Mains Makeup Pipe_unit1, !- Component 1 Name
+ Mains Makeup Pipe Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Mains Makeup Node_unit1; !- Component 1 Outlet Node Name
+
+Branch,
+ Water Heater Branch_unit1, !- Name
+ , !- Pressure Drop Curve Name
+ WaterHeater:HeatPump:WrappedCondenser, !- Component 1 Object Type
+ Water Heater_unit1, !- Component 1 Name
+ Water Heater Use Inlet Node_unit1, !- Component 1 Inlet Node Name
+ Water Heater Use Outlet Node_unit1; !- Component 1 Outlet Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: BRANCHLIST ===========
+
+BranchList,
+ Air Loop Branches_unit1, !- Name
+ Air Loop Main Branch_unit1; !- Branch 1 Name
+
+BranchList,
+ DHW Supply Branches_unit1, !- Name
+ Mains Inlet Branch_unit1,!- Branch 1 Name
+ Water Heater Branch_unit1, !- Branch 2 Name
+ DHW Supply Outlet Branch_unit1; !- Branch 3 Name
+
+BranchList,
+ DHW Demand Branches_unit1, !- Name
+ DHW Demand Inlet Branch_unit1, !- Branch 1 Name
+ Water Sink Branch_unit1, !- Branch 2 Name
+ Water Shower Branch_unit1, !- Branch 3 Name
+ Water ClothesWasher Branch_unit1, !- Branch 4 Name
+ Water Dishwasher Branch_unit1, !- Branch 5 Name
+ Water Bath Branch_unit1, !- Branch 6 Name
+ Mains Makeup Branch_unit1; !- Branch 7 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CONNECTOR:SPLITTER ===========
+
+Connector:Splitter,
+ DHW Demand Splitter_unit1, !- Name
+ DHW Demand Inlet Branch_unit1, !- Inlet Branch Name
+ Water Sink Branch_unit1, !- Outlet Branch 1 Name
+ Water Shower Branch_unit1, !- Outlet Branch 2 Name
+ Water ClothesWasher Branch_unit1, !- Outlet Branch 3 Name
+ Water Dishwasher Branch_unit1, !- Outlet Branch 4 Name
+ Water Bath Branch_unit1; !- Outlet Branch 5 Name
+
+Connector:Splitter,
+ DHW Supply Splitter_unit1, !- Name
+ Mains Inlet Branch_unit1,!- Inlet Branch Name
+ Water Heater Branch_unit1; !- Outlet Branch 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CONNECTOR:MIXER ===========
+
+Connector:Mixer,
+ DHW Demand Mixer_unit1, !- Name
+ Mains Makeup Branch_unit1, !- Outlet Branch Name
+ Water Sink Branch_unit1, !- Inlet Branch 1 Name
+ Water Shower Branch_unit1, !- Inlet Branch 2 Name
+ Water ClothesWasher Branch_unit1, !- Inlet Branch 3 Name
+ Water Dishwasher Branch_unit1, !- Inlet Branch 4 Name
+ Water Bath Branch_unit1; !- Inlet Branch 5 Name
+
+Connector:Mixer,
+ DHW Supply Mixer_unit1, !- Name
+ DHW Supply Outlet Branch_unit1, !- Outlet Branch Name
+ Water Heater Branch_unit1; !- Inlet Branch 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CONNECTORLIST ===========
+
+ConnectorList,
+ DHW Demand Connectors_unit1, !- Name
+ Connector:Splitter, !- Connector 1 Object Type
+ DHW Demand Splitter_unit1, !- Connector 1 Name
+ Connector:Mixer, !- Connector 2 Object Type
+ DHW Demand Mixer_unit1; !- Connector 2 Name
+
+ConnectorList,
+ DHW Supply Connectors_unit1, !- Name
+ Connector:Splitter, !- Connector 1 Object Type
+ DHW Supply Splitter_unit1, !- Connector 1 Name
+ Connector:Mixer, !- Connector 2 Object Type
+ DHW Supply Mixer_unit1; !- Connector 2 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: NODELIST ===========
+
+NodeList,
+ Zone Inlet Nodes_unit1, !- Name
+ Zone Inlet Node_unit1, !- Node 1 Name
+ HPWH Zone Inlet Node_unit1, !- Node 2 Name
+ OA Inlet Node_unit1, !- Node 3 Name
+ Dehumidifier Outlet Node;!- Node 4 Name
+
+NodeList,
+ Zone Exhaust Node_list_unit1, !- Name
+ Zone Exhaust Node_unit1, !- Node 1 Name
+ Zone Exhaust Node1_unit1,!- Node 2 Name
+ Zone3DehumidifierInlet; !- Node 3 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTDOORAIR:NODE ===========
+
+OutdoorAir:Node,
+ outside air inlet node_unit1, !- Name
+ 0.914355407629293; !- Height Above Ground {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTDOORAIR:NODELIST ===========
+
+OutdoorAir:NodeList,
+ outdoor air node_unit1; !- Node or NodeList Name 1
+
+
+!- =========== ALL OBJECTS IN CLASS: PIPE:ADIABATIC ===========
+
+Pipe:Adiabatic,
+ DHW Supply Outlet Pipe_unit1, !- Name
+ DHW Supply Outlet Pipe Inlet Node_unit1, !- Inlet Node Name
+ DHW Supply Outlet Node_unit1; !- Outlet Node Name
+
+Pipe:Adiabatic,
+ Mains Makeup Pipe_unit1, !- Name
+ Mains Makeup Pipe Inlet Node_unit1, !- Inlet Node Name
+ Mains Makeup Node_unit1; !- Outlet Node Name
+
+Pipe:Adiabatic,
+ DHW Demand Inlet Pipe_unit1, !- Name
+ DHW Demand Inlet Node_unit1, !- Inlet Node Name
+ DHW Demand Inlet Pipe Outlet Node_unit1; !- Outlet Node Name
+
+
+!- =========== ALL OBJECTS IN CLASS: PUMP:VARIABLESPEED ===========
+
+Pump:VariableSpeed,
+ Mains Pressure_unit1, !- Name
+ Mains Inlet Node_unit1, !- Inlet Node Name
+ Mains Pressure Outlet Node_unit1, !- Outlet Node Name
+ autosize, !- Design Maximum Flow Rate {m3/s}
+ 1, !- Design Pump Head {Pa}
+ 0, !- Design Power Consumption {W}
+ 1, !- Motor Efficiency
+ 0, !- Fraction of Motor Inefficiencies to Fluid Stream
+ 0, !- Coefficient 1 of the Part Load Performance Curve
+ 1, !- Coefficient 2 of the Part Load Performance Curve
+ 0, !- Coefficient 3 of the Part Load Performance Curve
+ 0, !- Coefficient 4 of the Part Load Performance Curve
+ 0, !- Design Minimum Flow Rate {m3/s}
+ Intermittent; !- Pump Control Type
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERHEATER:STRATIFIED ===========
+
+WaterHeater:Stratified,
+ Water Heater_Tank_unit1, !- Name
+ Water Heater, !- End-Use Subcategory
+ 0.196841372, !- Tank Volume {m3}
+ 1.594, !- Tank Height {m}
+ VerticalCylinder, !- Tank Shape
+ , !- Tank Perimeter {m}
+ 51, !- Maximum Temperature Limit {C}
+ MasterSlave, !- Heater Priority Control
+ dhw_setpt_hpwh, !- Heater 1 Setpoint Temperature Schedule Name
+ 2, !- Heater 1 Deadband Temperature Difference {deltaC}
+ autosize, !- Heater 1 Capacity {W}
+ 1.129, !- Heater 1 Height {m}
+ dhw_setpt_hpwh, !- Heater 2 Setpoint Temperature Schedule Name
+ 2, !- Heater 2 Deadband Temperature Difference {deltaC}
+ 0, !- Heater 2 Capacity {W}
+ 0.266, !- Heater 2 Height {m}
+ electricity, !- Heater Fuel Type
+ 1, !- Heater Thermal Efficiency
+ 8.3, !- Off Cycle Parasitic Fuel Consumption Rate {W}
+ Electricity, !- Off Cycle Parasitic Fuel Type
+ 0, !- Off Cycle Parasitic Heat Fraction to Tank
+ 1, !- Off Cycle Parasitic Height {m}
+ 8.3, !- On Cycle Parasitic Fuel Consumption Rate {W}
+ Electricity, !- On Cycle Parasitic Fuel Type
+ 0, !- On Cycle Parasitic Heat Fraction to Tank
+ 1, !- On Cycle Parasitic Height {m}
+ Zone, !- Ambient Temperature Indicator
+ , !- Ambient Temperature Schedule Name
+ living_unit1, !- Ambient Temperature Zone Name
+ , !- Ambient Temperature Outdoor Air Node Name
+ 4.536492, !- Uniform Skin Loss Coefficient per Unit Area to Ambient Temperature {W/m2-K}
+ 1, !- Skin Loss Fraction to Zone
+ , !- Off Cycle Flue Loss Coefficient to Ambient Temperature {W/K}
+ 1, !- Off Cycle Flue Loss Fraction to Zone
+ , !- Peak Use Flow Rate {m3/s}
+ , !- Use Flow Rate Fraction Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ Water Heater use inlet node_unit1, !- Use Side Inlet Node Name
+ Water Heater use outlet node_unit1, !- Use Side Outlet Node Name
+ 1, !- Use Side Effectiveness
+ 0, !- Use Side Inlet Height {m}
+ autocalculate, !- Use Side Outlet Height {m}
+ , !- Source Side Inlet Node Name
+ , !- Source Side Outlet Node Name
+ 1, !- Source Side Effectiveness
+ 0.7, !- Source Side Inlet Height {m}
+ 0, !- Source Side Outlet Height {m}
+ Fixed, !- Inlet Mode
+ autosize, !- Use Side Design Flow Rate {m3/s}
+ autosize, !- Source Side Design Flow Rate {m3/s}
+ 1.5, !- Indirect Water Heating Recovery Time {hr}
+ 1; !- Number of Nodes
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERHEATER:SIZING ===========
+
+WaterHeater:Sizing,
+ Water Heater_Tank_unit1, !- WaterHeater Name
+ ResidentialHUD-FHAMinimum, !- Design Mode
+ , !- Time Storage Can Meet Peak Draw {hr}
+ , !- Time for Tank Recovery {hr}
+ , !- Nominal Tank Volume for Autosizing Plant Connections {m3}
+ 3, !- Number of Bedrooms
+ 3; !- Number of Bathrooms
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERHEATER:HEATPUMP:WRAPPEDCONDENSER ===========
+
+WaterHeater:HeatPump:WrappedCondenser,
+ Water Heater_unit1, !- Name
+ always_avail, !- Availability Schedule Name
+ Compressor Setpoint, !- Compressor Setpoint Temperature Schedule Name
+ 5, !- Dead Band Temperature Difference {deltaC}
+ 0.0664166667, !- Condenser Bottom Location {m}
+ 0.8634166667, !- Condenser Top Location {m}
+ autocalculate, !- Evaporator Air Flow Rate {m3/s}
+ ZoneAirOnly, !- Inlet Air Configuration
+ Zone Exhaust Node1_unit1,!- Air Inlet Node Name
+ HPWH Zone Inlet Node_unit1, !- Air Outlet Node Name
+ , !- Outdoor Air Node Name
+ , !- Exhaust Air Node Name
+ , !- Inlet Air Temperature Schedule Name
+ , !- Inlet Air Humidity Schedule Name
+ living_unit1, !- Inlet Air Zone Name
+ WaterHeater:Stratified, !- Tank Object Type
+ Water Heater_Tank_unit1, !- Tank Name
+ Water Heater use inlet node_unit1, !- Tank Use Side Inlet Node Name
+ Water Heater use outlet node_unit1, !- Tank Use Side Outlet Node Name
+ Coil:WaterHeating:AirToWaterHeatPump:Wrapped, !- DX Coil Object Type
+ Heat Pump Water Heater Evaporator_unit1, !- DX Coil Name
+ 10.0, !- Minimum Inlet Air Temperature for Compressor Operation {C}
+ 48.89, !- Maximum Inlet Air Temperature for Compressor Operation {C}
+ Zone, !- Compressor Location
+ , !- Compressor Ambient Temperature Schedule Name
+ Fan:OnOff, !- Fan Object Type
+ Heat Pump Water Heater Fan_unit1, !- Fan Name
+ DrawThrough, !- Fan Placement
+ 0, !- On Cycle Parasitic Electric Load {W}
+ 0, !- Off Cycle Parasitic Electric Load {W}
+ , !- Parasitic Heat Rejection Location
+ , !- Inlet Air Mixer Node Name
+ , !- Outlet Air Splitter Node Name
+ , !- Inlet Air Mixer Schedule Name
+ MutuallyExclusive, !- Tank Element Control Logic
+ 1.262, !- Control Sensor 1 Height In Stratified Tank {m}
+ 0.75, !- Control Sensor 1 Weight {dimensionless}
+ 0.464; !- Control Sensor 2 Height In Stratified Tank {m}
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTLOOP ===========
+
+PlantLoop,
+ DHW Loop_unit1, !- Name
+ Water, !- Fluid Type
+ , !- User Defined Fluid Type
+ DHW Loop Operation_unit1,!- Plant Equipment Operation Scheme Name
+ DHW Supply Outlet Node_unit1, !- Loop Temperature Setpoint Node Name
+ 100, !- Maximum Loop Temperature {C}
+ 0, !- Minimum Loop Temperature {C}
+ autosize, !- Maximum Loop Flow Rate {m3/s}
+ 0, !- Minimum Loop Flow Rate {m3/s}
+ autocalculate, !- Plant Loop Volume {m3}
+ Mains Inlet Node_unit1, !- Plant Side Inlet Node Name
+ DHW Supply Outlet Node_unit1, !- Plant Side Outlet Node Name
+ DHW Supply Branches_unit1, !- Plant Side Branch List Name
+ DHW Supply Connectors_unit1, !- Plant Side Connector List Name
+ DHW Demand Inlet Node_unit1, !- Demand Side Inlet Node Name
+ Mains Makeup Node_unit1, !- Demand Side Outlet Node Name
+ DHW Demand Branches_unit1, !- Demand Side Branch List Name
+ DHW Demand Connectors_unit1, !- Demand Side Connector List Name
+ Optimal; !- Load Distribution Scheme
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTEQUIPMENTLIST ===========
+
+PlantEquipmentList,
+ DHW Plant Equipment_unit1, !- Name
+ WaterHeater:HeatPump:WrappedCondenser, !- Equipment 1 Object Type
+ Water Heater_unit1; !- Equipment 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTEQUIPMENTOPERATION:HEATINGLOAD ===========
+
+PlantEquipmentOperation:HeatingLoad,
+ DHW Control Scheme_unit1,!- Name
+ 0.0, !- Load Range 1 Lower Limit {W}
+ 1000000000000000, !- Load Range 1 Upper Limit {W}
+ DHW Plant Equipment_unit1; !- Range 1 Equipment List Name
+
+
+!- =========== ALL OBJECTS IN CLASS: PLANTEQUIPMENTOPERATIONSCHEMES ===========
+
+PlantEquipmentOperationSchemes,
+ DHW Loop Operation_unit1,!- Name
+ PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type
+ DHW Control Scheme_unit1,!- Control Scheme 1 Name
+ always_avail; !- Control Scheme 1 Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AVAILABILITYMANAGER:SCHEDULED ===========
+
+AvailabilityManager:Scheduled,
+ System availability, !- Name
+ always_avail; !- Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: AVAILABILITYMANAGERASSIGNMENTLIST ===========
+
+AvailabilityManagerAssignmentList,
+ availability list, !- Name
+ AvailabilityManager:Scheduled, !- Availability Manager 1 Object Type
+ System availability; !- Availability Manager 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: SETPOINTMANAGER:SCHEDULED ===========
+
+SetpointManager:Scheduled,
+ DHW Loop Setpoint Manager_unit1, !- Name
+ Temperature, !- Control Variable
+ DHWSupplySetpoint, !- Schedule Name
+ DHW Supply Outlet Node_unit1; !- Setpoint Node or NodeList Name
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERUSE:EQUIPMENT ===========
+
+WaterUse:Equipment,
+ Clothes Washer_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 1.6219189818e-06, !- Peak Flow Rate {m3/s}
+ ClothesWasher, !- Flow Rate Fraction Schedule Name
+ CWWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Dishwasher_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 6.36685353e-07, !- Peak Flow Rate {m3/s}
+ Dishwasher, !- Flow Rate Fraction Schedule Name
+ DWWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Sinks_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 7.1934e-05, !- Peak Flow Rate {m3/s}
+ BA_sink_sch, !- Flow Rate Fraction Schedule Name
+ SSBWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Showers_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 0.000141975, !- Peak Flow Rate {m3/s}
+ BA_shower_sch, !- Flow Rate Fraction Schedule Name
+ SSBWaterTempSchedule; !- Target Temperature Schedule Name
+
+WaterUse:Equipment,
+ Baths_unit1, !- Name
+ Domestic Hot Water, !- End-Use Subcategory
+ 0.00027764, !- Peak Flow Rate {m3/s}
+ BA_bath_sch, !- Flow Rate Fraction Schedule Name
+ SSBWaterTempSchedule; !- Target Temperature Schedule Name
+
+
+!- =========== ALL OBJECTS IN CLASS: WATERUSE:CONNECTIONS ===========
+
+WaterUse:Connections,
+ DHW Sinks_unit1, !- Name
+ Water Sink Inlet Node_unit1, !- Inlet Node Name
+ Water Sink Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Sinks_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW Showers_unit1, !- Name
+ Water Shower Inlet Node_unit1, !- Inlet Node Name
+ Water Shower Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Showers_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW ClothesWasher_unit1, !- Name
+ Water ClothesWasher Inlet Node_unit1, !- Inlet Node Name
+ Water ClothesWasher Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Clothes Washer_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW DishWasher_unit1, !- Name
+ Water DishWasher Inlet Node_unit1, !- Inlet Node Name
+ Water DishWasher Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Dishwasher_unit1; !- Water Use Equipment 1 Name
+
+WaterUse:Connections,
+ DHW Baths_unit1, !- Name
+ Water Bath Inlet Node_unit1, !- Inlet Node Name
+ Water Bath Outlet Node_unit1, !- Outlet Node Name
+ , !- Supply Water Storage Tank Name
+ , !- Reclamation Water Storage Tank Name
+ , !- Hot Water Supply Temperature Schedule Name
+ , !- Cold Water Supply Temperature Schedule Name
+ None, !- Drain Water Heat Exchanger Type
+ , !- Drain Water Heat Exchanger Destination
+ , !- Drain Water Heat Exchanger U-Factor Times Area {W/K}
+ Baths_unit1; !- Water Use Equipment 1 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: CURVE:QUADRATIC ===========
+
+Curve:Quadratic,
+ HPWH-COP-fPLR, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACCoolCapFFF, !- Name
+ 0.8, !- Coefficient1 Constant
+ 0.2, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.5, !- Minimum Value of x
+ 1.5; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACCOOLEIRFFF, !- Name
+ 1.156, !- Coefficient1 Constant
+ -0.1816, !- Coefficient2 x
+ 0.0256, !- Coefficient3 x**2
+ 0.5, !- Minimum Value of x
+ 1.5; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACCOOLPLFFPLR, !- Name
+ 0.85, !- Coefficient1 Constant
+ 0.15, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPACHeatEIRFFF, !- Name
+ 1.3824, !- Coefficient1 Constant
+ -0.4336, !- Coefficient2 x
+ 0.0512, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ ACCoolingCAPFFF, !- Name
+ 0.718605468, !- Coefficient1 Constant
+ 0.410099989, !- Coefficient2 x
+ -0.128705457, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACCoolingEIRFFF, !- Name
+ 1.32299905, !- Coefficient1 Constant
+ -0.477711207, !- Coefficient2 x
+ 0.154712157, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACCoolingPLFFPLR, !- Name
+ 0.90, !- Coefficient1 Constant
+ 0.10, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPCoolingCAPFFF, !- Name
+ 0.718664047, !- Coefficient1 Constant
+ 0.41797409, !- Coefficient2 x
+ -0.136638137, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPCoolingEIRFFF, !- Name
+ 1.143487507, !- Coefficient1 Constant
+ -0.13943972, !- Coefficient2 x
+ -0.004047787, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPCOOLPLFFPLR, !- Name
+ 0.90, !- Coefficient1 Constant
+ 0.10, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPHeatingCAPFFF, !- Name
+ 0.694045465, !- Coefficient1 Constant
+ 0.474207981, !- Coefficient2 x
+ -0.168253446, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHeatingEIRFFF, !- Name
+ 2.185418751, !- Coefficient1 Constant
+ -1.942827919, !- Coefficient2 x
+ 0.757409168, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHeatPLFFPLR, !- Name
+ 0.90, !- Coefficient1 Constant
+ 0.10, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPLowStageHeatingCAPFFF, !- Name
+ 0.741466907, !- Coefficient1 Constant
+ 0.378645444, !- Coefficient2 x
+ -0.119754733, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPLowStageHeatingEIRFFF, !- Name
+ 2.153618211, !- Coefficient1 Constant
+ -1.737190609, !- Coefficient2 x
+ 0.584269478, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageHeatingCAPFFF,!- Name
+ 0.76634609, !- Coefficient1 Constant
+ 0.32840943, !- Coefficient2 x
+ -0.094701495, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageHeatingEIRFFF,!- Name
+ 2.001041353, !- Coefficient1 Constant
+ -1.58869128, !- Coefficient2 x
+ 0.587593517, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HP2StageHeatingPLFFPLR, !- Name
+ 0.93, !- Coefficient1 Constant
+ 0.07, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ HPLowStageCoolingCAPFFF, !- Name
+ 0.655239515, !- Coefficient1 Constant
+ 0.511655216, !- Coefficient2 x
+ -0.166894731, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPLowStageCoolingEIRFFF, !- Name
+ 1.639108268, !- Coefficient1 Constant
+ -0.998953996, !- Coefficient2 x
+ 0.359845728, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageCoolingCAPFFF,!- Name
+ 0.618281092, !- Coefficient1 Constant
+ 0.569060264, !- Coefficient2 x
+ -0.187341356, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HPHighStageCoolingEIRFFF,!- Name
+ 1.570774717, !- Coefficient1 Constant
+ -0.914152018, !- Coefficient2 x
+ 0.343377302, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ HP2StageCoolingPLFFPLR, !- Name
+ 0.93, !- Coefficient1 Constant
+ 0.07, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ ACLowStageCoolingCAPFFF, !- Name
+ 0.65673024, !- Coefficient1 Constant
+ 0.516470835, !- Coefficient2 x
+ -0.172887149, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACLowStageCoolingEIRFFF, !- Name
+ 1.562945114, !- Coefficient1 Constant
+ -0.791859997, !- Coefficient2 x
+ 0.230030877, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACHighStageCoolingCAPFFF,!- Name
+ 0.690334551, !- Coefficient1 Constant
+ 0.464383753, !- Coefficient2 x
+ -0.154507638, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ ACHighStageCoolingEIRFFF,!- Name
+ 1.31565404, !- Coefficient1 Constant
+ -0.482467162, !- Coefficient2 x
+ 0.166239001, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1.5, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 2, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless; !- Output Unit Type
+
+Curve:Quadratic,
+ AC2StageCoolingPLFFPLR, !- Name
+ 0.93, !- Coefficient1 Constant
+ 0.07, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+Curve:Quadratic,
+ Cool-PLF-fPLR, !- Name
+ 0.80141423, !- Coefficient1 Constant
+ 0.23744685, !- Coefficient2 x
+ -0.0393773, !- Coefficient3 x**2
+ 0, !- Minimum Value of x
+ 1, !- Maximum Value of x
+ 0.7, !- Minimum Curve Output
+ 1; !- Maximum Curve Output
+
+Curve:Quadratic,
+ ZoneDehumidPLFFPLR, !- Name
+ 0.95, !- Coefficient1 Constant
+ 0.05, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Minimum Value of x
+ 1.0; !- Maximum Value of x
+
+
+!- =========== ALL OBJECTS IN CLASS: CURVE:CUBIC ===========
+
+Curve:Cubic,
+ HPACHeatCapFT, !- Name
+ 0.758746, !- Coefficient1 Constant
+ 0.027626, !- Coefficient2 x
+ 0.000148716, !- Coefficient3 x**2
+ 0.0000034992, !- Coefficient4 x**3
+ -20.0, !- Minimum Value of x
+ 20.0; !- Maximum Value of x
+
+Curve:Cubic,
+ HPACHeatCapFFF, !- Name
+ 0.84, !- Coefficient1 Constant
+ 0.16, !- Coefficient2 x
+ 0.0, !- Coefficient3 x**2
+ 0.0, !- Coefficient4 x**3
+ 0.5, !- Minimum Value of x
+ 1.5; !- Maximum Value of x
+
+Curve:Cubic,
+ HPACHeatEIRFT, !- Name
+ 1.19248, !- Coefficient1 Constant
+ -0.0300438, !- Coefficient2 x
+ 0.00103745, !- Coefficient3 x**2
+ -0.000023328, !- Coefficient4 x**3
+ -20.0, !- Minimum Value of x
+ 20.0; !- Maximum Value of x
+
+Curve:Cubic,
+ Fan-EIR-fPLR, !- Name
+ 0.00000000, !- Coefficient1 Constant
+ 1.00000000, !- Coefficient2 x
+ 0.00000000, !- Coefficient3 x**2
+ 0.00000000, !- Coefficient4 x**3
+ 0, !- Minimum Value of x
+ 1, !- Maximum Value of x
+ 0, !- Minimum Curve Output
+ 1; !- Maximum Curve Output
+
+Curve:Cubic,
+ ConstantCubic, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Coefficient4 x**3
+ -100, !- Minimum Value of x
+ 100; !- Maximum Value of x
+
+
+!- =========== ALL OBJECTS IN CLASS: CURVE:BIQUADRATIC ===========
+
+Curve:Biquadratic,
+ HPWH-Htg-Cap-fT, !- Name
+ 0.563, !- Coefficient1 Constant
+ 0.0437, !- Coefficient2 x
+ 0.000039, !- Coefficient3 x**2
+ 0.0055, !- Coefficient4 y
+ -.000148, !- Coefficient5 y**2
+ -.000145, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 100, !- Maximum Value of y
+ 0; !- Minimum Curve Output
+
+Curve:Biquadratic,
+ HPWH-Htg-COP-fT, !- Name
+ 1.1332, !- Coefficient1 Constant
+ 0.063, !- Coefficient2 x
+ -.0000979, !- Coefficient3 x**2
+ -.00972, !- Coefficient4 y
+ -.0000214, !- Coefficient5 y**2
+ -.000686, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+Curve:Biquadratic,
+ HPWHHeatingCapFTemp, !- Name
+ 0.369827, !- Coefficient1 Constant
+ 0.043341, !- Coefficient2 x
+ -0.00023, !- Coefficient3 x**2
+ 0.000466, !- Coefficient4 y
+ 0.000026, !- Coefficient5 y**2
+ -0.00027, !- Coefficient6 x*y
+ 0.0, !- Minimum Value of x
+ 40.0, !- Maximum Value of x
+ 20.0, !- Minimum Value of y
+ 90.0, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPWHHeatingCOPFTemp, !- Name
+ 1.19713, !- Coefficient1 Constant
+ 0.077849, !- Coefficient2 x
+ -0.0000016, !- Coefficient3 x**2
+ -0.02675, !- Coefficient4 y
+ 0.000296, !- Coefficient5 y**2
+ -0.00112, !- Coefficient6 x*y
+ 0.0, !- Minimum Value of x
+ 40.0, !- Maximum Value of x
+ 20.0, !- Minimum Value of y
+ 90.0, !- Maximum Value of y
+ , !- Minimum Curve Output
+ , !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPACCoolCapFT, !- Name
+ 0.766956, !- Coefficient1 Constant
+ 0.0107756, !- Coefficient2 x
+ -0.0000414703, !- Coefficient3 x**2
+ 0.00134961, !- Coefficient4 y
+ -0.000261144, !- Coefficient5 y**2
+ 0.000457488, !- Coefficient6 x*y
+ 12.77778, !- Minimum Value of x
+ 23.88889, !- Maximum Value of x
+ 21.11111, !- Minimum Value of y
+ 46.11111; !- Maximum Value of y
+
+Curve:Biquadratic,
+ HPACCOOLEIRFT, !- Name
+ 0.297145, !- Coefficient1 Constant
+ 0.0430933, !- Coefficient2 x
+ -0.000748766, !- Coefficient3 x**2
+ 0.00597727, !- Coefficient4 y
+ 0.000482112, !- Coefficient5 y**2
+ -0.000956448, !- Coefficient6 x*y
+ 12.77778, !- Minimum Value of x
+ 23.88889, !- Maximum Value of x
+ 21.11111, !- Minimum Value of y
+ 46.11111; !- Maximum Value of y
+
+Curve:Biquadratic,
+ Defrost_EIR_FT, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Coefficient4 y
+ 0, !- Coefficient5 y**2
+ 0, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+Curve:Biquadratic,
+ dummy-waste-heat-curve, !- Name
+ 1, !- Coefficient1 Constant
+ 0, !- Coefficient2 x
+ 0, !- Coefficient3 x**2
+ 0, !- Coefficient4 y
+ 0, !- Coefficient5 y**2
+ 0, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 1, !- Minimum Curve Output
+ 1, !- Maximum Curve Output
+ Dimensionless, !- Input Unit Type for X
+ Dimensionless, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACCoolingCAPFTemp, !- Name
+ 1.5509, !- Coefficient1 Constant
+ -0.07505, !- Coefficient2 x
+ 0.0031, !- Coefficient3 x**2
+ 0.0024, !- Coefficient4 y
+ -0.00005, !- Coefficient5 y**2
+ -0.00043, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACCoolingEIRFTemp, !- Name
+ -0.30428, !- Coefficient1 Constant
+ 0.11805, !- Coefficient2 x
+ -0.00342, !- Coefficient3 x**2
+ -0.00626, !- Coefficient4 y
+ 0.0007, !- Coefficient5 y**2
+ -0.00047, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPCoolingCAPFTemp, !- Name
+ 1.55736, !- Coefficient1 Constant
+ -0.074448, !- Coefficient2 x
+ 0.003099, !- Coefficient3 x**2
+ 0.00146, !- Coefficient4 y
+ -0.000041, !- Coefficient5 y**2
+ -0.000427, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPCoolingEIRFTemp, !- Name
+ -0.350448, !- Coefficient1 Constant
+ 0.11681, !- Coefficient2 x
+ -0.0034, !- Coefficient3 x**2
+ -0.001226, !- Coefficient4 y
+ 0.000601, !- Coefficient5 y**2
+ -0.000467, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHeatingCAPFTemp, !- Name
+ 0.876825, !- Coefficient1 Constant
+ -0.002955, !- Coefficient2 x
+ -0.000058, !- Coefficient3 x**2
+ 0.025335, !- Coefficient4 y
+ 0.000196, !- Coefficient5 y**2
+ -0.000043, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHeatingEIRFTemp, !- Name
+ 0.704658, !- Coefficient1 Constant
+ 0.008767, !- Coefficient2 x
+ 0.000625, !- Coefficient3 x**2
+ -0.009037, !- Coefficient4 y
+ 0.000738, !- Coefficient5 y**2
+ -0.001025, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageHeatingCAPFTemp, !- Name
+ 0.84613, !- Coefficient1 Constant
+ -0.002279, !- Coefficient2 x
+ -0.000047, !- Coefficient3 x**2
+ 0.026703, !- Coefficient4 y
+ 0.000201, !- Coefficient5 y**2
+ -0.000079, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageHeatingEIRFTemp, !- Name
+ 0.551837, !- Coefficient1 Constant
+ 0.02038, !- Coefficient2 x
+ 0.000546, !- Coefficient3 x**2
+ -0.009638, !- Coefficient4 y
+ 0.000785, !- Coefficient5 y**2
+ -0.00125, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageHeatingCAPFTemp, !- Name
+ 0.818223, !- Coefficient1 Constant
+ 0.001981, !- Coefficient2 x
+ -0.000203, !- Coefficient3 x**2
+ 0.028703, !- Coefficient4 y
+ 0.000207, !- Coefficient5 y**2
+ -0.000071, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageHeatingEIRFTemp, !- Name
+ 0.81584, !- Coefficient1 Constant
+ -0.00615, !- Coefficient2 x
+ 0.001021, !- Coefficient3 x**2
+ -0.001301, !- Coefficient4 y
+ 0.001083, !- Coefficient5 y**2
+ -0.001487, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageCoolingCAPFTemp, !- Name
+ 1.658788, !- Coefficient1 Constant
+ -0.083453, !- Coefficient2 x
+ 0.003424, !- Coefficient3 x**2
+ 0.002433, !- Coefficient4 y
+ -0.000045, !- Coefficient5 y**2
+ -0.000534, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPLowStageCoolingEIRFTemp, !- Name
+ -0.582916, !- Coefficient1 Constant
+ 0.158101, !- Coefficient2 x
+ -0.004398, !- Coefficient3 x**2
+ -0.020335, !- Coefficient4 y
+ 0.00108, !- Coefficient5 y**2
+ -0.00064, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageCoolingCAPFTemp, !- Name
+ 1.472738, !- Coefficient1 Constant
+ -0.067222, !- Coefficient2 x
+ 0.00292, !- Coefficient3 x**2
+ 0.000052, !- Coefficient4 y
+ -0.00003, !- Coefficient5 y**2
+ -0.000359, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ HPHighStageCoolingEIRFTemp, !- Name
+ -0.488196, !- Coefficient1 Constant
+ 0.099162, !- Coefficient2 x
+ -0.00237, !- Coefficient3 x**2
+ 0.019503, !- Coefficient4 y
+ 0.00043, !- Coefficient5 y**2
+ -0.001097, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACLowStageCoolingCAPFTemp, !- Name
+ 1.66458, !- Coefficient1 Constant
+ -0.08039, !- Coefficient2 x
+ 0.0033, !- Coefficient3 x**2
+ 0.00124, !- Coefficient4 y
+ -0.00003, !- Coefficient5 y**2
+ -0.00052, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACLowStageCoolingEIRFTemp, !- Name
+ -0.42738, !- Coefficient1 Constant
+ 0.14191, !- Coefficient2 x
+ -0.00412, !- Coefficient3 x**2
+ -0.01406, !- Coefficient4 y
+ 0.00083, !- Coefficient5 y**2
+ -0.00043, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACHighStageCoolingCAPFTemp, !- Name
+ 1.36788, !- Coefficient1 Constant
+ -0.06257, !- Coefficient2 x
+ 0.0028, !- Coefficient3 x**2
+ 0.00504, !- Coefficient4 y
+ -0.00007, !- Coefficient5 y**2
+ -0.00045, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ ACHighStageCoolingEIRFTemp, !- Name
+ 0.04232, !- Coefficient1 Constant
+ 0.07892, !- Coefficient2 x
+ -0.00238, !- Coefficient3 x**2
+ -0.00304, !- Coefficient4 y
+ 0.00053, !- Coefficient5 y**2
+ -0.00032, !- Coefficient6 x*y
+ 0, !- Minimum Value of x
+ 50, !- Maximum Value of x
+ 0, !- Minimum Value of y
+ 50, !- Maximum Value of y
+ 0, !- Minimum Curve Output
+ 5, !- Maximum Curve Output
+ Temperature, !- Input Unit Type for X
+ Temperature, !- Input Unit Type for Y
+ Dimensionless; !- Output Unit Type
+
+Curve:Biquadratic,
+ Cool-Cap-fT, !- Name
+ 1.26489391, !- Coefficient1 Constant
+ -0.035054982, !- Coefficient2 x
+ 0.00211086, !- Coefficient3 x**2
+ -0.001526886, !- Coefficient4 y
+ -0.0000070308, !- Coefficient5 y**2
+ -0.0004691844, !- Coefficient6 x*y
+ -100, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ -100, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+Curve:Biquadratic,
+ Cool-EIR-fT, !- Name
+ 0.38402403, !- Coefficient1 Constant
+ 0.029696724, !- Coefficient2 x
+ -0.0011329308, !- Coefficient3 x**2
+ 0.006490674, !- Coefficient4 y
+ 0.0002626992, !- Coefficient5 y**2
+ -0.0001207224, !- Coefficient6 x*y
+ -100, !- Minimum Value of x
+ 100, !- Maximum Value of x
+ -100, !- Minimum Value of y
+ 100; !- Maximum Value of y
+
+Curve:Biquadratic,
+ ZoneDehumidWaterRemoval, !- Name
+ -2.724878664080, !- Coefficient1 Constant
+ 0.100711983591, !- Coefficient2 x
+ -0.000990538285, !- Coefficient3 x**2
+ 0.050053043874, !- Coefficient4 y
+ -0.000203629282, !- Coefficient5 y**2
+ -0.000341750531, !- Coefficient6 x*y
+ 21.0, !- Minimum Value of x
+ 32.22, !- Maximum Value of x
+ 40.0, !- Minimum Value of y
+ 80.0; !- Maximum Value of y
+
+Curve:Biquadratic,
+ ZoneDehumidEnergyFactor, !- Name
+ -2.388319068955, !- Coefficient1 Constant
+ 0.093047739452, !- Coefficient2 x
+ -0.001369700327, !- Coefficient3 x**2
+ 0.066533716758, !- Coefficient4 y
+ -0.000343198063, !- Coefficient5 y**2
+ -0.000562490295, !- Coefficient6 x*y
+ 21.0, !- Minimum Value of x
+ 32.22, !- Maximum Value of x
+ 40.0, !- Minimum Value of y
+ 80.0; !- Maximum Value of y
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY ===========
+
+Output:VariableDictionary,Regular;
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:CONSTRUCTIONS ===========
+
+Output:Constructions,Constructions,Materials;
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:TABLE:SUMMARYREPORTS ===========
+
+
+Output:Table:SummaryReports,
+ InputVerificationandResultsSummary, !- Report 1 Name
+ EquipmentSummary, !- Report 2 Name
+ ClimaticDataSummary, !- Report 3 Name
+ EnvelopeSummary, !- Report 4 Name
+ AllSummary; !- Report 5 Name
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:TABLE:MONTHLY ===========
+
+Output:Table:Monthly,
+ FanSplit, !- Name
+ 3, !- Digits After Decimal
+ Air System Cooling Coil Total Cooling Energy, !- Variable or Meter 1 Name
+ HoursNonZero, !- Aggregation Type for Variable or Meter 1
+ Air System Fan Electric Energy, !- Variable or Meter 2 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 2
+ Air System Heating Coil Total Heating Energy, !- Variable or Meter 3 Name
+ HoursNonZero, !- Aggregation Type for Variable or Meter 3
+ Air System Fan Electric Energy, !- Variable or Meter 4 Name
+ SumOrAverageDuringHoursShown, !- Aggregation Type for Variable or Meter 4
+ Air System Fan Electric Energy, !- Variable or Meter 5 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 5
+
+Output:Table:Monthly,
+ CoilLoads, !- Name
+ 2, !- Digits After Decimal
+ Heating Coil Heating Rate , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Heating Coil Air Heating Rate , !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Cooling Coil Total Cooling Rate , !- Variable or Meter 3 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 3
+
+Output:Table:Monthly,
+ Water Heater: Loads, !- Name
+ 2, !- Digits After Decimal
+ Water Heater Total Demand Rate , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Water Heater Total Demand Energy , !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Water Heater Heating Rate , !- Variable or Meter 3 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 3
+ Water Heater Heating Energy , !- Variable or Meter 4 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 4
+
+Output:Table:Monthly,
+ Heating and Cooling Loads, !- Name
+ 2, !- Digits After Decimal
+ Zone/Sys Sensible Cooling Energy , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Zone/Sys Sensible Heating Energy , !- Variable or Meter 2 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 2
+
+Output:Table:Monthly,
+ Lighting Loads, !- Name
+ 2, !- Digits After Decimal
+ Zone Lights Electric Consumption , !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Exterior Lights Electric Consumption , !- Variable or Meter 2 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 2
+
+Output:Table:Monthly,
+ InternalGains, !- Name
+ 2, !- Digits After Decimal
+ Zone People Total Heat Gain, !- Variable or Meter 1 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 1
+ Zone Lights Total Heat Gain, !- Variable or Meter 2 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 2
+ Zone Electric Equipment Total Heat Gain, !- Variable or Meter 3 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 3
+ Zone Gas Equipment Total Heat Gain, !- Variable or Meter 4 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 4
+ Zone Other Equipment Total Heat Gain, !- Variable or Meter 5 Name
+ SumOrAverage, !- Aggregation Type for Variable or Meter 5
+ Zone Total Internal Total Heat Gain, !- Variable or Meter 6 Name
+ SumOrAverage; !- Aggregation Type for Variable or Meter 6
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUTCONTROL:TABLE:STYLE ===========
+
+OutputControl:Table:Style,
+ CommaAndHTML, !- Column Separator
+ InchPound; !- Unit Conversion
+
+
+!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE ===========
+
+Output:Variable,*,Cooling Coil Sensible Cooling Rate,Hourly;
+Output:Variable,*,Cooling Coil Latent Cooling Rate,Hourly;
+Output:Variable,*,Cooling Coil Total Cooling Rate,Hourly;
+Output:Variable,*,Heating Coil Heating Rate,Hourly;
diff --git a/third_party/ssc/shared/CMakeLists.txt b/third_party/ssc/shared/CMakeLists.txt
index 09ad25b32cf..171aa22c4be 100644
--- a/third_party/ssc/shared/CMakeLists.txt
+++ b/third_party/ssc/shared/CMakeLists.txt
@@ -31,6 +31,10 @@ set(SHARED_SRC
# lib_battery_dispatch_manual.h
lib_battery_lifetime.cpp
lib_battery_lifetime.h
+ lib_battery_lifetime_calendar_cycle.cpp
+ lib_battery_lifetime_calendar_cycle.h
+ lib_battery_lifetime_nmc.cpp
+ lib_battery_lifetime_nmc.h
lib_battery_powerflow.cpp
lib_battery_powerflow.h
lib_battery_voltage.cpp
diff --git a/third_party/ssc/shared/lib_battery.cpp b/third_party/ssc/shared/lib_battery.cpp
index fff5126ee05..c0b0262107c 100644
--- a/third_party/ssc/shared/lib_battery.cpp
+++ b/third_party/ssc/shared/lib_battery.cpp
@@ -30,14 +30,17 @@ Define Thermal Model
*/
void thermal_t::initialize() {
- if (params->cap_vs_temp.nrows() < 2 || params->cap_vs_temp.ncols() != 2) {
+ if (!params->analytical_model && (params->cap_vs_temp.nrows() < 2 || params->cap_vs_temp.ncols() != 2)) {
throw std::runtime_error("thermal_t: capacity vs temperature matrix must have two columns and at least two rows");
}
- size_t n = params->cap_vs_temp.nrows();
- for (int i = 0; i < (int) n; i++) {
- params->cap_vs_temp(i, 0);
+ if (!params->analytical_model) {
+ size_t n = params->cap_vs_temp.nrows();
+ for (int i = 0; i < (int) n; i++) {
+ params->cap_vs_temp(i, 0);
+ }
}
+
state = std::make_shared();
if (params->option == thermal_params::SCHEDULE)
state->T_room = params->T_room_schedule[0];
@@ -48,7 +51,7 @@ void thermal_t::initialize() {
state->T_batt_prev = state->T_room;
state->heat_dissipated = 0;
state->q_relative_thermal = 100;
- dt_sec = params->dt_hour * 3600;
+ dt_sec = params->dt_hr * 3600;
}
thermal_t::thermal_t(double dt_hour, double mass, double surface_area, double R, double Cp, double h,
@@ -65,7 +68,27 @@ thermal_t::thermal_t(double dt_hour, double mass, double surface_area, double R,
params = std::shared_ptr(new thermal_params({dt_hour, mass, surface_area, Cp, h, R, c_vs_t}));
params->option = thermal_params::VALUE;
params->T_room_init = T_room_C;
+ params->analytical_model = false;
+ initialize();
+}
+
+thermal_t::thermal_t(double dt_hour, double mass, double surface_area, double R, double Cp, double h,
+ double T_room_C) {
+ params = std::shared_ptr(new thermal_params({dt_hour, mass, surface_area, Cp, h, R, util::matrix_t()}));
+ params->option = thermal_params::VALUE;
+ params->T_room_init = T_room_C;
+ params->analytical_model = true;
+ initialize();
+}
+
+thermal_t::thermal_t(double dt_hour, double mass, double surface_area, double R, double Cp, double h,
+ std::vector T_room_C) {
+ params = std::shared_ptr(new thermal_params({ dt_hour, mass, surface_area, Cp, h, R, util::matrix_t()}));
+ params->option = thermal_params::SCHEDULE;
+ params->T_room_schedule = std::move(T_room_C);
+ params->analytical_model = true;
initialize();
+ state->T_room = params->T_room_schedule[0];
}
thermal_t::thermal_t(std::shared_ptr p) {
@@ -101,7 +124,15 @@ void thermal_t::replace_battery(size_t lifetimeIndex) {
}
void thermal_t::calc_capacity() {
- double percent = util::linterp_col(params->cap_vs_temp, 0, state->T_batt, 1);
+ double percent;
+ if (params->analytical_model) {
+ percent = 100. * exp(-(Ea_d0_1 / Rug) * (1 /( state->T_batt+273) - 1 / T_ref) -
+ (Ea_d0_2 / Rug) * pow((1 / (state->T_batt+273) - 1 / T_ref), 2));
+ }
+ else
+ {
+ percent = util::linterp_col(params->cap_vs_temp, 0, state->T_batt, 1);
+ }
if (std::isnan(percent) || percent < 0 || percent > 100) {
percent = 100;
@@ -167,7 +198,7 @@ void losses_t::initialize() {
fail:
throw std::runtime_error("losses_t error: loss arrays length must be 1 or 12 for monthly input mode");
}
- else if (params->loss_choice == losses_params::SCHEDULE) {
+ else {
if (params->schedule_loss.empty()) {
throw std::runtime_error("losses_t error: loss length must be greater than 0 for schedule mode");
}
@@ -322,7 +353,7 @@ battery_params::battery_params(const std::shared_ptr &cap, cons
const std::shared_ptr &life,
const std::shared_ptr &loss) {
chem = -1;
- dt_hour = 0.;
+ dt_hr = 0.;
nominal_energy = 0;
nominal_voltage = 0;
capacity = cap;
@@ -340,7 +371,7 @@ battery_params::battery_params(const battery_params& rhs) {
battery_params &battery_params::operator=(const battery_params &rhs) {
if (this != &rhs) {
chem = rhs.chem;
- dt_hour = rhs.dt_hour;
+ dt_hr = rhs.dt_hr;
nominal_voltage = rhs.nominal_voltage;
nominal_energy = rhs.nominal_energy;
if (capacity)
@@ -391,7 +422,10 @@ void battery_t::initialize() {
}
// lifetime
- lifetime = std::unique_ptr(new lifetime_t(params->lifetime));
+ if (params->lifetime->model_choice == lifetime_params::CALCYC)
+ lifetime = std::unique_ptr(new lifetime_calendar_cycle_t(params->lifetime));
+ else
+ lifetime = std::unique_ptr(new lifetime_nmc_t(params->lifetime));
// thermal
thermal = std::unique_ptr(new thermal_t(params->thermal));
@@ -408,11 +442,15 @@ battery_t::battery_t(double dt_hr, int chem, capacity_t *capacity_model, voltage
voltage = std::unique_ptr(voltage_model);
lifetime = std::unique_ptr(lifetime_model);
thermal = std::unique_ptr(thermal_model);
- losses = std::unique_ptr(losses_model);
+ if (losses_model == nullptr) {
+ losses = std::unique_ptr(new losses_t());
+ } else {
+ losses = std::unique_ptr(losses_model);
+ }
state = std::make_shared(capacity->state, voltage->state, thermal->state, lifetime->state, losses->state);
params = std::make_shared(capacity->params, voltage->params, thermal->params, lifetime->params, losses->params);
- params->dt_hour = dt_hr;
+ params->dt_hr = dt_hr;
params->chem = chem;
params->nominal_voltage = params->voltage->Vnom_default * params->voltage->num_cells_series;
params->nominal_energy = params->nominal_voltage * params->voltage->num_strings * params->voltage->dynamic.Qfull * 1e-3;
@@ -440,7 +478,7 @@ battery_t &battery_t::operator=(const battery_t& rhs) {
capacity = std::unique_ptr(rhs.capacity->clone());
voltage = std::unique_ptr(rhs.voltage->clone());
thermal = std::unique_ptr(new thermal_t(*rhs.thermal));
- lifetime = std::unique_ptr(new lifetime_t(*rhs.lifetime));
+ lifetime = std::unique_ptr(rhs.lifetime->clone());
losses = std::unique_ptr(new losses_t(*rhs.losses));
state = std::make_shared(capacity->state, voltage->state, thermal->state, lifetime->state, losses->state);
*state->replacement = *rhs.state->replacement;
@@ -536,6 +574,19 @@ double battery_t::calculate_max_discharge_kw(double *max_current_A) {
return power_W / 1000.;
}
+void battery_t::ChangeTimestep(double dt_hr) {
+ if (dt_hr <= 0)
+ throw std::runtime_error("battery_t timestep must be greater than 0 hour");
+ if (dt_hr > 1)
+ throw std::runtime_error("battery_t timestep must be less than or equal to 1 hour");
+ params->dt_hr = dt_hr;
+ params->capacity->dt_hr = dt_hr;
+ params->voltage->dt_hr = dt_hr;
+ params->thermal->dt_hr = dt_hr;
+ thermal->dt_sec = dt_hr * 3600;
+ params->lifetime->dt_hr = dt_hr;
+}
+
double battery_t::run(size_t lifetimeIndex, double &I) {
// Temperature affects capacity, but capacity model can reduce current, which reduces temperature, need to iterate
double I_initial = I;
@@ -547,7 +598,8 @@ double battery_t::run(size_t lifetimeIndex, double &I) {
runThermalModel(I, lifetimeIndex);
runCapacityModel(I);
- if (fabs(I - I_initial) / fabs(I_initial) > tolerance) {
+ double numerator = fabs(I - I_initial);
+ if ((numerator > 0.0) && (numerator / fabs(I_initial) > tolerance)) {
*thermal->state = thermal_initial;
*capacity->state = capacity_initial;
I_initial = I;
@@ -588,11 +640,11 @@ void battery_t::runCapacityModel(double &I) {
// Need to first update capacity model to ensure temperature accounted for
capacity->updateCapacityForThermal(thermal->capacity_percent());
}
- capacity->updateCapacity(I, params->dt_hour);
+ capacity->updateCapacity(I, params->dt_hr);
}
void battery_t::runVoltageModel() {
- voltage->updateVoltage(capacity->q0(), capacity->qmax(), capacity->I(), thermal->T_battery(), params->dt_hour);
+ voltage->updateVoltage(capacity->q0(), capacity->qmax(), capacity->I(), thermal->T_battery(), params->dt_hr);
}
void battery_t::runLifetimeModel(size_t lifetimeIndex) {
@@ -604,7 +656,7 @@ void battery_t::runLifetimeModel(size_t lifetimeIndex) {
void battery_t::runLossesModel(size_t idx) {
if (idx > state->last_idx || idx == 0) {
- losses->run_losses(idx, params->dt_hour, capacity->charge_operation());
+ losses->run_losses(idx, params->dt_hr, capacity->charge_operation());
state->last_idx = idx;
}
}
@@ -634,7 +686,7 @@ void battery_t::runReplacement(size_t year, size_t hour, size_t step) {
if (replace) {
state->replacement->n_replacements++;
- state->replacement->indices_replaced.push_back(util::lifetimeIndex(year, hour, step, (size_t) (1 / params->dt_hour)));
+ state->replacement->indices_replaced.push_back(util::lifetimeIndex(year, hour, step, (size_t) (1 / params->dt_hr)));
lifetime->replaceBattery(percent);
capacity->replace_battery(percent);
thermal->replace_battery(year);
@@ -691,7 +743,7 @@ double battery_t::energy_available(double SOC_min) {
double battery_t::power_to_fill(double SOC_max) {
// in one time step
- return (this->energy_to_fill(SOC_max) / params->dt_hour);
+ return (this->energy_to_fill(SOC_max) / params->dt_hr);
}
double battery_t::charge_total() { return capacity->q0(); }
@@ -711,8 +763,8 @@ double battery_t::SOC() { return capacity->SOC(); }
double battery_t::I() { return capacity->I(); }
double battery_t::calculate_loss(double power, size_t lifetimeIndex) {
- size_t indexYearOne = util::yearOneIndex(params->dt_hour, lifetimeIndex);
- auto hourOfYear = (size_t)std::floor(indexYearOne * params->dt_hour);
+ size_t indexYearOne = util::yearOneIndex(params->dt_hr, lifetimeIndex);
+ auto hourOfYear = (size_t)std::floor(indexYearOne * params->dt_hr);
size_t monthIndex = (size_t) util::month_of((double)(hourOfYear)) - 1;
if (params->losses->loss_choice == losses_params::MONTHLY) {
@@ -727,7 +779,7 @@ double battery_t::calculate_loss(double power, size_t lifetimeIndex) {
}
}
- else if (params->losses->loss_choice == losses_params::SCHEDULE) {
+ else {
return params->losses->schedule_loss[lifetimeIndex % params->losses->schedule_loss.size()];
}
}
diff --git a/third_party/ssc/shared/lib_battery.h b/third_party/ssc/shared/lib_battery.h
index 55228dce1b9..f668eb5a375 100644
--- a/third_party/ssc/shared/lib_battery.h
+++ b/third_party/ssc/shared/lib_battery.h
@@ -33,7 +33,8 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "lib_util.h"
#include "lib_battery_capacity.h"
#include "lib_battery_voltage.h"
-#include "lib_battery_lifetime.h"
+#include "lib_battery_lifetime_calendar_cycle.h"
+#include "lib_battery_lifetime_nmc.h"
/**
* \class thermal_t
@@ -54,13 +55,15 @@ struct thermal_state {
};
struct thermal_params {
- double dt_hour;
+ double dt_hr;
double mass; // [kg]
double surface_area; // [m2] - exposed surface area
double Cp; // [J/KgK] - battery specific heat capacity
double h; // [W/m2/K] - general heat transfer coefficient
double resistance; // [Ohm] - internal resistance
+
util::matrix_t cap_vs_temp;
+ bool analytical_model; // if true, do not use cap_vs_temp
enum OPTIONS {
VALUE, SCHEDULE
@@ -74,12 +77,20 @@ struct thermal_params {
class thermal_t {
public:
+ // constructors for capacity as an entry from a cap_vs_temp table
thermal_t(double dt_hour, double mass, double surface_area, double R, double Cp, double h,
const util::matrix_t &c_vs_t, std::vector T_room_C);
thermal_t(double dt_hour, double mass, double surface_area, double R, double Cp, double h,
const util::matrix_t &c_vs_t, double T_room_C);
+ // constructors for capacity as an analytical function
+ thermal_t(double dt_hour, double mass, double surface_area, double R, double Cp, double h,
+ double T_room_C);
+
+ thermal_t(double dt_hour, double mass, double surface_area, double R, double Cp, double h,
+ std::vector T_room_C);
+
explicit thermal_t(std::shared_ptr p);
thermal_t(const thermal_t &rhs);
@@ -108,6 +119,11 @@ class thermal_t {
std::shared_ptr params;
std::shared_ptr state;
+ double Ea_d0_1 = 4126.0;
+ double Ea_d0_2 = 9752000;
+ double Rug = 8.314;
+ double T_ref = 298.15;
+
private:
void initialize();
@@ -133,7 +149,7 @@ struct losses_state {
struct losses_params {
enum OPTIONS {
- MONTHLY, SCHEDULE, VALUE
+ MONTHLY, SCHEDULE
};
int loss_choice;
@@ -261,7 +277,7 @@ struct battery_params {
LEAD_ACID, LITHIUM_ION, VANADIUM_REDOX, IRON_FLOW
};
int chem;
- double dt_hour;
+ double dt_hr;
double nominal_energy;
double nominal_voltage;
std::shared_ptr capacity;
@@ -287,11 +303,11 @@ struct battery_params {
class battery_t {
public:
battery_t(double dt_hr, int chem,
- capacity_t* capacity_model,
- voltage_t* voltage_model,
- lifetime_t* lifetime_model,
- thermal_t* thermal_model,
- losses_t* losses_model);
+ capacity_t* capacity_model,
+ voltage_t* voltage_model,
+ lifetime_t* lifetime_model,
+ thermal_t* thermal_model,
+ losses_t* losses_model);
explicit battery_t(std::shared_ptr p);
@@ -314,6 +330,9 @@ class battery_t {
// Returns the % replacement if on a capacity schedule. Returns 0 for "none" or "calendar"
double getReplacementPercent();
+ // Change the timestep of the battery and its component models
+ void ChangeTimestep(double dt_hr);
+
// Run all for single time step, updating all component model states and return the dispatched power [kW]
double run(size_t lifetimeIndex, double &I);
diff --git a/third_party/ssc/shared/lib_battery_dispatch.cpp b/third_party/ssc/shared/lib_battery_dispatch.cpp
index b1c71d9ed7f..2aa8bd739f1 100644
--- a/third_party/ssc/shared/lib_battery_dispatch.cpp
+++ b/third_party/ssc/shared/lib_battery_dispatch.cpp
@@ -840,7 +840,7 @@ bool byCost::operator() (grid_point const& a, grid_point const& b)
bool byLowestMarginalCost::operator() (grid_point const& a, grid_point const& b)
{
-
+
if (fabs(a.MarginalCost() - b.MarginalCost()) < 1e-7)
{
if (fabs(a.Grid()) < 1e-7 || fabs(b.Grid()) < 1e-7)
@@ -855,5 +855,5 @@ bool byLowestMarginalCost::operator() (grid_point const& a, grid_point const& b)
}
return a.MarginalCost() < b.MarginalCost();
-
+
}
diff --git a/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.cpp b/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.cpp
index 2ac57f61741..681e090ecd8 100644
--- a/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.cpp
+++ b/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.cpp
@@ -140,23 +140,22 @@ void dispatch_automatic_behind_the_meter_t::setup_rate_forecast()
{
// Process load and pv forecasts to get _monthly_ expected gen, load, and peak
// Do we need new member variables, or can these just be passed off to UtilityRateForecast?
- std::vector monthly_peaks;
+ std::vector monthly_gross_load;
std::vector monthly_gen;
- std::vector monthly_load;
+ std::vector monthly_net_load;
// Load here is every step for the full analysis period. Load escalation has already been applied (TODO in compute modules)
size_t num_recs = util::hours_per_year * _steps_per_hour * _nyears;
size_t step = 0; size_t hour_of_year = 0;
int curr_month = 1;
- double load_during_month = 0.0; double gen_during_month = 0.0; double peak_during_month = 0.0;
+ double load_during_month = 0.0; double gen_during_month = 0.0; double gross_load_during_month = 0.0;
size_t array_size = std::min(_P_pv_ac.size(), _P_load_ac.size()); // Cover smaller arrays to make testing easier
for (size_t idx = 0; idx < num_recs && idx < array_size; idx++)
{
double grid_power = _P_pv_ac[idx] - _P_load_ac[idx];
- if (grid_power < peak_during_month)
- {
- peak_during_month = grid_power;
- }
+
+ gross_load_during_month += _P_load_ac[idx] * _dt_hour;
+
if (grid_power < 0)
{
@@ -180,16 +179,16 @@ void dispatch_automatic_behind_the_meter_t::setup_rate_forecast()
{
// Push back vectors
// Note: this is a net-billing approach. To be accurate for net metering, we'd have to invoke tou periods here, this overestimates costs for NM
- monthly_peaks.push_back(-1.0 * peak_during_month);
- monthly_load.push_back(-1.0 * load_during_month);
+ monthly_gross_load.push_back(gross_load_during_month / util::hours_in_month(curr_month));
+ monthly_net_load.push_back(-1.0 * load_during_month);
monthly_gen.push_back(gen_during_month);
- peak_during_month = 0.0; load_during_month = 0.0; gen_during_month = 0.0;
+ gross_load_during_month = 0.0; load_during_month = 0.0; gen_during_month = 0.0;
curr_month < 12 ? curr_month++ : curr_month = 1;
}
}
- rate_forecast = std::shared_ptr(new UtilityRateForecast(rate.get(), _steps_per_hour, monthly_load, monthly_gen, monthly_peaks, _nyears));
+ rate_forecast = std::shared_ptr(new UtilityRateForecast(rate.get(), _steps_per_hour, monthly_net_load, monthly_gen, monthly_gross_load, _nyears));
rate_forecast->initializeMonth(0, 0);
rate_forecast->copyTOUForecast();
}
@@ -604,6 +603,7 @@ void dispatch_automatic_behind_the_meter_t::plan_dispatch_for_cost(dispatch_plan
}
}
double remainingEnergy = E_max;
+ double powerAtMaxCost = 0;
plan.lowestMarginalCost = sorted_grid[0].MarginalCost();
for (i = 0; i < (plan.dispatch_hours * _steps_per_hour) && (i < sorted_grid.size()); i++)
{
@@ -612,10 +612,17 @@ void dispatch_automatic_behind_the_meter_t::plan_dispatch_for_cost(dispatch_plan
{
double costPercent = costAtStep / costDuringDispatchHours;
double desiredPower = remainingEnergy * costPercent / _dt_hour;
+
+ // Prevent the wierd signals from demand charges from reducing dispatch (maybe fix this upstream in the future)
+ if (desiredPower < powerAtMaxCost && sorted_grid[i].Grid() >= powerAtMaxCost) {
+ desiredPower = powerAtMaxCost;
+ }
+
if (desiredPower > sorted_grid[i].Grid())
{
desiredPower = sorted_grid[i].Grid();
}
+
// Account for discharging constraints assuming voltage is constant over forecast period
check_power_restrictions(desiredPower);
@@ -627,11 +634,24 @@ void dispatch_automatic_behind_the_meter_t::plan_dispatch_for_cost(dispatch_plan
index = sorted_grid[i].Hour() * _steps_per_hour + sorted_grid[i].Step(); // Assumes we're always running this function on the hour
plan.plannedDispatch[index] = desiredPower;
+ if (powerAtMaxCost == 0) {
+ powerAtMaxCost = desiredPower;
+ }
+ }
+ }
+
+ for (i = 0; i < _steps_per_hour && (i < sorted_grid.size()); i++)
+ {
+ if (sorted_grid[i].Cost() > 0)
+ {
if (sorted_grid[i].MarginalCost() < plan.lowestMarginalCost)
{
plan.lowestMarginalCost = sorted_grid[i].MarginalCost();
}
}
+ else {
+ break;
+ }
}
// Aim to keep the battery at 50%
diff --git a/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.h b/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.h
index 649496aa7e7..3e6693c24ac 100644
--- a/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.h
+++ b/third_party/ssc/shared/lib_battery_dispatch_automatic_btm.h
@@ -108,7 +108,7 @@ class dispatch_automatic_behind_the_meter_t : public dispatch_automatic_t
double power_grid_target() override;
/*! Return the calculated cost to cycle for battery outputs */
- double cost_to_cycle_per_kwh();
+ double cost_to_cycle_per_kwh() override;
enum BTM_TARGET_MODES {TARGET_SINGLE_MONTHLY, TARGET_TIME_SERIES};
diff --git a/third_party/ssc/shared/lib_battery_lifetime.cpp b/third_party/ssc/shared/lib_battery_lifetime.cpp
index 15cbc09575c..6446519af73 100644
--- a/third_party/ssc/shared/lib_battery_lifetime.cpp
+++ b/third_party/ssc/shared/lib_battery_lifetime.cpp
@@ -9,7 +9,6 @@ and the following disclaimer.
and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse
or promote products derived from this software without specific prior written permission.
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT HOLDER, CONTRIBUTORS, UNITED STATES GOVERNMENT OR UNITED STATES
@@ -20,597 +19,91 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include
-
#include "lib_battery_lifetime.h"
+#include "lib_battery_lifetime_calendar_cycle.h"
+#include "lib_battery_lifetime_nmc.h"
+#include
-extern double tolerance;
-extern double low_tolerance;
-
-bool cycle_state::operator==(const cycle_state &p) {
- bool equal = (q_relative_cycle == p.q_relative_cycle);
- equal &= (n_cycles == p.n_cycles);
- equal &= (range == p.range);
- equal &= (average_range == p.average_range);
- equal &= (rainflow_Xlt == p.rainflow_Xlt);
- equal &= (rainflow_Ylt == p.rainflow_Ylt);
- equal &= (rainflow_jlt == p.rainflow_jlt);
- equal &= (rainflow_peaks == p.rainflow_peaks);
- return equal;
-}
-
-void lifetime_cycle_t::initialize() {
- if (params->cycling_matrix.nrows() < 3 || params->cycling_matrix.ncols() != 3)
- throw std::runtime_error("lifetime_cycle_t error: Battery lifetime matrix must have three columns and at least three rows");
- state = std::make_shared();
- state->n_cycles = 0;
- state->q_relative_cycle = bilinear(0., 0);
- state->range = 0;
- state->average_range = 0;
- state->rainflow_jlt = 0;
- state->rainflow_Xlt = 0;
- state->rainflow_Ylt = 0;
- state->rainflow_peaks.clear();
-}
-
-lifetime_cycle_t::lifetime_cycle_t(const util::matrix_t &batt_lifetime_matrix) {
- params = std::make_shared();
- params->cycling_matrix = batt_lifetime_matrix;
- initialize();
-}
-
-lifetime_cycle_t::lifetime_cycle_t(std::shared_ptr params_ptr) :
- params(std::move(params_ptr)) {
- initialize();
-}
-
-lifetime_cycle_t::lifetime_cycle_t(const lifetime_cycle_t &rhs) {
- state = std::make_shared(*rhs.state);
- operator=(rhs);
-}
-
-lifetime_cycle_t &lifetime_cycle_t::operator=(const lifetime_cycle_t &rhs) {
- if (this != &rhs) {
- *state = *rhs.state;
- *params = *rhs.params;
- }
- return *this;
-}
-
-lifetime_cycle_t *lifetime_cycle_t::clone() {
- return new lifetime_cycle_t(*this);
-}
-
-double lifetime_cycle_t::estimateCycleDamage() {
- // Initialize assuming 50% DOD
- double DOD = 50;
- if (state->average_range > 0) {
- DOD = state->average_range;
- }
- return (bilinear(DOD, state->n_cycles + 1) - bilinear(DOD, state->n_cycles + 2));
-}
-
-double lifetime_cycle_t::runCycleLifetime(double DOD) {
- rainflow(DOD);
-
- // return the effective capacity (Q_neg)
- return state->q_relative_cycle;
-}
-
-void lifetime_cycle_t::rainflow(double DOD) {
- // initialize return code
- int retCode = cycle_state::LT_GET_DATA;
-
- // Begin algorithm
- state->rainflow_peaks.push_back(DOD);
- bool atStepTwo = true;
-
- // Loop until break
- while (atStepTwo) {
- // Rainflow: Step 2: Form ranges X,Y
- if (state->rainflow_jlt >= 2)
- rainflow_ranges();
- else {
- // Get more data (Step 1)
- retCode = cycle_state::LT_GET_DATA;
- break;
- }
-
- // Rainflow: Step 3: Compare ranges
- retCode = rainflow_compareRanges();
-
- // We break to get more data, or if we are done with step 5
- if (retCode == cycle_state::LT_GET_DATA)
- break;
- }
-
- if (retCode == cycle_state::LT_GET_DATA)
- state->rainflow_jlt++;
-}
-
-void lifetime_cycle_t::rainflow_ranges() {
- state->rainflow_Ylt = fabs(state->rainflow_peaks[state->rainflow_jlt - (size_t) 1] - state->rainflow_peaks[state->rainflow_jlt - (size_t) 2]);
- state->rainflow_Xlt = fabs(state->rainflow_peaks[state->rainflow_jlt] - state->rainflow_peaks[state->rainflow_jlt - (size_t) 1]);
-}
-
-void lifetime_cycle_t::rainflow_ranges_circular(int index) {
- size_t end = state->rainflow_peaks.size() - 1;
- if (index == 0) {
- state->rainflow_Xlt = fabs(state->rainflow_peaks[0] - state->rainflow_peaks[end]);
- state->rainflow_Ylt = fabs(state->rainflow_peaks[end] - state->rainflow_peaks[end - 1]);
- } else if (index == 1) {
- state->rainflow_Xlt = fabs(state->rainflow_peaks[1] - state->rainflow_peaks[0]);
- state->rainflow_Ylt = fabs(state->rainflow_peaks[0] - state->rainflow_peaks[end]);
- } else
- rainflow_ranges();
-}
-
-int lifetime_cycle_t::rainflow_compareRanges() {
- int retCode = cycle_state::LT_SUCCESS;
- bool contained = true;
-
- // modified to disregard some of algorithm which doesn't work well
- if (state->rainflow_Xlt < state->rainflow_Ylt)
- retCode = cycle_state::LT_GET_DATA;
- else if (state->rainflow_Xlt >= state->rainflow_Ylt)
- contained = false;
-
- // Step 5: Count range Y, discard peak & valley of Y, go to Step 2
- if (!contained) {
- state->range = state->rainflow_Ylt;
- state->average_range = (state->average_range * state->n_cycles + state->range) / (state->n_cycles + (size_t) 1);
- state->n_cycles++;
-
- // the capacity percent cannot increase
- double dq =
- bilinear(state->average_range, state->n_cycles) - bilinear(state->average_range, state->n_cycles + 1);
- if (dq > 0)
- state->q_relative_cycle -= dq;
-
- if (state->q_relative_cycle < 0)
- state->q_relative_cycle = 0.;
-
- // discard peak & valley of Y
- double save = state->rainflow_peaks[state->rainflow_jlt];
- state->rainflow_peaks.pop_back();
- state->rainflow_peaks.pop_back();
- state->rainflow_peaks.pop_back();
- state->rainflow_peaks.push_back(save);
- state->rainflow_jlt -= 2;
- // stay in while loop
- retCode = cycle_state::LT_RERANGE;
- }
-
- return retCode;
-}
-
-void lifetime_cycle_t::replaceBattery(double replacement_percent) {
- state->q_relative_cycle += replacement_percent;
- state->q_relative_cycle = fmin(bilinear(0., 0), state->q_relative_cycle);
-
- // More work to figure out degradation of multiple-aged battery units
- if (replacement_percent == 100) {
- state->n_cycles = 0;
- }
-
- state->rainflow_jlt = 0;
- state->rainflow_Xlt = 0;
- state->rainflow_Ylt = 0;
- state->range = 0;
- state->rainflow_peaks.clear();
-}
-
-int lifetime_cycle_t::cycles_elapsed() { return state->n_cycles; }
-
-double lifetime_cycle_t::cycle_range() { return state->range; }
-
-double lifetime_cycle_t::average_range() { return state->average_range; }
-
-double lifetime_cycle_t::capacity_percent() { return state->q_relative_cycle; }
-
-cycle_state lifetime_cycle_t::get_state() { return *state; }
-
-double lifetime_cycle_t::bilinear(double DOD, int cycle_number) {
- /*
- Work could be done to make this simpler
- Current idea is to interpolate first along the C = f(n) curves for each DOD to get C_DOD_, C_DOD_+
- Then interpolate C_, C+ to get C at the DOD of interest
- */
-
- std::vector D_unique_vect;
- std::vector C_n_low_vect;
- std::vector D_high_vect;
- std::vector C_n_high_vect;
- std::vector low_indices;
- std::vector high_indices;
- double D = 0.;
- size_t n = 0;
- double C = 100;
- size_t n_rows = params->cycling_matrix.nrows();
-
- // get unique values of D
- D_unique_vect.push_back(params->cycling_matrix.at(0, lifetime_params::DOD));
- for (size_t i = 0; i < n_rows; i++) {
- bool contained = false;
- for (int j = 0; j < (int) D_unique_vect.size(); j++) {
- if (params->cycling_matrix.at(i, lifetime_params::DOD) == D_unique_vect[j]) {
- contained = true;
- break;
- }
- }
- if (!contained) {
- D_unique_vect.push_back(params->cycling_matrix.at(i, lifetime_params::DOD));
- }
- }
- n = D_unique_vect.size();
-
- if (n > 1) {
- // get where DOD is bracketed [D_lo, DOD, D_hi]
- double D_lo = 0;
- double D_hi = 100;
-
- for (size_t i = 0; i < n_rows; i++) {
- D = params->cycling_matrix.at(i, lifetime_params::DOD);
- if (D < DOD && D > D_lo)
- D_lo = D;
- else if (D >= DOD && D < D_hi)
- D_hi = D;
- }
-
- // Separate table into bins
- double D_min = 100.;
- double D_max = 0.;
-
- for (size_t i = 0; i < n_rows; i++) {
- D = params->cycling_matrix.at(i, lifetime_params::DOD);
- if (D == D_lo)
- low_indices.push_back(i);
- else if (D == D_hi)
- high_indices.push_back(i);
-
- if (D < D_min) { D_min = D; }
- else if (D > D_max) { D_max = D; }
- }
-
- // if we're out of the bounds, just make the upper bound equal to the highest input
- if (high_indices.empty()) {
- for (size_t i = 0; i != n_rows; i++) {
- if (params->cycling_matrix.at(i, lifetime_params::DOD) == D_max)
- high_indices.push_back(i);
- }
- }
-
- size_t n_rows_lo = low_indices.size();
- size_t n_rows_hi = high_indices.size();
- size_t n_cols = 2;
-
- // If we aren't bounded, fill in values
- if (n_rows_lo == 0) {
- // Assumes 0% DOD
- for (double i = 0; i < n_rows_hi; i++) {
- C_n_low_vect.push_back(0. + i * 500); // cycles
- C_n_low_vect.push_back(100.); // 100 % capacity
- }
- }
-
- if (n_rows_lo != 0) {
- for (int i = 0; i < (int) n_rows_lo; i++) {
- C_n_low_vect.push_back(params->cycling_matrix.at(low_indices[i], lifetime_params::CYCLE));
- C_n_low_vect.push_back(params->cycling_matrix.at(low_indices[i], lifetime_params::CAPACITY_CYCLE));
- }
- }
- if (n_rows_hi != 0) {
- for (int i = 0; i < (int) n_rows_hi; i++) {
- C_n_high_vect.push_back(params->cycling_matrix.at(high_indices[i], lifetime_params::CYCLE));
- C_n_high_vect.push_back(params->cycling_matrix.at(high_indices[i], lifetime_params::CAPACITY_CYCLE));
- }
- }
- n_rows_lo = C_n_low_vect.size() / n_cols;
- n_rows_hi = C_n_high_vect.size() / n_cols;
-
- if (n_rows_lo == 0 || n_rows_hi == 0) {
- // need a safeguard here
- }
-
- util::matrix_t C_n_low(n_rows_lo, n_cols, &C_n_low_vect);
- util::matrix_t C_n_high(n_rows_lo, n_cols, &C_n_high_vect);
-
- // Compute C(D_lo, n), C(D_hi, n)
- double C_Dlo = util::linterp_col(C_n_low, 0, cycle_number, 1);
- double C_Dhi = util::linterp_col(C_n_high, 0, cycle_number, 1);
-
- if (C_Dlo < 0.)
- C_Dlo = 0.;
- if (C_Dhi > 100.)
- C_Dhi = 100.;
-
- // Interpolate to get C(D, n)
- C = util::interpolate(D_lo, C_Dlo, D_hi, C_Dhi, DOD);
- }
- // just have one row, single level interpolation
- else {
- C = util::linterp_col(params->cycling_matrix, 1, cycle_number, 2);
- }
-
- return C;
-}
-
-/*
-Lifetime Calendar Model
-*/
-
-bool calendar_state::operator==(const calendar_state &p) {
- bool equal = (q_relative_calendar == p.q_relative_calendar);
- equal &= (day_age_of_battery == p.day_age_of_battery);
- equal &= (dq_relative_calendar_old == p.dq_relative_calendar_old);
- return equal;
-}
-
-void lifetime_calendar_t::initialize() {
- state = std::make_shared();
- state->day_age_of_battery = 0;
- state->q_relative_calendar = 100;
- state->dq_relative_calendar_old = 0;
- if (params->calendar_choice == lifetime_params::CALENDAR_CHOICE::MODEL) {
- dt_day = params->dt_hour / util::hours_per_day;
- state->q_relative_calendar = params->calendar_q0 * 100;
- }
- else if (params->calendar_choice == lifetime_params::CALENDAR_CHOICE::TABLE) {
- if (params->calendar_matrix.nrows() < 2 || params->calendar_matrix.ncols() != 2)
- throw std::runtime_error("lifetime_calendar_t error: Battery calendar lifetime matrix must have 2 columns and at least 2 rows");
- }
-}
-
-lifetime_calendar_t::lifetime_calendar_t(double dt_hour, const util::matrix_t& calendar_matrix) {
- params = std::make_shared();
- params->dt_hour = dt_hour;
- params->calendar_choice = lifetime_params::CALENDAR_CHOICE::TABLE;
- params->calendar_matrix = calendar_matrix;
-
- initialize();
-}
-
-
-lifetime_calendar_t::lifetime_calendar_t(double dt_hour, double q0, double a, double b, double c) {
- params = std::make_shared();
- params->dt_hour = dt_hour;
- params->calendar_choice = lifetime_params::CALENDAR_CHOICE::MODEL;
- params->calendar_q0 = q0;
- params->calendar_a = a;
- params->calendar_b = b;
- params->calendar_c = c;
-
- initialize();
-}
-
-lifetime_calendar_t::lifetime_calendar_t(std::shared_ptr params_ptr) :
- params(std::move(params_ptr)) {
- initialize();
+lifetime_params::lifetime_params() {
+ model_choice = CALCYC;
+ cal_cyc = std::make_shared();
}
-lifetime_calendar_t::lifetime_calendar_t(const lifetime_calendar_t &rhs) {
- state = std::make_shared(*rhs.state);
- params = std::make_shared(*rhs.params);
- dt_day = rhs.dt_day;
-}
-
-lifetime_calendar_t &lifetime_calendar_t::operator=(const lifetime_calendar_t &rhs) {
+lifetime_params &lifetime_params::operator=(const lifetime_params &rhs) {
if (this != &rhs) {
- *params = *rhs.params;
- *state = *rhs.state;
- dt_day = rhs.dt_day;
+ model_choice = rhs.model_choice;
+ *cal_cyc = *rhs.cal_cyc;
}
return *this;
}
-lifetime_calendar_t *lifetime_calendar_t::clone() {
- return new lifetime_calendar_t(*this);
-}
-
-double lifetime_calendar_t::capacity_percent() { return state->q_relative_calendar; }
-
-calendar_state lifetime_calendar_t::get_state() { return *state; }
-
-double lifetime_calendar_t::runLifetimeCalendarModel(size_t lifetimeIndex, double T, double SOC) {
- state->day_age_of_battery = (int)(lifetimeIndex / (util::hours_per_day / params->dt_hour));
-
- if (params->calendar_choice == lifetime_params::CALENDAR_CHOICE::MODEL)
- runLithiumIonModel(T, SOC);
- else if (params->calendar_choice == lifetime_params::CALENDAR_CHOICE::TABLE)
- runTableModel();
- else
- state->q_relative_calendar = 100;
-
- return state->q_relative_calendar;
-}
-
-void lifetime_calendar_t::runLithiumIonModel(double temp, double SOC) {
- temp += 273.15;
- SOC *= 0.01;
- double k_cal = params->calendar_a * exp(params->calendar_b * (1. / temp - 1. / 296))
- * exp(params->calendar_c * (SOC / temp - 1. / 296));
- double dq_new;
- if (state->dq_relative_calendar_old == 0)
- dq_new = k_cal * sqrt(dt_day);
- else
- dq_new = (0.5 * pow(k_cal, 2) / state->dq_relative_calendar_old) * dt_day + state->dq_relative_calendar_old;
- state->dq_relative_calendar_old = dq_new;
- state->q_relative_calendar = (params->calendar_q0 - (dq_new)) * 100;
-}
-
-void lifetime_calendar_t::runTableModel() {
- size_t n_rows = params->calendar_matrix.nrows();
- size_t n = n_rows - 1;
- size_t day_lo = 0;
- size_t day_hi = (size_t) params->calendar_matrix.at(n, lifetime_params::DAYS);
- double capacity_lo = 100;
- double capacity_hi = 0;
-
- // interpolation mode
- for (size_t i = 0; i != n_rows; i++) {
- int day = (int)params->calendar_matrix.at(i, lifetime_params::DAYS);
- double capacity = (int) params->calendar_matrix.at(i, lifetime_params::CAPACITY_CAL);
- if (day <= state->day_age_of_battery) {
- day_lo = day;
- capacity_lo = capacity;
- }
- if (day > state->day_age_of_battery) {
- day_hi = day;
- capacity_hi = capacity;
- break;
- }
- }
- if (day_lo == day_hi) {
- day_lo = (int) params->calendar_matrix.at(n - 1, lifetime_params::DAYS);
- day_hi = (int) params->calendar_matrix.at(n, lifetime_params::DAYS);
- capacity_lo = (int) params->calendar_matrix.at(n - 1, lifetime_params::CAPACITY_CAL);
- capacity_hi = (int) params->calendar_matrix.at(n, lifetime_params::CAPACITY_CAL);
- }
-
- state->q_relative_calendar = util::interpolate((double) day_lo, capacity_lo, (double) day_hi, capacity_hi, (double) state->day_age_of_battery);
-}
-
-void lifetime_calendar_t::replaceBattery(double replacement_percent) {
- state->day_age_of_battery = 0;
- state->dq_relative_calendar_old = 0;
- state->q_relative_calendar += replacement_percent;
- if (params->calendar_choice == lifetime_params::CALENDAR_CHOICE::MODEL)
- state->q_relative_calendar = fmin(params->calendar_q0 * 100, state->q_relative_calendar);
- if (params->calendar_choice == lifetime_params::CALENDAR_CHOICE::TABLE)
- state->q_relative_calendar = fmin(100, state->q_relative_calendar);
-}
-
-/*
-Define Lifetime Model
-*/
-
lifetime_state::lifetime_state(){
q_relative = 0;
+ n_cycles = 0;
+ range = 0;
+ average_range = 0;
+ day_age_of_battery = 0;
cycle = std::make_shared();
calendar = std::make_shared();
+ nmc_state = std::make_shared();
+}
+
+lifetime_state::lifetime_state(const lifetime_state &rhs) :
+ lifetime_state() {
+ operator=(rhs);
}
lifetime_state::lifetime_state(const std::shared_ptr& cyc, const std::shared_ptr& cal) {
+ q_relative = 0;
+ n_cycles = 0;
+ range = 0;
+ average_range = 0;
+ day_age_of_battery = 0;
cycle = cyc;
calendar = cal;
q_relative = fmin(cycle->q_relative_cycle, calendar->q_relative_calendar);
}
+lifetime_state::lifetime_state(const std::shared_ptr& nmc) {
+ q_relative = 0;
+ n_cycles = 0;
+ range = 0;
+ average_range = 0;
+ day_age_of_battery = 0;
+ nmc_state = nmc;
+ q_relative = fmin(nmc->q_relative_li, nmc->q_relative_neg);
+}
+
+
lifetime_state &lifetime_state::operator=(const lifetime_state &rhs) {
if (this != &rhs) {
q_relative = rhs.q_relative;
+ n_cycles = rhs.n_cycles;
+ range = rhs.range;
+ average_range = rhs.average_range;
+ day_age_of_battery = rhs.day_age_of_battery;
*cycle = *rhs.cycle;
*calendar = *rhs.calendar;
+ *nmc_state = *rhs.nmc_state;
}
return *this;
}
-void lifetime_t::initialize() {
- cycle_model = std::unique_ptr(new lifetime_cycle_t(params));
- calendar_model = std::unique_ptr(new lifetime_calendar_t(params));
- state = std::make_shared(cycle_model->state, calendar_model->state);
- state->q_relative = fmin(state->cycle->q_relative_cycle, state->calendar->q_relative_calendar);
-}
-
-lifetime_t::lifetime_t(const util::matrix_t &batt_lifetime_matrix, double dt_hour,
- const util::matrix_t &calendar_matrix) {
- params = std::make_shared();
- params->dt_hour = dt_hour;
- params->cycling_matrix = batt_lifetime_matrix;
- params->calendar_choice = lifetime_params::CALENDAR_CHOICE::TABLE;
- params->calendar_matrix = calendar_matrix;
-
- initialize();
-}
-
-lifetime_t::lifetime_t(const util::matrix_t &batt_lifetime_matrix, double dt_hour, double q0, double a, double b,
- double c) {
- params = std::make_shared();
- params->dt_hour = dt_hour;
- params->cycling_matrix = batt_lifetime_matrix;
- params->calendar_choice = lifetime_params::CALENDAR_CHOICE::MODEL;
- params->calendar_q0 = q0;
- params->calendar_a = a;
- params->calendar_b = b;
- params->calendar_c = c;
-
- initialize();
-}
-
-lifetime_t::lifetime_t(const util::matrix_t &batt_lifetime_matrix, double dt_hour) {
- params = std::make_shared();
- params->dt_hour = dt_hour;
- params->cycling_matrix = batt_lifetime_matrix;
- params->calendar_choice = lifetime_params::CALENDAR_CHOICE::NONE;
-
- initialize();
-}
-
-lifetime_t::lifetime_t(std::shared_ptr params_ptr):
- params(std::move(params_ptr)) {
- initialize();
-}
-
-lifetime_t::lifetime_t(const lifetime_t& rhs) {
- state = std::make_shared();
- params = std::make_shared();
- operator=(rhs);
+lifetime_t::lifetime_t(const lifetime_t &rhs) {
+ state = std::make_shared(*rhs.state);
+ params = std::make_shared(*rhs.params);
}
-lifetime_t& lifetime_t::operator=(const lifetime_t& rhs) {
+lifetime_t &lifetime_t::operator=(const lifetime_t &rhs) {
if (this != &rhs) {
*params = *rhs.params;
- calendar_model = std::unique_ptr(new lifetime_calendar_t(params));
- cycle_model = std::unique_ptr(new lifetime_cycle_t(params));
- state->q_relative = rhs.state->q_relative;
- state->calendar = calendar_model->state;
- state->cycle = cycle_model->state;
+ *state = *rhs.state;
}
return *this;
}
-lifetime_t *lifetime_t::clone() {
- return new lifetime_t(*this);
-}
-
double lifetime_t::capacity_percent() { return state->q_relative; }
-double lifetime_t::capacity_percent_cycle() { return cycle_model->capacity_percent(); }
-
-double lifetime_t::capacity_percent_calendar() { return calendar_model->capacity_percent(); }
-
-void lifetime_t::runLifetimeModels(size_t lifetimeIndex, bool charge_changed, double prev_DOD, double DOD, double T_battery) {
- double q_last = state->q_relative;
-
- if (q_last > 0) {
- double q_cycle = cycle_model->capacity_percent();
- double q_calendar;
-
- if (charge_changed)
- q_cycle = cycle_model->runCycleLifetime(prev_DOD);
- else if (lifetimeIndex == 0)
- q_cycle = cycle_model->runCycleLifetime(DOD);
-
- q_calendar = calendar_model->runLifetimeCalendarModel(lifetimeIndex, T_battery, 100. - DOD);
-
- // total capacity is min of cycle (Q_neg) and calendar (Q_li) capacity
- state->q_relative = fmin(q_cycle, q_calendar);
- }
- state->q_relative = fmax(state->q_relative, 0);
-
- // capacity cannot increase
- state->q_relative = fmin(state->q_relative, q_last);
-}
-
-double lifetime_t::estimateCycleDamage() {
- return cycle_model->estimateCycleDamage();
-}
-
-void lifetime_t::replaceBattery(double percent_to_replace) {
- cycle_model->replaceBattery(percent_to_replace);
- calendar_model->replaceBattery(percent_to_replace);
- state->q_relative = fmin(cycle_model->capacity_percent(), calendar_model->capacity_percent());
-}
lifetime_params lifetime_t::get_params() { return *params; }
diff --git a/third_party/ssc/shared/lib_battery_lifetime.h b/third_party/ssc/shared/lib_battery_lifetime.h
index 76e199032df..94860f41142 100644
--- a/third_party/ssc/shared/lib_battery_lifetime.h
+++ b/third_party/ssc/shared/lib_battery_lifetime.h
@@ -9,7 +9,6 @@ and the following disclaimer.
and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse
or promote products derived from this software without specific prior written permission.
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT HOLDER, CONTRIBUTORS, UNITED STATES GOVERNMENT OR UNITED STATES
@@ -25,191 +24,52 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include
-#include "lib_util.h"
-/*
-Lifetime cycling class.
-*/
+struct calendar_cycle_params;
struct lifetime_params {
- // cycling
- util::matrix_t cycling_matrix;
- enum CYCLING_COLUMNS {
- DOD, CYCLE, CAPACITY_CYCLE
- };
-
- // calendar
- enum CALENDAR_CHOICE {
- NONE, MODEL, TABLE
- };
- int calendar_choice;
- double dt_hour;
-
- // K. Smith: Life Prediction model coefficients
- double calendar_q0; // unitless
- double calendar_a; // 1/sqrt(day)
- double calendar_b; // K
- double calendar_c; // K
-
- // table entries
- util::matrix_t calendar_matrix;
- enum CALENDAR_COLUMNS {
- DAYS, CAPACITY_CAL
- };
-
- friend std::ostream &operator<<(std::ostream &os, const lifetime_params &p);
-};
-
-struct cycle_state {
- double q_relative_cycle; // %
- int n_cycles;
- double range;
- double average_range;
- enum RAINFLOW_CODES {
- LT_SUCCESS, LT_GET_DATA, LT_RERANGE
- };
- double rainflow_Xlt;
- double rainflow_Ylt;
- int rainflow_jlt; // last index in Peaks, i.e, if Peaks = [0,1], then jlt = 1
- std::vector rainflow_peaks;
-
- friend std::ostream &operator<<(std::ostream &os, const cycle_state &p);
-
- bool operator==(const cycle_state &p);
-};
-
-class lifetime_cycle_t {
-
-public:
- /// Constructor for independent model, owning its state and params
- lifetime_cycle_t(const util::matrix_t &batt_lifetime_matrix);
-
- /// Constructor as lifetime_t component
- explicit lifetime_cycle_t(std::shared_ptr params_ptr);
-
- lifetime_cycle_t(const lifetime_cycle_t &rhs);
-
- lifetime_cycle_t &operator=(const lifetime_cycle_t &rhs);
-
- lifetime_cycle_t *clone();
-
- /// return q, the effective capacity percent
- double runCycleLifetime(double DOD);
-
- /// return hypothetical dq the average cycle
- double estimateCycleDamage();
-
- /// Return the relative capacity percentage of nominal (%)
- double capacity_percent();
-
- /// Run the rainflow counting algorithm at the current depth-of-discharge to determine cycle
- void rainflow(double DOD);
-
- /// Replace or partially replace a batteyr
- void replaceBattery(double replacement_percent);
-
- /// Return the total cycles elapse
- int cycles_elapsed();
-
- /// Return the range of the last cycle
- double cycle_range();
-
- /// Return the average cycle range
- double average_range();
-
- cycle_state get_state();
-
-protected:
-
- void rainflow_ranges();
-
- void rainflow_ranges_circular(int index);
-
- int rainflow_compareRanges();
-
- /// Bilinear interpolation, given the depth-of-discharge and cycle number, return the capacity percent
- double bilinear(double DOD, int cycle_number);
-
- std::shared_ptr state;
- std::shared_ptr params;
-
-private:
- void initialize();
-
- friend class lifetime_t;
-};
-
-/*
-Lifetime calendar model
-*/
-
-struct calendar_state {
- double q_relative_calendar; // %
- int day_age_of_battery;
- double dq_relative_calendar_old; // (0 - 1)
-
- friend std::ostream &operator<<(std::ostream &os, const calendar_state &p);
-
- bool operator==(const calendar_state &p);
-};
-
-class lifetime_calendar_t {
-public:
- /// Constructors for independent models, owning its state and params
- lifetime_calendar_t(double dt_hour, const util::matrix_t& calendar_matrix);
-
- explicit lifetime_calendar_t(double dt_hour, double q0= 1.02, double a= 2.66e-3, double b= -7280, double c= 930);
-
- /// Constructor as lifetime_t component
- explicit lifetime_calendar_t(std::shared_ptr